diff --git a/BNNBot_garage/BNNBot b/BNNBot_garage/BNNBot index 81c6eb8..4ebb2d9 100755 Binary files a/BNNBot_garage/BNNBot and b/BNNBot_garage/BNNBot differ diff --git a/BNNBot_garage/src/binary_encoding.nim b/BNNBot_garage/src/binary_encoding.nim index d02623b..6c80030 100644 --- a/BNNBot_garage/src/binary_encoding.nim +++ b/BNNBot_garage/src/binary_encoding.nim @@ -1,7 +1,7 @@ import std/math const - TOTAL_BITS* = 117 + TOTAL_BITS* = 123 type BinaryVector* = array[TOTAL_BITS, uint8] @@ -87,17 +87,17 @@ proc encode*(scan: ScanData): BinaryVector = for i in 0..<7: result[offset + i] = bits[i] offset += 7 - # 9. My energy (8 bits, 0-150) - let myE = int(clamp(scan.myEnergy / 150.0 * 149.0, 0.0, 149.0)) - let myEBits = toBits(myE, 8) - for i in 0..<8: result[offset + i] = myEBits[i] - offset += 8 + # 9. My energy (11 bits, 0-150 → 0-1500 with 0.1 HP precision) + let myE = int(clamp(scan.myEnergy * 10.0, 0.0, 1500.0)) + let myEBits = toBits(myE, 11) + for i in 0..<11: result[offset + i] = myEBits[i] + offset += 11 - # 10. Enemy energy (8 bits, 0-150) - let enE = int(clamp(scan.enemyEnergy / 150.0 * 149.0, 0.0, 149.0)) - let enEBits = toBits(enE, 8) - for i in 0..<8: result[offset + i] = enEBits[i] - offset += 8 + # 10. Enemy energy (11 bits, 0-150 → 0-1500 with 0.1 HP precision) + let enE = int(clamp(scan.enemyEnergy * 10.0, 0.0, 1500.0)) + let enEBits = toBits(enE, 11) + for i in 0..<11: result[offset + i] = enEBits[i] + offset += 11 # 11. Can fire (1 bit) result[offset] = if scan.canFire: 1'u8 else: 0'u8