summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
authortom <tombarrett@siu.edu>2017-02-12 08:42:55 -0600
committertom <tombarrett@siu.edu>2017-02-12 08:42:55 -0600
commit60bc5dcb19a983e8ae335ba89f860c59473303fb (patch)
tree6f232f9db0d71678ce593a765b88f4934976ed83 /inc
parent1da46794f74ebd8f445fcd70cbe0420eadb648e4 (diff)
-added DNA combining, currently it just takes the average of the mother and father
-there maybe a random segfault, further investigation is needed
Diffstat (limited to 'inc')
-rw-r--r--inc/creature.hpp12
-rw-r--r--inc/dna.hpp1
-rw-r--r--inc/entity.hpp3
3 files changed, 10 insertions, 6 deletions
diff --git a/inc/creature.hpp b/inc/creature.hpp
index c3ed2d8..56954fe 100644
--- a/inc/creature.hpp
+++ b/inc/creature.hpp
@@ -20,10 +20,11 @@ class Creature: public Entity
void setTarget();
void checkTarget();
void Move(SDL_Rect R);
- void impregnate();
+ void impregnate(Dna D);
void giveN(std::vector<Entity*> n){N = n;};
Dna getDNA(){return mine;};
+ Dna getChildDNA(){return childs;};
int getHealth(){return health;};
int getBestSense(){return mine.bestSense;};
bool getGender(){return gender;};
@@ -31,10 +32,11 @@ class Creature: public Entity
void hadPregnancy(){pregnate = pregnancyReady = false;};
private:
- SDL_Rect wTarget;
- Entity *target;
- std::vector<Entity*>N;
- Dna mine;
+ SDL_Rect wTarget;
+ Entity *target;
+ std::vector<Entity*> N;
+ Dna mine;
+ Dna childs;
int health;
int amountAte;
diff --git a/inc/dna.hpp b/inc/dna.hpp
index 4924e15..cd76731 100644
--- a/inc/dna.hpp
+++ b/inc/dna.hpp
@@ -7,6 +7,7 @@ class Dna
{
public:
Dna();
+ Dna combine(Dna D);
int maxHealth;
int speed;
int reach;
diff --git a/inc/entity.hpp b/inc/entity.hpp
index a7b7f58..0eb8f60 100644
--- a/inc/entity.hpp
+++ b/inc/entity.hpp
@@ -2,6 +2,7 @@
#define entity_h
#include "window.hpp"
+#include "dna.hpp"
class Entity
{
@@ -12,7 +13,7 @@ class Entity
SDL_Rect getRect(){return rect;};
virtual void eat(int bite){};
- virtual void impregnate(void){};
+ virtual void impregnate(Dna D){};
virtual bool getGender(void){};
virtual int getAmount(void){};