diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/brain/neural_network.h | 4 | ||||
-rw-r--r-- | include/brain/neural_node.h | 1 | ||||
-rw-r--r-- | include/brain/neuron.h | 4 | ||||
-rw-r--r-- | include/building.h | 12 | ||||
-rw-r--r-- | include/game_state.h | 10 |
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); }; |