154 lines
3.7 KiB
C++
154 lines
3.7 KiB
C++
//
|
|
// Created by onnig on 18/11/2021.
|
|
//
|
|
|
|
#include "X213.h"
|
|
|
|
//const int n = 10;
|
|
|
|
X213::X213() {
|
|
Compteur::ajouterConstructeur();
|
|
nom = "x213";
|
|
direction = 0;
|
|
force = 5;
|
|
vision = 4;
|
|
vitesse = 4;
|
|
}
|
|
|
|
X213::~X213() {Compteur::ajouterDestructeur();}
|
|
|
|
X213::X213(const X213 &x213) {
|
|
Compteur::ajouterConstructeurCopie();
|
|
nom = x213.nom;
|
|
vitesse = x213.vitesse;
|
|
direction = x213.direction;
|
|
force = x213.force;
|
|
vision = x213.vision;
|
|
}
|
|
|
|
const string &X213::getNom() const {
|
|
return nom;
|
|
}
|
|
|
|
void X213::setNom(const string &nom) {
|
|
X213::nom = nom;
|
|
}
|
|
|
|
int X213::getDirection() const {
|
|
return direction;
|
|
}
|
|
|
|
void X213::setDirection(int direction) {
|
|
if (direction < 0){direction=0;}
|
|
else if (direction > 3){direction=3;}
|
|
else {X213::direction = direction;}
|
|
}
|
|
|
|
int X213::getForce() const {
|
|
return force;
|
|
}
|
|
|
|
void X213::setForce(int force) {
|
|
X213::force = force;
|
|
}
|
|
|
|
int X213::getVitesse() const {
|
|
return vitesse;
|
|
}
|
|
|
|
void X213::setVitesse(int vitesse) {
|
|
X213::vitesse = vitesse;
|
|
}
|
|
|
|
int X213::getVision() const {
|
|
return vision;
|
|
}
|
|
|
|
void X213::setVision(int vision) {
|
|
X213::vision = vision;
|
|
}
|
|
|
|
int X213::bloquer() {
|
|
return vitesse/3 + force;
|
|
}
|
|
/*
|
|
void X213::tournerLesTalons() {
|
|
if (direction == 0){direction=2;}
|
|
else if (direction == 1){direction=3;}
|
|
else if (direction == 2){direction=0;}
|
|
else if (direction == 3){direction=1;}
|
|
}*/
|
|
|
|
|
|
void X213::tournerLesTalons() {
|
|
int tourner[4] = {2,3,0,1};
|
|
direction = tourner[direction];
|
|
}
|
|
|
|
void X213::mouvement(int &x, int &y) {
|
|
switch (direction) {
|
|
case 0: //avance
|
|
if (x-vitesse-1 >=0){x=x-vitesse-1;}
|
|
else {x=0; cout<<"Impossible d'aller plus loin"<<endl;}
|
|
break;
|
|
|
|
case 1: //droite
|
|
if (y+vitesse+1 <= n){y = y+vitesse+1;}
|
|
else {y=n; cout<<"Impossible d'aller plus loin"<<endl;}
|
|
break;
|
|
|
|
case 2: //reculer
|
|
if (x+vitesse+1 <= n){x = x+vitesse+1;}
|
|
else {x=n; cout<<"Impossible d'aller plus loin"<<endl;}
|
|
break;
|
|
|
|
case 3: //gauche
|
|
if (y-vitesse-1 >= 0){y = y-vitesse-1;}
|
|
else {y=0; cout<<"Impossible d'aller plus loin"<<endl;}
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
void X213::superCourse(int &x, int &y) {
|
|
switch (direction) {
|
|
case 0: //avance
|
|
if (x - (vitesse + (vitesse * force / 10)) >= 0) { x = x - (vitesse + (vitesse * force / 10)); }
|
|
else {x = 0; cout << "Impossible d'aller plus loin" << endl;}
|
|
break;
|
|
|
|
case 1: //droite
|
|
if (y + (vitesse + (vitesse * force / 10)) <= n) { y = y + (vitesse + (vitesse * force / 10)); }
|
|
else {y = n; cout << "Impossible d'aller plus loin" << endl;}
|
|
break;
|
|
|
|
case 2: //reculer
|
|
if (x + (vitesse + (vitesse * force / 10)) <= n) { x = x + (vitesse + (vitesse * force / 10)); }
|
|
else {x = n; cout << "Impossible d'aller plus loin" << endl;}
|
|
break;
|
|
|
|
case 3: //gauche
|
|
if (y - (vitesse + (vitesse * force / 10)) >= 0) { y = y - (vitesse + (vitesse * force / 10)); }
|
|
else {y = 0; cout << "Impossible d'aller plus loin" << endl;}
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
X213::X213(string nom) {
|
|
Compteur::ajouterConstructeur();
|
|
X213::nom = nom;
|
|
direction = 0;
|
|
force = 5;
|
|
vision = 4;
|
|
vitesse = 4;
|
|
}
|
|
|
|
X213::X213(string nom, int direction, int force, int vitesse, int vision) : nom(nom), direction(direction),
|
|
force(force), vitesse(vitesse),
|
|
vision(vision) {Compteur::ajouterConstructeur();}
|
|
|
|
|
|
|
|
|
|
|