diff --git a/src/piecesEchiquier/Echiquier.java b/src/piecesEchiquier/Echiquier.java index 1e866de..5664fa6 100644 --- a/src/piecesEchiquier/Echiquier.java +++ b/src/piecesEchiquier/Echiquier.java @@ -149,6 +149,9 @@ public class Echiquier { { if (this.getEchiquier()[i][j].getNom() == "KB") { + if(!(this.getEchiquier()[k+1][l].getPosition().getX()>7 ||this.getEchiquier()[k][l+1].getPosition().getY()>7 ||this.getEchiquier()[k-1][l].getPosition().getX()<0 + ||this.getEchiquier()[k][l-1].getPosition().getY()<0))//test le cas ou le roi se deplace sur une bordure + { if(this.getEchiquier()[k][l+1].getNom() == "KN" || this.getEchiquier()[k+1][l+1].getNom()=="KN" || this.getEchiquier()[k-1][l+1].getNom()== "KN" || this.getEchiquier()[k-1][l].getNom()== "KN" || this.getEchiquier()[k+1][l].getNom()== "KN" || this.getEchiquier()[k-1][l-1].getNom()== "KN" || this.getEchiquier()[k][l-1].getNom()== "KN" || this.getEchiquier()[k+1][l-1].getNom()== "KN") @@ -156,9 +159,13 @@ public class Echiquier { System.err.println("Le roi ne peut pas se coller à l'autre roi"); return false; } + } } if (this.getEchiquier()[i][j].getNom() == "KN") { + if(!(this.getEchiquier()[k+1][l].getPosition().getX()>7 ||this.getEchiquier()[k][l+1].getPosition().getY()>7 ||this.getEchiquier()[k-1][l].getPosition().getX()<0 + ||this.getEchiquier()[k][l-1].getPosition().getY()<0))//test le cas ou le roi se deplace sur une bordure + { if(this.getEchiquier()[k][l+1].getNom() == "KB" || this.getEchiquier()[k+1][l+1].getNom()=="KB" || this.getEchiquier()[k-1][l+1].getNom()== "KB" || this.getEchiquier()[k-1][l].getNom()== "KB" || this.getEchiquier()[k+1][l].getNom()== "KB" || this.getEchiquier()[k-1][l-1].getNom()== "KB" || this.getEchiquier()[k][l-1].getNom()== "KB" || this.getEchiquier()[k+1][l-1].getNom()== "KB") @@ -167,6 +174,7 @@ public class Echiquier { return false; } } + } } if (this.getEchiquier()[i][j].deplacable(this,this.getEchiquier()[k][l]) == false) // VERIFICATION AVEC FONCTION DEPLACABLE { diff --git a/src/piecesEchiquier/Roi.java b/src/piecesEchiquier/Roi.java index 13c0291..2e29b89 100755 --- a/src/piecesEchiquier/Roi.java +++ b/src/piecesEchiquier/Roi.java @@ -248,6 +248,7 @@ public class Roi extends Piece { if (p.getNom().equals("KN")) { + if (e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()-2].getCouleur() == "Noir" && //gauche e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()].getCouleur() == "Noir" && //droite e.getEchiquier()[8-(p.getPosition().getY()-1)][p.getPosition().getX()-1].getCouleur() == "Noir" && //bas @@ -256,8 +257,11 @@ public class Roi extends Piece { ) { return false; - }else if ( p.aBouge()==false && - + } + if(!(p.getPosition().getX()>7 ||p.getPosition().getY()>7 ||p.getPosition().getX()<0 + ||p.getPosition().getY()<0))//verifie que ca va pas chercher une case vide si elle est en dehors de la matrice + { + if( p.aBouge()==false && (e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()-2].getNom().equals("..") && this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()-2]) == true) // gauche verifie si le roi ne peut pas de deplacer autour de lui || (e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()].getNom().equals("..") && this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()]) == true ) //droite || (e.getEchiquier()[8-(p.getPosition().getY()-1)][p.getPosition().getX()-1].getNom().equals("..") && this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY()-1)][p.getPosition().getX()-1]) == true) // bas @@ -269,6 +273,7 @@ public class Roi extends Piece { } else return true; } + } if(p.getNom() == "KN" && p.aBouge()==true) { @@ -295,7 +300,11 @@ public class Roi extends Piece { ) { return false; - }else if ( p.aBouge()==false && + } + if(!(p.getPosition().getX()>7 ||p.getPosition().getY()>7 ||p.getPosition().getX()<0 + ||p.getPosition().getY()<0)) //verifie que ca va pas chercher une case vide si elle est en dehors de la matrice + { + if ( p.aBouge()==false && (e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()-2].getNom().equals("..") && this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()-2]) == true) // gauche verifie si le roi ne peut pas de deplacer autour de lui || (e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()].getNom().equals("..") && this.deplacable(e, e.getEchiquier()[8-(p.getPosition().getY())][p.getPosition().getX()]) == true ) //droite @@ -305,7 +314,9 @@ public class Roi extends Piece { ) { return false; - } else + } + } + else return true; } diff --git a/src/visuel/main.java b/src/visuel/main.java index eba4348..7090bd6 100755 --- a/src/visuel/main.java +++ b/src/visuel/main.java @@ -147,25 +147,7 @@ public class main { System.out.println("Le joueur 1 "+ j1.getNom() +" est echec et mat, il a perdu !"); } jeu = false; - } - - - /* - 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) - { - 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; - }*/ - - + } if(jeu == true) { //REAFFICHAGE ECHIQUIER @@ -252,9 +234,5 @@ public class main { System.err.println("Une erreur s'est produite, les joueurs ont mal saisie des entrées lors de la fin du programme."); } } - System.err.println("Une erreur s'est produite, les joueurs ont mal saisie des entrées lors du démarrage du programme. (nom de joueur vide OU un mauvais numéro de configuration par exemple)"); - - - } }