From 8eebf1079fbed2848ee47cf990f5def5926a0c1f Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Tue, 19 Apr 2022 21:24:15 +0200 Subject: Refile for merging repos --- 2015-spacebot/src/spacebot.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 2015-spacebot/src/spacebot.cpp (limited to '2015-spacebot/src/spacebot.cpp') 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 +#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; +} + -- cgit v1.2.3