Rajout condition d'affichage + methode metEnEchec + supression d'éléments inutiles

This commit is contained in:
Johann 2019-05-24 22:52:04 +02:00
parent a4252e634b
commit a261b3a4df
6 changed files with 48 additions and 16 deletions

View File

@ -147,7 +147,7 @@ public class Echiquier {
else if (this.getEchiquier()[i][j].deplacable(this,this.getEchiquier()[k][l]) == false) // VERIFICATION AVEC FONCTION DEPLACABLE 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; return false;
} }
@ -158,9 +158,38 @@ public class Echiquier {
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
this.getEchiquier()[k][l] = this.getEchiquier()[i][j]; //deplacement de la piece 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 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;
} }
} }
} }

View File

@ -10,9 +10,6 @@ public class Fou extends Piece {
public boolean deplacable(Echiquier e,Piece p) 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 (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 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 !"); System.out.println("Vous avez mangé une pièce !");
} }
} }
if (p.getPosition().getX() < this.getPosition().getX()) if (p.getPosition().getX() < this.getPosition().getX())
{ {

View File

@ -95,4 +95,14 @@ public class Piece {
{ {
return true; 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;
}
} }

View File

@ -35,7 +35,10 @@ public class Pion extends Piece {
{ {
if (!(p.getNom().equals(".."))) // SI case non vide 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; 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()))) if ( ((this.getCouleur().equals("Blanc")) && (p.getPosition().getY()-1 == this.getPosition().getY()) ) || ((this.getCouleur().equals("Noir")) && (p.getPosition().getY()+1 == this.getPosition().getY())))

View File

@ -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 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 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 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 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 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 if ( p.getPosition().getX() == this.getPosition().getX()+i) // 2eme coors a droite de la 1 ere
{ {

View File

@ -111,10 +111,7 @@ public class Roi extends Piece {
} }
return false; return false;
} }
/*
public boolean isEnEchec()
{
}*/
} }