Correction mouvement cavalier + echec et mat (pas complètement) fini

This commit is contained in:
Johann 2019-05-26 15:14:35 +02:00
parent 48e9fe0f23
commit 540c7fbd30
4 changed files with 47 additions and 17 deletions

View File

@ -78,7 +78,7 @@ public class Cavalier extends Piece {
} }
} }
if((p.getPosition().getX()) == (this.getPosition().getX()-2) && (p.getPosition().getY()) == (this.getPosition().getY()-1)) //Verifie deplacement y+1 vers le haut et x-2 vers la gauche if((p.getPosition().getX()) == (this.getPosition().getX()-2) && (p.getPosition().getY()) == (this.getPosition().getY()+1)) //Verifie deplacement y+1 vers le haut et x-2 vers la gauche
{ {
if(p.getCouleur()!=this.getCouleur()) if(p.getCouleur()!=this.getCouleur())
{ {

View File

@ -177,7 +177,6 @@ public class Echiquier {
else //PARTIE DEPLACEMENT DE LA PIECE else //PARTIE DEPLACEMENT DE LA PIECE
{ {
System.out.println("Choix validé ! Déplacement en cours."); System.out.println("Choix validé ! Déplacement en cours.");
stock = new Position(l+1,8-k); //stockage de la pos destination stock = new Position(l+1,8-k); //stockage de la pos destination
stock2 = new Position(j+1,8-i); //stockage de la pos source stock2 = new Position(j+1,8-i); //stockage de la pos source

View File

@ -229,6 +229,25 @@ public class Roi extends Piece {
return false; return false;
} }
public boolean enEchecEtMat(Echiquier e, Piece p)
{
if ( !((8-(p.getPosition().getY()+1 ) )<0 || 8-(p.getPosition().getY()-1 )>7 || (p.getPosition().getX()-2 )<0 || (p.getPosition().getX() )>7)) //verifie que le roi n'est pas dans un coin
{
if (this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY()+1)][p.getPosition().getX()-1]) == false //verifie que si le roi ne peut pas de deplacer autour de lui
&& this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY()-1)][p.getPosition().getX()-1]) ==false
&& this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY()+1)][p.getPosition().getX()]) == false
&& this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()]) == false
&& this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY()-1)][p.getPosition().getX()]) == false
&& this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY()+1)][p.getPosition().getX()-2]) == false
&& this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()-2]) == false
&& this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY()-1)][p.getPosition().getX()-2]) == false)
{
return true;
}
}
return false;
}
} }

View File

@ -128,26 +128,38 @@ public class main {
// JOUEUR2 // JOUEUR2
System.out.println("Tour de " + j2.getNom() + "\n"); System.out.println("Tour de " + j2.getNom() + "\n");
if (jeu == true) {
do { do {
if (e.getRoiN1().isRoiEchec() == true)
{
System.out.println( System.out.println(
"Quelle piece voulez-vous deplacer ? Donnez le code correspondant de la pièce à déplacer(ex : A1).\n"); "Comme votre roi est en echec la piece a bouger est forcement cette derniere. Ou voulez vous la poser ?\n");
A = e.getCodes()[8-e.getRoiN1().getPosition().getY()][e.getRoiN1().getPosition().getX()-1];
A = sc.nextLine(); B = sc.nextLine();
}
System.out.println( else {
"À quel endroit la poser ? Donnez le code correspondant à l'endroit où la poser la pièce.\n"); System.out.println(
"Quelle pièce voulez-vous déplacer ? Donnez le code correspondant de la pièce à déplacer(ex : A1).\n");
A = sc.nextLine();
System.out.println(
"À quel endroit la poser ? Donnez le code correspondant à l'endroit où poser la pièce.\n");
B = sc.nextLine(); B = sc.nextLine();
} while (e.verificationMouvement(j2, A, B) != true); // Tant que le mouvement n'est pas faisable on demande 2 coordonnées
} }
/*if (e.getRoiB1().enEchec(e,j1) && e.getRoiN1().enEchecEtMat(e,j1)) } while (e.verificationMouvement(j2, A, B) != true); // Tant que le mouvement n'est pas faisable on demande 2 coordonnées
if (e.getRoiB1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiB1().getPosition().getY()][e.getRoiB1().getPosition().getX()-1]) == true || //si un des 2 roi est en echecetmmat
e.getRoiN1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiN1().getPosition().getY()][e.getRoiN1().getPosition().getX()-1]) == true)
{ {
System.out.println("Le joueur 1 est echec et mat, il a perdu !"); if (e.getRoiB1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiB1().getPosition().getY()][e.getRoiB1().getPosition().getX()-1]) == true ) //si cest le roi blanc
{
System.out.println("Le joueur 1 "+ j1.getNom() +" est echec et mat, il a perdu !");
}
if (e.getRoiN1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiN1().getPosition().getY()][e.getRoiN1().getPosition().getX()-1]) == true )//si c'est le roi noir
{
System.out.println("Le joueur 2 " + j2.getNom() +" est echec et mat, il a perdu !");
}
jeu = false; jeu = false;
}*/ }
//jeu = false;
} while (jeu == true); } while (jeu == true);