summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/brain/neural_network.h4
-rw-r--r--include/brain/neural_node.h1
-rw-r--r--include/brain/neuron.h4
-rw-r--r--include/building.h12
-rw-r--r--include/game_state.h10
5 files changed, 24 insertions, 7 deletions
diff --git a/include/brain/neural_network.h b/include/brain/neural_network.h
index 22e5e42..f75fdea 100644
--- a/include/brain/neural_network.h
+++ b/include/brain/neural_network.h
@@ -26,8 +26,8 @@ public:
private:
std::map<int, std::shared_ptr<Sensor>> _sensors;
std::shared_ptr<BiasNode> _biasNode;
- std::map<int, std::shared_ptr<Neuron>> _hiddenNodes;
- std::map<int, std::shared_ptr<Neuron>> _outputs;
+ std::map<int, std::shared_ptr<Neuron>> _neurons;
+ std::vector<std::shared_ptr<Neuron>> _outputs;
void parseFile(std::istream &&file);
diff --git a/include/brain/neural_node.h b/include/brain/neural_node.h
index 3c2a6cb..c7b4335 100644
--- a/include/brain/neural_node.h
+++ b/include/brain/neural_node.h
@@ -4,7 +4,6 @@ class NeuralNode
{
public:
NeuralNode(char type, int id);
- virtual ~NeuralNode() {};
virtual double activation() const = 0;
diff --git a/include/brain/neuron.h b/include/brain/neuron.h
index 810ce5b..d017b0d 100644
--- a/include/brain/neuron.h
+++ b/include/brain/neuron.h
@@ -13,9 +13,9 @@ public:
virtual ~Neuron() {}
virtual double activation() const;
- void addInput(std::shared_ptr<NeuralLink> link);
+ void addInput(std::unique_ptr<NeuralLink>&& link);
private:
- std::vector<std::shared_ptr<NeuralLink>> _inputLinks;
+ std::vector<std::unique_ptr<NeuralLink>> _inputLinks;
double sigmoid(double input) const;
};
diff --git a/include/building.h b/include/building.h
new file mode 100644
index 0000000..76d78fd
--- /dev/null
+++ b/include/building.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#include "game_entity.h"
+
+class Building : public GameEntity
+{
+public:
+ Building(int x, int y);
+ const static char MISSILE_CONTROLLER_CHAR = 'M';
+ const static char ALIEN_FACTORY_CHAR = 'X';
+};
+
diff --git a/include/game_state.h b/include/game_state.h
index 880557e..c129d28 100644
--- a/include/game_state.h
+++ b/include/game_state.h
@@ -5,6 +5,7 @@
#include "player_missile.h"
#include "shield.h"
#include "spaceship.h"
+#include "building.h"
#include <vector>
#include <string>
#include <istream>
@@ -14,12 +15,14 @@ class GameState
{
public:
GameState(std::istream &&mapFile);
- void logState();
+ void logState() const;
const std::vector<Alien>& aliens() const { return _aliens; }
const std::vector<EnemyBullet>& bullets() const { return _bullets; }
const std::vector<PlayerMissile>& missiles() const { return _missiles; }
const std::vector<Shield>& shields() const { return _shields; }
+ const std::vector<Building>& missileControllers() const { return _missileControllers; }
+ const std::vector<Building>& alienFactories() const { return _alienFactories; }
const std::unique_ptr<Spaceship>& playerSpaceship() const { return _playerSpaceship; }
const std::unique_ptr<Spaceship>& enemySpaceship() const { return _enemySpaceship; }
@@ -31,8 +34,11 @@ private:
std::vector<EnemyBullet> _bullets;
std::vector<PlayerMissile> _missiles;
std::vector<Shield> _shields;
+ std::vector<Building> _missileControllers;
+ std::vector<Building> _alienFactories;
+
std::unique_ptr<Spaceship> _playerSpaceship;
std::unique_ptr<Spaceship> _enemySpaceship;
-
+
int addEntity(int x, int y, char type);
};