diff --git a/src/piecesEchiquier/Echiquier.java b/src/piecesEchiquier/Echiquier.java index b21a3b9..3cc9429 100644 --- a/src/piecesEchiquier/Echiquier.java +++ b/src/piecesEchiquier/Echiquier.java @@ -147,7 +147,7 @@ public class Echiquier { else if (this.getEchiquier()[i][j].deplacable(this,this.getEchiquier()[k][l]) == false) // VERIFICATION AVEC FONCTION DEPLACABLE { - System.err.println("Déplacement impossiblec6. Recommencez ! \n"); + System.err.println("Déplacement impossible. Recommencez ! \n"); return false; } @@ -158,9 +158,38 @@ public class Echiquier { stock = new Position(l+1,8-k); //stockage de la pos destination stock2 = new Position(j+1,8-i); //stockage de la pos source this.getEchiquier()[k][l] = this.getEchiquier()[i][j]; //deplacement de la piece - this.getEchiquier()[k][l].setPosition(stock); //donner nouvelle position a la piece dépalcer + this.getEchiquier()[k][l].setPosition(stock); //donner nouvelle position a la piece déplacer this.getEchiquier()[i][j] = new Piece(stock2); //mettre piece vide dans la pos source, car la case est maintenant vide - return true; + int p; + int q; + Piece stockageRoi=null; + if( this.getEchiquier( )[k][l].getCouleur().equals("Blanc") ) { + for ( p=0; p < codes.length;p++) //cherche le roi noir dans la matrice + { + for ( q=0; q < codes.length;q++) + { + if(this.getEchiquier()[p][q].getNom().equals("KN")) + { + stockageRoi=this.getEchiquier()[p][q]; + } + } + } + } + else + { + for ( p=0; p < codes.length;p++) //cherche le roi blanc dans la matrice + { + for ( q=0; q < codes.length;q++) + { + if(this.getEchiquier()[p][q].getNom().equals("KB")) + { + stockageRoi=this.getEchiquier()[p][q]; + } + } + } + } + this.getEchiquier()[k][l].metEnEchec(this,stockageRoi); //Verifie si le roi sera en echec + return true; } } } diff --git a/src/piecesEchiquier/Fou.java b/src/piecesEchiquier/Fou.java index cd762b7..31e3067 100755 --- a/src/piecesEchiquier/Fou.java +++ b/src/piecesEchiquier/Fou.java @@ -10,9 +10,6 @@ public class Fou extends Piece { public boolean deplacable(Echiquier e,Piece p) { - //if (e.estVide(p.getPosition()) == false) //si on mange une piece - // System.out.println("Vous avez mangé une pièce !"); - if (e.estVide(p.getPosition()) == false) //si on mange une piece { if(!(p.getNom().equals("KN") || p.getNom().equals("KB"))) // si la pièce n'est pas un roi , on affiche le message @@ -20,7 +17,6 @@ public class Fou extends Piece { System.out.println("Vous avez mangé une pièce !"); } } - if (p.getPosition().getX() < this.getPosition().getX()) { diff --git a/src/piecesEchiquier/Piece.java b/src/piecesEchiquier/Piece.java index 1e6de67..78deab4 100755 --- a/src/piecesEchiquier/Piece.java +++ b/src/piecesEchiquier/Piece.java @@ -95,4 +95,14 @@ public class Piece { { return true; } + + public boolean metEnEchec(Echiquier e, Piece p) + { + if(this.deplacable(e,p) == true) //1er cas : la pièce se deplace une seconde fois (pas vraiment) et verifie qu'elle tombe sur la position du roi (soit noir, soit blanc selon la couleur de la pièce) + { + System.out.println("Le roi est en échec"); + return true; + } + return false; + } } diff --git a/src/piecesEchiquier/Pion.java b/src/piecesEchiquier/Pion.java index 5a31193..a67f950 100755 --- a/src/piecesEchiquier/Pion.java +++ b/src/piecesEchiquier/Pion.java @@ -35,7 +35,10 @@ public class Pion extends Piece { { if (!(p.getNom().equals(".."))) // SI case non vide { - System.err.println("Vous ne pouvez pas manger en avancant tout droit."); + if(!(p.getNom().equals("KN") || p.getNom().equals("KB"))) // si la pièce n'est pas un roi , on affiche le message + { + System.err.println("Vous ne pouvez pas manger en avancant tout droit."); + } return false; } if ( ((this.getCouleur().equals("Blanc")) && (p.getPosition().getY()-1 == this.getPosition().getY()) ) || ((this.getCouleur().equals("Noir")) && (p.getPosition().getY()+1 == this.getPosition().getY()))) diff --git a/src/piecesEchiquier/Reine.java b/src/piecesEchiquier/Reine.java index 67a7dd0..d41b41c 100755 --- a/src/piecesEchiquier/Reine.java +++ b/src/piecesEchiquier/Reine.java @@ -19,10 +19,8 @@ public class Reine extends Piece { if(p.getPosition().getX() == this.getPosition().getX()) // verification les 2 pieces sont sur la meme colonne { - System.out.println("test"); if (p.getPosition().getY() > this.getPosition().getY()) // Test si la 2 eme piece est au dessus de la 1ere { - System.out.println("test2"); for (int i = this.getPosition().getY()+1; i <= p.getPosition().getY()-1;i++) // verifie qu'il n'y a pas d'obstacles sur le chemin { if (!(e.getEchiquier()[8-i][this.getPosition().getX()-1].getNom().equals(".."))) // SI case non vide @@ -80,7 +78,6 @@ public class Reine extends Piece { for (int i = 1; i < 8; i++) // ON CHERCHE SI LA 2EME COORS EST EN DIAGONALE DE LA 1 ERE { - System.out.println("test"); if ( p.getPosition().getX() == this.getPosition().getX()+i) // 2eme coors a droite de la 1 ere { diff --git a/src/piecesEchiquier/Roi.java b/src/piecesEchiquier/Roi.java index 1741866..fb97452 100755 --- a/src/piecesEchiquier/Roi.java +++ b/src/piecesEchiquier/Roi.java @@ -111,10 +111,7 @@ public class Roi extends Piece { } return false; } - /* - public boolean isEnEchec() - { - - }*/ + } +