diff --git a/src/piecesEchiquier/Roi.java b/src/piecesEchiquier/Roi.java index 2e29b89..c3ecded 100755 --- a/src/piecesEchiquier/Roi.java +++ b/src/piecesEchiquier/Roi.java @@ -36,23 +36,19 @@ public class Roi extends Piece { { for (int j=0; j<8;j++) { - - - if((e.getEchiquier()[i][j].getCouleur() != this.getCouleur()) && (e.getEchiquier()[i][j].getCouleur() != "") ) //si la piece est de couleur adverse { e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Roi(this.getCouleur(),this.getNom(),new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]= new Piece(new Position(this.getPosition().getX(),this.getPosition().getY()));//transforme temporairement le roi en piece vide if(e.getEchiquier()[i][j].metEnEchec(e,e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1]) == true) //si la piece est en echec sur la 2eme coor { - e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY()));//remplace le fantome du roi par une piece vide + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position return false; } e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position } - - - - } } return true; @@ -70,12 +66,15 @@ public class Roi extends Piece { if((e.getEchiquier()[i][j].getCouleur() != this.getCouleur()) && (e.getEchiquier()[i][j].getCouleur() != "") ) //si la piece est de couleur adverse { e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Roi(this.getCouleur(),this.getNom(),new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]= new Piece(new Position(this.getPosition().getX(),this.getPosition().getY()));//transforme temporairement le roi en piece vide if(e.getEchiquier()[i][j].metEnEchec(e,e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1]) == true) //si la piece est en echec sur la 2eme coor { - e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY()));//remplace le fantome du roi par une piece vide + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position return false; } e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position } } } @@ -94,12 +93,15 @@ public class Roi extends Piece { if((e.getEchiquier()[i][j].getCouleur() != this.getCouleur()) && (e.getEchiquier()[i][j].getCouleur() != "") ) //si la piece est de couleur adverse { e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Roi(this.getCouleur(),this.getNom(),new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]= new Piece(new Position(this.getPosition().getX(),this.getPosition().getY()));//transforme temporairement le roi en piece vide if(e.getEchiquier()[i][j].metEnEchec(e,e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1]) == true) //si la piece est en echec sur la 2eme coor { - e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY()));//remplace le fantome du roi par une piece vide + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position return false; } e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position } } } @@ -118,12 +120,15 @@ public class Roi extends Piece { if((e.getEchiquier()[i][j].getCouleur() != this.getCouleur()) && (e.getEchiquier()[i][j].getCouleur() != "") ) //si la piece est de couleur adverse { e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Roi(this.getCouleur(),this.getNom(),new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]= new Piece(new Position(this.getPosition().getX(),this.getPosition().getY()));//transforme temporairement le roi en piece vide if(e.getEchiquier()[i][j].metEnEchec(e,e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1]) == true) //si la piece est en echec sur la 2eme coor { - e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY()));//remplace le fantome du roi par une piece vide + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position return false; } e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position } } } @@ -142,12 +147,15 @@ public class Roi extends Piece { if((e.getEchiquier()[i][j].getCouleur() != this.getCouleur()) && (e.getEchiquier()[i][j].getCouleur() != "") ) //si la piece est de couleur adverse { e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Roi(this.getCouleur(),this.getNom(),new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]= new Piece(new Position(this.getPosition().getX(),this.getPosition().getY()));//transforme temporairement le roi en piece vide if(e.getEchiquier()[i][j].metEnEchec(e,e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1]) == true) //si la piece est en echec sur la 2eme coor { - e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY()));//remplace le fantome du roi par une piece vide + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position return false; } e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position } } } @@ -166,12 +174,15 @@ public class Roi extends Piece { if((e.getEchiquier()[i][j].getCouleur() != this.getCouleur()) && (e.getEchiquier()[i][j].getCouleur() != "") ) //si la piece est de couleur adverse { e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Roi(this.getCouleur(),this.getNom(),new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]= new Piece(new Position(this.getPosition().getX(),this.getPosition().getY()));//transforme temporairement le roi en piece vide if(e.getEchiquier()[i][j].metEnEchec(e,e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1]) == true) //si la piece est en echec sur la 2eme coor { - e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY()));//remplace le fantome du roi par une piece vide + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position return false; } e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position } } } @@ -190,12 +201,15 @@ public class Roi extends Piece { if((e.getEchiquier()[i][j].getCouleur() != this.getCouleur()) && (e.getEchiquier()[i][j].getCouleur() != "") ) //si la piece est de couleur adverse { e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Roi(this.getCouleur(),this.getNom(),new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]= new Piece(new Position(this.getPosition().getX(),this.getPosition().getY()));//transforme temporairement le roi en piece vide if(e.getEchiquier()[i][j].metEnEchec(e,e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1]) == true) //si la piece est en echec sur la 2eme coor { - e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY()));//remplace le fantome du roi par une piece vide + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position return false; } e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position } } } @@ -214,12 +228,15 @@ public class Roi extends Piece { if((e.getEchiquier()[i][j].getCouleur() != this.getCouleur()) && (e.getEchiquier()[i][j].getCouleur() != "") ) //si la piece est de couleur adverse { e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Roi(this.getCouleur(),this.getNom(),new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]= new Piece(new Position(this.getPosition().getX(),this.getPosition().getY()));//transforme temporairement le roi en piece vide if(e.getEchiquier()[i][j].metEnEchec(e,e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1]) == true) //si la piece est en echec sur la 2eme coor { - e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY()));//remplace le fantome du roi par une piece vide + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position return false; } e.getEchiquier()[8-p.getPosition().getY()][p.getPosition().getX()-1] = new Piece(new Position(p.getPosition().getX(),p.getPosition().getY())); + e.getEchiquier()[8-(this.getPosition().getY())][this.getPosition().getX()-1]=this;//rajoute le roi à sa position } } } diff --git a/src/visuel/main.java b/src/visuel/main.java index a4af475..4df1393 100755 --- a/src/visuel/main.java +++ b/src/visuel/main.java @@ -124,19 +124,7 @@ public class main { System.out.println("\n" + "Tour de " + j1.getNom() + "(" + j1.getCouleur() + ")\n"); //do { - if (e.getRoiB1().isRoiEchec() == true) - { - do - { - 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.getRoiB1().getPosition().getY()][e.getRoiB1().getPosition().getX()-1]; - B = sc.nextLine(); - - }while(e.verificationMouvement(j1, A, B) != true ); - - } - else if (e.getRoiB1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiB1().getPosition().getY()][e.getRoiB1().getPosition().getX()-1]) == true) + if (e.getRoiB1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiB1().getPosition().getY()][e.getRoiB1().getPosition().getX()-1]) == true) { do { @@ -148,6 +136,19 @@ public class main { 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(j1, A, B) != true ); + + } + + else if (e.getRoiB1().isRoiEchec() == true) + { + do + { + 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.getRoiB1().getPosition().getY()][e.getRoiB1().getPosition().getX()-1]; + B = sc.nextLine(); }while(e.verificationMouvement(j1, A, B) != true && e.getRoiB1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiB1().getPosition().getY()][e.getRoiB1().getPosition().getX()-1]) == true); } else { @@ -175,10 +176,6 @@ public class main { }while(e.verificationMouvement(j1, sA, B) != true ); } - - - - //} while (e.verificationMouvement(j1, 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 roi blanc en echec etmat @@ -199,20 +196,9 @@ public class main { System.out.println("Tour de " + j2.getNom() + "(" + j2.getCouleur() + ")\n"); //do { - if (e.getRoiN1().isRoiEchec()) + if (e.getRoiN1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiN1().getPosition().getY()][e.getRoiN1().getPosition().getX()-1]) == true) { do { - 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(); - }while(e.verificationMouvement(j2, A, B) != true ); - } - - else if (e.getRoiN1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiN1().getPosition().getY()][e.getRoiN1().getPosition().getX()-1]) == true) - { - do - { System.out.println( "Votre roi est en echec et mat temporaire. Bougez une piece pour le sauver si vous pouvez. Sinon bougez une piece au hasard.\n"); System.out.println( @@ -221,6 +207,17 @@ public class main { 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 ); + } + + else if (e.getRoiN1().isRoiEchec()) + { + do + { + 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(); }while(e.verificationMouvement(j2, A, B) != true && e.getRoiN1().enEchecEtMat(e,e.getEchiquier()[8-e.getRoiN1().getPosition().getY()][e.getRoiN1().getPosition().getX()-1]) == true); } else {