#include "spacebot.h" #include "move_string_mapper.h" #include "brain/neural_network.h" #include #include Spacebot::Spacebot(std::string outputPath, std::string brainFilename) : _outputFilename(outputPath+"/move.txt"), _brainFilename(brainFilename), _gameState(std::ifstream(outputPath+"/map.txt")) { } void Spacebot::writeNextMove() { Move move = chooseMove(); writeMove(move); } Move Spacebot::chooseMove() { auto sensorInputs = _gameState.toBitArray(); if (!sensorInputs.at(51) || !sensorInputs.at(53)) { return Move::BUILD_SHIELD; } else if (sensorInputs.at(55)) { return Move::SHOOT; } else if (sensorInputs.at(60) && !sensorInputs.at(59)) { return Move::BUILD_MISSILE_CONTROLLER; } else { return Move::NOTHING; } } void Spacebot::writeMove(const Move& move) { std::ofstream resultStream(_outputFilename); resultStream << MoveStringMapper().toString(move) << std::endl; return; }