summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/game_state.h21
-rw-r--r--include/spacebot.h10
-rw-r--r--src/main.cpp3
-rw-r--r--src/spacebot.cpp9
4 files changed, 32 insertions, 11 deletions
diff --git a/include/game_state.h b/include/game_state.h
new file mode 100644
index 0000000..abb2efa
--- /dev/null
+++ b/include/game_state.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include "alien.h"
+#include "enemy_bullet.h"
+#include "player_missile.h"
+#include "shield.h"
+#include "spaceship.h"
+#include <vector>
+#include <iostream>
+
+class GameState
+{
+public:
+ GameState(const std::istream& mapFile){}
+private:
+ std::vector<Alien> aliens;
+ std::vector<EnemyBullet> bullets;
+ std::vector<PlayerMissile> missiles;
+ std::vector<Shield> shields;
+ std::vector<Spaceship> spaceships;
+};
diff --git a/include/spacebot.h b/include/spacebot.h
index a5c23c2..b152197 100644
--- a/include/spacebot.h
+++ b/include/spacebot.h
@@ -1,16 +1,16 @@
#pragma once
-#include <iostream>
-#include <fstream>
+#include <string>
#include "move.h"
+#include "game_state.h"
class Spacebot {
public:
- Spacebot(const std::string& outputPath);
+ Spacebot(std::string outputPath);
void writeNextMove();
private:
- std::ifstream mapStream;
- std::ofstream resultStream;
+ std::string outputPath;
+ GameState gameState;
void writeMove(const Move& move);
Move chooseMove();
};
diff --git a/src/main.cpp b/src/main.cpp
index 1621ba8..578620c 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -10,8 +10,7 @@ int main(int argc, char* argv[])
return 1;
}
- std::string outputFolder = argv[1];
- Spacebot bot(outputFolder);
+ Spacebot bot(argv[1]);
bot.writeNextMove();
return 0;
diff --git a/src/spacebot.cpp b/src/spacebot.cpp
index f2fb95a..b297eb3 100644
--- a/src/spacebot.cpp
+++ b/src/spacebot.cpp
@@ -1,12 +1,12 @@
#include "spacebot.h"
#include <random>
+#include <fstream>
#include <string>
-Spacebot::Spacebot(const std::string& outputPath)
- : mapStream(outputPath+"/map.txt", std::ifstream::in)
- , resultStream(outputPath+"/move.txt", std::ofstream::out)
+Spacebot::Spacebot(std::string outputPath)
+ : outputPath(std::move(outputPath)),
+ gameState(std::ifstream(outputPath+"/map.txt", std::ifstream::in))
{
- std::srand(time(0));
}
void Spacebot::writeNextMove()
@@ -27,6 +27,7 @@ Move Spacebot::chooseMove()
void Spacebot::writeMove(const Move& move)
{
+ std::ofstream resultStream(outputPath+"/move.txt");
switch (move)
{
case Move::NOTHING: