//****************************************************************************** //****************************************************************************** //************** PROJET INFORMATIQUE *************************** //****************************************************************************** //****************************************************************************** #include #include #include #include // *****************Fonction qui génère des nombres aléatoires ***************** void initRandom () { srand( time(0l)); } int random (int range) { return ( rand() % (range + 1)); } const int dimX = 30; const int dimY = 30; // Déclaration de la classe Animal class Animal; // Déclaration de la classe planète class Planete { private : int temps; // age de la planète int nbRaies; // nombre de raies int nbRequins; // nombre de requins Animal * grille1[dimX][dimY]; Animal * grille2[dimX][dimY]; // grille1 représentant la planète à l'instant t // grille2 à l'instant t+1 public : Planete(int tps, int nbRa, int nbReq, Animal * Tab[dimX][dimY]); int getTime(){return temps;}; int nbraies(){return nbRaies;}; int nbrequins(){return nbRequins;}; void modifie (int i, int j, Animal * a){grille1[i][j] = a ;}; //modifie met le pointeur a dans la case (i,j) de la grille Animal * GetAnimal(int i, int j) {return grille1[i][j];}; bool estVide(int i, int j); int nbCasesVides(int i,int j,int lVide[],int cVide[]); int nbCasesRaies(int i,int j,int lRaies[],int cRaies[]); void populationInitiale(Planete * pla,int nbIniReq,int nbIniRa,int reproReq,int reproRa,int faim); void Affiche();// Affiche le tableau correspondant à la planète considérée où les requins sont // représenté par des "O"et les Raies par des "X". void unPas(); // Fait évoluler le système d'un pas void recopie();//recopie, à la fin d'un pas de calcule,le contenue de grille2 dans grille1 avant le pas suivant }; // *************Description de la classe Animal***************************** class Animal { protected: int x;// colonne int y;// ligne int date_de_naissance; int tpRepro; bool deplace; // deplace informe si l'animale s'est déplacé Planete * anneau; public: Animal(){}; Animal(int co,int li,int tp,bool dep, Planete * pla){ co = x; li = y; tp = tpRepro; dep = deplace; pla = anneau;}; virtual void toString(); //virtual bool estRaie(); //virtual void naissance(); //virtual void mange(); //void bouge(); //virtual void meurt(); }; // ************Description de classe Raies************************* class Raies : public Animal { public: Raies(){}; Raies(int co,int li,int tp,bool dep,Planete * pla) : Animal (co, li, tp, dep, pla){}; void toString(); //bool estRaie(); //void naissance(); //void bouge(); //void meurt(); }; // ************Description de classe Requins*********************** class Requins : public Animal { private: int faim; int dateSurvie; public: Requins(int co,int li,int tp,bool dep,Planete * pla,int fa); void toString(); //bool estRaie(); //void naissance(); //void mange(); //void meurt(); }; //************* Définition de la fonction toString*************************** void Animal :: toString(){ Planete * pla; Animal * a; Raies * b; if (a == b) cout<<"X "<