121 lines
3.2 KiB
C++
121 lines
3.2 KiB
C++
//
|
|
// Created by jser on 09/12/2021.
|
|
//
|
|
|
|
#include "G990Adapter.h"
|
|
|
|
G990Adapter::~G990Adapter() {
|
|
Compteur::ajouterDestructeur();
|
|
delete(g990);
|
|
}
|
|
|
|
G990Adapter::G990Adapter(const G990Adapter &g990adapter) {
|
|
Compteur::ajouterConstructeurCopie();
|
|
g990 = new G990(*g990adapter.g990);
|
|
pdv = g990adapter.pdv;
|
|
}
|
|
|
|
G990Adapter::G990Adapter() {
|
|
Compteur::ajouterConstructeur();
|
|
g990 = new G990();
|
|
pdv = 30;
|
|
}
|
|
|
|
void G990Adapter::bouger(int xAmi, int yAmi, int &x, int &y, int xEnnemi, int yEnnemi) {
|
|
int xs = x; //sauvegardes des coordonnées
|
|
int ys = y;
|
|
int nbm = 0;
|
|
if (!estFonctionnel()){}
|
|
else {
|
|
if (pdv > 10) {
|
|
g990->bloquer(xAmi, yAmi, x, y, xEnnemi, yEnnemi);}
|
|
while (x==xs && y==ys && nbm <=4){
|
|
srand(time(NULL));
|
|
int choix = rand()%2;
|
|
if (choix ==1){g990->deplacementNordSud(3,x, y);}
|
|
else {g990->deplacementEstOuest(3,x,y);}
|
|
if (x==xs && y==ys){
|
|
switch (rand()%4) {
|
|
case 0 :
|
|
g990->regarderEst();
|
|
break;
|
|
case 1 :
|
|
g990->regarderNord();
|
|
break;
|
|
case 2 :
|
|
g990->regarderOuest();
|
|
break;
|
|
case 3 :
|
|
g990->regarderSud();
|
|
break;
|
|
}
|
|
}
|
|
nbm++;
|
|
}
|
|
int deg = rand()%5;
|
|
pdv = pdv-deg;
|
|
}
|
|
|
|
}
|
|
|
|
int G990Adapter::attaquer(int x, int y, int xEnnemi, int yEnnemi) {int xs = x; //sauvegardes des coordonnées
|
|
int ys = y;
|
|
int nbm = 0;
|
|
if (!estFonctionnel()){}
|
|
else {
|
|
while (x==xs && y==ys && nbm <=4){
|
|
srand(time(NULL));
|
|
int choix = rand()%2;
|
|
if (choix ==1){g990->deplacementNordSud(3,x, y);}
|
|
else {g990->deplacementEstOuest(3,x,y);}
|
|
if (x==xs && y==ys){
|
|
switch (rand()%4) {
|
|
case 0 :
|
|
g990->regarderEst();
|
|
break;
|
|
case 1 :
|
|
g990->regarderNord();
|
|
break;
|
|
case 2 :
|
|
g990->regarderOuest();
|
|
break;
|
|
case 3 :
|
|
g990->regarderSud();
|
|
break;
|
|
}
|
|
}
|
|
nbm++;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
void G990Adapter::defendre(int degat) {
|
|
int a = 0;
|
|
a=1;
|
|
}
|
|
|
|
bool G990Adapter::estFonctionnel() {
|
|
return pdv>0;
|
|
}
|
|
|
|
string G990Adapter::toStringg() {
|
|
string robot;
|
|
robot = "vision : " + to_string(g990->getVision()) +" " + " energie max : " + to_string(g990->getEnergieMaximale()) + " " + "energie physique : " +
|
|
to_string(g990->getEnergiePhysique()) + " " + "nord : " + to_string(g990->getNord()) + " " + "est : " + to_string(g990->getEst());
|
|
return robot;
|
|
}
|
|
|
|
G990Adapter::G990Adapter(G990 *g990) {
|
|
Compteur::ajouterConstructeur();
|
|
this->g990=g990;
|
|
pdv = 30;
|
|
}
|
|
|
|
int G990Adapter::getPdv() const {
|
|
return pdv;
|
|
}
|
|
|
|
void G990Adapter::setPdv(int pdv) {
|
|
G990Adapter::pdv = pdv;
|
|
}
|