deplacement Dames OK (au moins le principal je crois...)
This commit is contained in:
parent
119cf9d3ba
commit
7ee843d29e
2 changed files with 14 additions and 17 deletions
|
@ -75,12 +75,7 @@ void Dames::event(const int x, const int y) {
|
||||||
// Test si le déplacement est possible pour un pions : en diagonal en
|
// Test si le déplacement est possible pour un pions : en diagonal en
|
||||||
// direction de l'autre joueur
|
// direction de l'autre joueur
|
||||||
// Crash ici parce que p = nullptr donc p->getPos() provoque une segfault
|
// Crash ici parce que p = nullptr donc p->getPos() provoque une segfault
|
||||||
if ((joueurCourant == &joueur1 &&
|
if (p==nullptr) {
|
||||||
posCurseur.first == p->getPos().first + 1) ||
|
|
||||||
(joueurCourant == &joueur2 &&
|
|
||||||
posCurseur.first == p->getPos().first - 1) &&
|
|
||||||
(posCurseur.second == p->getPos().second + 1 ||
|
|
||||||
posCurseur.second == p->getPos().second - 1)) {
|
|
||||||
plateau.moveSelection(posCurseur.first, posCurseur.second);
|
plateau.moveSelection(posCurseur.first, posCurseur.second);
|
||||||
// Donne la main au joueur suivant
|
// Donne la main au joueur suivant
|
||||||
changerJoueurCourant();
|
changerJoueurCourant();
|
||||||
|
@ -131,56 +126,56 @@ bool Dames::prisePossible(Joueur &joueur) const {
|
||||||
if (pos.first > 1) {
|
if (pos.first > 1) {
|
||||||
pieceAPrendre = getPiece(plateau.getPiece(pos.first - 1, pos.second));
|
pieceAPrendre = getPiece(plateau.getPiece(pos.first - 1, pos.second));
|
||||||
if (pieceAPrendre != nullptr &&
|
if (pieceAPrendre != nullptr &&
|
||||||
pieceAPrendre->getCategory() != p->getCategory()) {
|
pieceAPrendre->getCategory() != p->getCategory() && getPiece(plateau.getPiece(pos.first-2, pos.second))==nullptr) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pos.first > 1 && pos.second > 1) {
|
if (pos.first > 1 && pos.second > 1) {
|
||||||
pieceAPrendre = getPiece(plateau.getPiece(pos.first - 1, pos.second - 1));
|
pieceAPrendre = getPiece(plateau.getPiece(pos.first - 1, pos.second - 1));
|
||||||
if (pieceAPrendre != nullptr &&
|
if (pieceAPrendre != nullptr &&
|
||||||
pieceAPrendre->getCategory() != p->getCategory()) {
|
pieceAPrendre->getCategory() != p->getCategory() && getPiece(plateau.getPiece(pos.first-2, pos.second-2))==nullptr) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pos.first > 1 && pos.second < 8) {
|
if (pos.first > 1 && pos.second < 8) {
|
||||||
pieceAPrendre = getPiece(plateau.getPiece(pos.first - 1, pos.second + 1));
|
pieceAPrendre = getPiece(plateau.getPiece(pos.first - 1, pos.second + 1) );
|
||||||
if (pieceAPrendre != nullptr &&
|
if (pieceAPrendre != nullptr &&
|
||||||
pieceAPrendre->getCategory() != p->getCategory()) {
|
pieceAPrendre->getCategory() != p->getCategory() && getPiece(plateau.getPiece(pos.first-2, pos.second+2))==nullptr) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pos.second > 1) {
|
if (pos.second > 1) {
|
||||||
pieceAPrendre = getPiece(plateau.getPiece(pos.first, pos.second - 1));
|
pieceAPrendre = getPiece(plateau.getPiece(pos.first, pos.second - 1));
|
||||||
if (pieceAPrendre != nullptr &&
|
if (pieceAPrendre != nullptr &&
|
||||||
pieceAPrendre->getCategory() != p->getCategory()) {
|
pieceAPrendre->getCategory() != p->getCategory() && getPiece(plateau.getPiece(pos.first, pos.second-2))==nullptr) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pos.second < 8) {
|
if (pos.second < 8) {
|
||||||
pieceAPrendre = getPiece(plateau.getPiece(pos.first, pos.second + 1));
|
pieceAPrendre = getPiece(plateau.getPiece(pos.first, pos.second + 1));
|
||||||
if (pieceAPrendre != nullptr &&
|
if (pieceAPrendre != nullptr &&
|
||||||
pieceAPrendre->getCategory() != p->getCategory()) {
|
pieceAPrendre->getCategory() != p->getCategory() && getPiece(plateau.getPiece(pos.first, pos.second+2))==nullptr) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pos.first < 8 && pos.second > 1) {
|
if (pos.first < 8 && pos.second > 1) {
|
||||||
pieceAPrendre = getPiece(plateau.getPiece(pos.first + 1, pos.second - 1));
|
pieceAPrendre = getPiece(plateau.getPiece(pos.first + 1, pos.second - 1));
|
||||||
if (pieceAPrendre != nullptr &&
|
if (pieceAPrendre != nullptr &&
|
||||||
pieceAPrendre->getCategory() != p->getCategory()) {
|
pieceAPrendre->getCategory() != p->getCategory() && getPiece(plateau.getPiece(pos.first+2, pos.second-2))==nullptr) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pos.first < 8 && pos.second < 8) {
|
if (pos.first < 8 && pos.second < 8) {
|
||||||
pieceAPrendre = getPiece(plateau.getPiece(pos.first + 1, pos.second + 1));
|
pieceAPrendre = getPiece(plateau.getPiece(pos.first + 1, pos.second + 1 ));
|
||||||
if (pieceAPrendre != nullptr &&
|
if (pieceAPrendre != nullptr &&
|
||||||
pieceAPrendre->getCategory() != p->getCategory()) {
|
pieceAPrendre->getCategory() != p->getCategory() && getPiece(plateau.getPiece(pos.first+2, pos.second+2))==nullptr) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pos.first < 8) {
|
if (pos.first < 8) {
|
||||||
pieceAPrendre = getPiece(plateau.getPiece(pos.first + 1, pos.second));
|
pieceAPrendre = getPiece(plateau.getPiece(pos.first + 1, pos.second));
|
||||||
if (pieceAPrendre != nullptr &&
|
if (pieceAPrendre != nullptr &&
|
||||||
pieceAPrendre->getCategory() != p->getCategory()) {
|
pieceAPrendre->getCategory() != p->getCategory() && getPiece(plateau.getPiece(pos.first+2, pos.second))==nullptr) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,9 @@ PlateauDames::~PlateauDames() {}
|
||||||
|
|
||||||
bool PlateauDames::deplacementValideCoor(const int x1, const int y1,
|
bool PlateauDames::deplacementValideCoor(const int x1, const int y1,
|
||||||
const int x2, const int y2) const {
|
const int x2, const int y2) const {
|
||||||
return (x2 == x1 || y2 == y1);
|
if((x2==x1+1 && y2==y1+1) || (x2==x1-1 && y2==y1-1) || (x2==x1+1 && y2==y1-1) || (x2==x1-1 && y2==y1+1))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Peut-etre utiliser cette fonction pour prisePossible ?
|
// Peut-etre utiliser cette fonction pour prisePossible ?
|
||||||
|
|
Reference in a new issue