Graine
Génération procédurale de créatures et apprentissage par réseaux de neurones.
Controller.hpp
Go to the documentation of this file.
1 #ifndef CONTROLLER
2 #define CONTROLLER
3 
4 #include <iostream>
5 #include <string>
6 #include <vector>
7 #include "../map/Map.hpp"
8 #include "../map/mapType/MapObjective.hpp"
9 #include "../creature/Creature.hpp"
10 #include "../creature/FeelingBar.hpp"
11 #include "../creature/feature/input/InputFeature.hpp"
12 #include "../creature/feature/input/ObjectiveDirection.hpp"
13 #include "../creature/feature/input/InputDouble.hpp"
14 #include "../creature/feature/output/OutputFeature.hpp"
15 #include "../creature/feature/output/Movement.hpp"
16 #include "../creature/feature/output/Eat.hpp"
17 #include "Evolution.hpp"
18 #include "../usefull/Usefull.hpp"
19 #include "../exception/NotEnoughCreatureException.hpp"
20 #include "../exception/NotEnoughBrainException.hpp"
21 
22 #define MIN_CREA 2
23 
24 #define SPAWN_RANDOM
25 
26 #ifndef SPAWN_RANDOM
27  #define SPAWN_SPREADING 1000.0
28 #endif
29 
30 #define RANDOM_PERIMETER 20
31 
33 
34 class Controller{
35 
36  private:
37  Map& map;
38  int nbCreaSelectMax, nbCreaMax;
39  int nbGen;
40  int turn, turnMax;
41  std::vector<Creature*> creatures;
42  int idCounter;
43  std::vector<NeuronNetwork> lastBestBrains;
44 
45  void selectBest();
46  void createCreatures();
47  void createCreatures(vector<NeuronNetwork> brains);
48  void addFeatures(Creature* creature);
49  Position getSpawn(int number);
50  void printNbGen();
51 
52  public:
53  Controller(Map& map, int nbCreaSelectMax, int nbCreaMax, int turnMax);
54  void update();
55  bool doneObjective();
56 
57  int getNbCreaMax() const;
58  Position& getPositionCrea(int crea);
59  int getRotationCrea(int crea) const;
60  int getNbGen();
61 
63  Controller(Map& map);
64  void update(int speed);
65  void update(Rotation rotation);
66 };
67 
68 #endif
Definition: Creature.hpp:27
int getRotationCrea(int crea) const
Definition: Controller.cpp:184
void update()
Definition: Controller.cpp:27
Definition: Controller.hpp:32
Rotation
Definition: Controller.hpp:32
bool doneObjective()
Definition: Controller.cpp:80
int getNbCreaMax() const
Definition: Controller.cpp:176
Definition: Controller.hpp:34
Definition: Controller.hpp:32
Position & getPositionCrea(int crea)
Definition: Controller.cpp:180
Controller(Map &map, int nbCreaSelectMax, int nbCreaMax, int turnMax)
Definition: Controller.cpp:14
int getNbGen()
Debug methods.
Definition: Controller.cpp:192