diff options
author | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 21:28:44 +0200 |
---|---|---|
committer | Justin Wernick <justin@worthe-it.co.za> | 2022-04-19 21:28:44 +0200 |
commit | dc01a3e25e6c4ef056467e36f876ebd68f3ade22 (patch) | |
tree | 2147462c4cbe9a7b0de59d13bb20c842e33f75a3 /2015-spacebot/src/spacebot.cpp | |
parent | be89211af895548425be999f660a1195efe9fc8a (diff) | |
parent | 8eebf1079fbed2848ee47cf990f5def5926a0c1f (diff) |
Merge branch 'spacebot-main'
Diffstat (limited to '2015-spacebot/src/spacebot.cpp')
-rw-r--r-- | 2015-spacebot/src/spacebot.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/2015-spacebot/src/spacebot.cpp b/2015-spacebot/src/spacebot.cpp new file mode 100644 index 0000000..17d20b5 --- /dev/null +++ b/2015-spacebot/src/spacebot.cpp @@ -0,0 +1,48 @@ +#include "spacebot.h" +#include "move_string_mapper.h" +#include "brain/neural_network.h" +#include <fstream> +#include <iostream> + +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; +} + |