diff --git a/src/piecesEchiquier/Cavalier.java b/src/piecesEchiquier/Cavalier.java index 67c2a76..925d899 100755 --- a/src/piecesEchiquier/Cavalier.java +++ b/src/piecesEchiquier/Cavalier.java @@ -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()) { diff --git a/src/piecesEchiquier/Echiquier.java b/src/piecesEchiquier/Echiquier.java index 37a35f9..1602071 100644 --- a/src/piecesEchiquier/Echiquier.java +++ b/src/piecesEchiquier/Echiquier.java @@ -177,7 +177,6 @@ public class Echiquier { else //PARTIE DEPLACEMENT DE LA PIECE { - System.out.println("Choix validé ! Déplacement en cours."); stock = new Position(l+1,8-k); //stockage de la pos destination stock2 = new Position(j+1,8-i); //stockage de la pos source diff --git a/src/piecesEchiquier/Roi.java b/src/piecesEchiquier/Roi.java index 318ec73..eded64b 100755 --- a/src/piecesEchiquier/Roi.java +++ b/src/piecesEchiquier/Roi.java @@ -229,6 +229,25 @@ public class Roi extends Piece { 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; + } + } diff --git a/src/visuel/main.java b/src/visuel/main.java index 7a93d26..879516b 100755 --- a/src/visuel/main.java +++ b/src/visuel/main.java @@ -101,7 +101,7 @@ public class main { if (e.getRoiB1().isRoiEchec() == true) { System.out.println( - "Comme votre roi est en echec la piec e a bouger est forcement cette derniere. Ou voulez vous la poser ?\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.getRoiB1().getPosition().getY()][e.getRoiB1().getPosition().getX()-1]; B = sc.nextLine(); } @@ -128,26 +128,38 @@ public class main { // JOUEUR2 System.out.println("Tour de " + j2.getNom() + "\n"); - if (jeu == true) { do { - System.out.println( - "Quelle piece voulez-vous deplacer ? 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ù la poser la pièce.\n"); - B = sc.nextLine(); + if (e.getRoiN1().isRoiEchec() == true) + { + System.out.println( + "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]; + B = sc.nextLine(); + } + else { + 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(); + } } 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)) + 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; + } } while (jeu == true);