Modificationfonction deplacable tour

(+arrangements pour que ce soit fonctionnel)
This commit is contained in:
Anthony 2019-05-09 10:54:41 +02:00
parent d43f65fba0
commit cb3f17343e
4 changed files with 94 additions and 24 deletions

View File

@ -121,19 +121,21 @@ public class Echiquier {
int k;
int l;
do {
do { /// Tests pour la premiere piece
i++;
j = -1;
do {
j++;
if (getCodes()[i][j].equals(A))
if (getCodes()[i][j].equals(A)) //Cherche dans la mqtrice code si on trouve un string en accord avec celui donné par le joueur
{
if (this.getEchiquier()[i][j].getClass().getName().equals("Piece"))
if (this.getEchiquier()[i][j].getClass().getName().equals("Piece")) // Verifie si la case choisie n'est pas vide
{
System.out.println("Vous avez choisi une case vide. Recommencez.");
return false;
}
else if (this.getEchiquier()[i][j].getCouleur() != J.getCouleur())
else if (this.getEchiquier()[i][j].getCouleur() != J.getCouleur()) // Verifie si la piece choisie n'est pas de la faction opposée
{
System.out.println("Le pion choisi n'est pas de votre faction. Recommencez.");
return false;
@ -142,20 +144,33 @@ public class Echiquier {
}while(( (getCodes()[i][j].equals(A)) == false) && (j+1 < codes.length));
}while((getCodes()[i][j].equals(A) == false) && (i+1 < codes.length));
for (k = 0; k < codes.length;k++)
for (k = 0; k < codes.length;k++) // Tests pour la 2 eme piece/case choisie
{
for (l = 0; l < codes.length;l++) {
for (l = 0; l < codes.length;l++)
{
if (getCodes()[k][l].equals(B) == true)
{
if (this.getEchiquier()[k][l].getCouleur() == J.getCouleur())
if (this.getEchiquier()[k][l].getCouleur() == J.getCouleur()) // Verifie que la piece visée n'est pas de ta faction
{
System.out.println("Le pion que vous voulez manger est de votre faction. Recommencez.");
return false;
}else if (this.getEchiquier()[i][j].deplacable(this.getEchiquier()[k][l]) == false)
}
else if (this.getEchiquier()[i][j].deplacable(this,this.getEchiquier()[k][l]) == false) // VERIFICATION AVEC FONCTION DEPLACABLE
{
System.out.println("D<EFBFBD>placement impossible. Recommencez.");
return false;
}else
}
else
{
System.out.println("Choix validés. déplacement en cours.");
this.getEchiquier()[k][l] = this.getEchiquier()[i][j];

View File

@ -103,7 +103,7 @@ public class Piece {
this.ini = ini;
}
public boolean deplacable(Piece p)
public boolean deplacable(Echiquier e,Piece p)
{
return true;
}

View File

@ -10,9 +10,9 @@ public class Pion extends Piece {
}
public boolean deplacable(Piece p)
public boolean deplacable(Piece p) // CHECK QUE PION PEUT ETRE DEPLACE
{
if (p.getPosition().getX()-1 == this.getPosition().getX() || p.getPosition().getX()+1 == this.getPosition().getX())
if (p.getPosition().getX()-1 == this.getPosition().getX() || p.getPosition().getX()+1 == this.getPosition().getX()) //vERIFICATION SI LA PERSONNE SOUHAITE MANGER LA PIECE
{
//System.out.println("test4");
if ((this.getCouleur().equals("Blanc") && p.getPosition().getY()-1 == this.getPosition().getY()) || (this.getCouleur() == "noir" && p.getPosition().getY()+1 == this.getPosition().getY()))
@ -26,22 +26,18 @@ public class Pion extends Piece {
System.out.println("Vous avez mangé une pièce !");
return true;
}
}
// AVancer tout droit
else if (p.getPosition().getX() == this.getPosition().getX())
{
if ((this.getCouleur().equals("Blanc")) && (p.getPosition().getY()-1 == this.getPosition().getY()) || (this.getCouleur().equals("Noir")) && (p.getPosition().getY()+1 == this.getPosition().getY()))
{
//System.out.println("test1");
return true;
}
/*
else if ((this.getCouleur().equals("Noir")) && (p.getPosition().getY()+1 == this.getPosition().getY()))
{
return true;
} */
if (this.aBouge() == false && ((this.getCouleur().equals("Blanc") && p.getPosition().getY()-2 == this.getPosition().getY()) || (this.getCouleur().equals("Noir") && p.getPosition().getY()+2 == this.getPosition().getY())))
{
System.out.println("test2");

View File

@ -21,8 +21,9 @@ public class Tour extends Piece {
return verif;
}
public boolean[][] deplacable(Echiquier e,Piece p) {
boolean[][] deplacementsInherentsPiece = new boolean[8][8];
public boolean deplacable(Echiquier e,Piece p)
{
/*boolean[][] deplacementsInherentsPiece = new boolean[8][8];
Position position = this.getPosition();
int x = position.getX();
int y = position.getY();
@ -34,6 +35,64 @@ public class Tour extends Piece {
deplacementsInherentsPiece[x][j]=true;
}
deplacementsInherentsPiece[x][y]=false;
return deplacementsInherentsPiece;
return deplacementsInherentsPiece;*/
if(p.getPosition().getX() == this.getPosition().getX()) // verification les 2 pieces sont sur la meme colonne
{
if (p.getPosition().getY() > this.getPosition().getY()) // Test si la 2 eme piece est au dessus de la 1ere
{
for (int i = this.getPosition().getY()+1; i < p.getPosition().getY();i++) // verifie qu'il n'y a pas d'obstacles sur le chemin
{
if (!(e.getEchiquier()[this.getPosition().getX()][i].getLettre().equals(".."))) // SI case non vide
{
return false;
}
}
return true;
}
else if (p.getPosition().getY() < this.getPosition().getY()) // Test si la 2 eme piece est en dessous de la 1ere
{
for (int i = this.getPosition().getX()-1; i > p.getPosition().getX();i--)
{
if (!(e.getEchiquier()[this.getPosition().getY()][i].getLettre().equals(".."))) // SI case non vide
{
return false;
}
}
return true;
}
return false;
}
else if(p.getPosition().getY() == this.getPosition().getY()) // verification les 2 pieces sont sur la meme colonne
{
if (p.getPosition().getX() > this.getPosition().getX()) // Test si la 2 eme piece est au dessus de la 1ere
{
for (int i = this.getPosition().getX()+1; i < p.getPosition().getX();i++) // verifie qu'il n'y a pas d'obstacles sur le chemin
{
if (!(e.getEchiquier()[i][this.getPosition().getY()].getLettre().equals(".."))) // SI case non vide
{
System.out.println("test");
return false;
}
}
return true;
}
else if (p.getPosition().getX() < this.getPosition().getX()) // Test si la 2 eme piece est au dessus de la 1ere
{
for (int i = this.getPosition().getX()-1; i > p.getPosition().getX();i--) // verifie qu'il n'y a pas d'obstacles sur le chemin
{
if (!(e.getEchiquier()[i][this.getPosition().getY()].getLettre().equals(".."))) // SI case non vide
{
return false;
}
}
return true;
}
return false;
}
else
return false;
}
}