Tour fonctionnelle (pas comme avant)

+ debut de fou experimental
This commit is contained in:
Manon 2019-05-10 00:10:06 +02:00
parent 968cbe0f42
commit 3ec9d2fec0
4 changed files with 88 additions and 103 deletions

View File

@ -115,8 +115,12 @@ public class Echiquier {
int j = -1; int j = -1;
int k; int k;
int l; int l;
int stockX; //int stockX;
int stockY; //int stockY;
//int stockX2;
//int stockY2;
Position stock;
Position stock2;
do { /// TEST 1ERE COORS do { /// TEST 1ERE COORS
i++; i++;
@ -170,11 +174,11 @@ public class Echiquier {
else else
{ {
System.out.println("Choix validés. déplacement en cours."); System.out.println("Choix validés. déplacement en cours.");
stockX = this.getEchiquier()[k][l].getPosition().getX(); stock = new Position(l+1,8-k);
stockY = this.getEchiquier()[k][l].getPosition().getY(); stock2 = new Position(j+1,8-i);
this.getEchiquier()[k][l] = this.getEchiquier()[i][j]; this.getEchiquier()[k][l] = this.getEchiquier()[i][j];
this.getEchiquier()[k][l].setPosition(new Position(stockX,stockY)); this.getEchiquier()[k][l].setPosition(stock);
this.getEchiquier()[i][j] = new Piece(new Position(this.getEchiquier()[i][j].getPosition().getX(),this.getEchiquier()[i][j].getPosition().getY())); this.getEchiquier()[i][j] = new Piece(stock2);
return true; return true;
} }

View File

@ -6,4 +6,68 @@ public class Fou extends Piece {
{//c = couleur, n = nom, pos = position {//c = couleur, n = nom, pos = position
super(c,n,pos); super(c,n,pos);
} }
public boolean deplacable(Echiquier e,Piece p)
{
System.out.println("test");
System.out.println(p.getPosition().getX());
System.out.println(p.getPosition().getY());
System.out.println(this.getPosition().getX());
System.out.println(this.getPosition().getY());
for (int i = 1; i < 8; i++)
{
System.out.println("test2");
if ( p.getPosition().getX() == this.getPosition().getX()+i) // On trouve le x de la 2eme coors
{
System.out.println("test3");
if (p.getPosition().getY() == this.getPosition().getY()+i ) // on verifie que quand on avance de x vers la droite on monte aussi de x
{
System.out.println("test4");
//for (int j = this.getPosition().getX()+1;j <= p.getPosition().getX()-1;j++) // on verifie que le chemin est libre
for (int j = 1;this.getPosition().getX()+j <= p.getPosition().getX()-1;j++) // on verifie que le chemin est libre
{
System.out.println(e.getEchiquier()[this.getPosition().getX()+j][this.getPosition().getY()+j].getPosition().getX());
if ( !(e.getEchiquier()[this.getPosition().getX()+j][this.getPosition().getY()+j].getNom().equals("..")) )
{
System.out.println("Le chemin n'est pas libre.");
return false;
}
}
return true;
}
else if (p.getPosition().getY() == this.getPosition().getY()-i)
{
for (int j = this.getPosition().getX()+1;j <= p.getPosition().getX()-1;j++) // on verifie que le chemin est libre
{
System.out.println("test5.2");
if ( !(e.getEchiquier()[j][this.getPosition().getY()-j].getNom().equals("..")) )
{
System.out.println("Le chemin n'est pas libre.");
return false;
}
}
return true;
}
}
else if ( p.getPosition().getX() == this.getPosition().getX()-i)
{
System.out.println("test6");
if (p.getPosition().getY() == this.getPosition().getY()+i || p.getPosition().getY() == this.getPosition().getY()-i)
{
return true;
}
}
}
return false;
}
} }

View File

@ -28,7 +28,6 @@ public class Piece {
public Piece(String couleur,String l, Position pos) public Piece(String couleur,String l, Position pos)
{ {
this.couleur = couleur; this.couleur = couleur;
//this.lettre = l;
this.nom = l; this.nom = l;
//this.emplacementIni = emp; //this.emplacementIni = emp;
this.position = pos; this.position = pos;
@ -66,14 +65,6 @@ public class Piece {
// gets & sets // gets & sets
/*
public String getLettre() {
return lettre;
}
public void setLettre(String lettre) {
this.lettre = lettre;
}
*/
public String getNom() { public String getNom() {
return nom; return nom;
} }

View File

@ -10,18 +10,21 @@ public class Tour extends Piece {
public boolean deplacable(Echiquier e,Piece p) public boolean deplacable(Echiquier e,Piece p)
{ {
System.out.println("test"); System.out.println("test");
System.out.println(p.getPosition().getX());
System.out.println(this.getPosition().getX()); System.out.println(this.getPosition().getX());
System.out.println(p.getPosition().getY());
System.out.println(this.getPosition().getY()); System.out.println(this.getPosition().getY());
System.out.println(p.getPosition().getX());
System.out.println(p.getPosition().getY());
System.out.println("tet");
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("test1"); 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
{ {
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 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()[this.getPosition().getX()][i].getNom().equals(".."))) // SI case non vide if (!(e.getEchiquier()[8-i][this.getPosition().getX()-1].getNom().equals(".."))) // SI case non vide
{ {
System.out.println("Le chemin n'est pas libre."); System.out.println("Le chemin n'est pas libre.");
return false; return false;
@ -32,9 +35,9 @@ public class Tour extends Piece {
else if (p.getPosition().getY() < this.getPosition().getY()) // Test si la 2 eme piece est en dessous de la 1ere 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().getY()-1; i > p.getPosition().getY()+1;i--) for (int i = this.getPosition().getY()-1; i >= p.getPosition().getY()+1;i--)
{ {
if (!(e.getEchiquier()[this.getPosition().getX()][i].getNom().equals(".."))) // SI case non vide if (!(e.getEchiquier()[8-i][this.getPosition().getX()-1].getNom().equals(".."))) // SI case non vide
{ {
System.out.println("Le chemin n'est pas libre."); System.out.println("Le chemin n'est pas libre.");
return false; return false;
@ -47,12 +50,11 @@ public class Tour extends Piece {
else if(p.getPosition().getY() == this.getPosition().getY()) // verification les 2 pieces sont sur la meme colonne else if(p.getPosition().getY() == this.getPosition().getY()) // verification les 2 pieces sont sur la meme colonne
{ {
System.out.println("test2");
if (p.getPosition().getX() > this.getPosition().getX()) // Test si la 2 eme piece est au dessus de la 1ere 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()-1;i++) // verifie qu'il n'y a pas d'obstacles sur le chemin for (int i = this.getPosition().getX()+1; i <= p.getPosition().getX()-1;i++) // verifie qu'il n'y a pas d'obstacles sur le chemin
{ {
if (!(e.getEchiquier()[i][this.getPosition().getY()].getNom().equals(".."))) // SI case non vide if (!(e.getEchiquier()[8-this.getPosition().getY()][i-1].getNom().equals(".."))) // SI case non vide
{ {
System.out.println("Le chemin n'est pas libre."); System.out.println("Le chemin n'est pas libre.");
return false; return false;
@ -63,9 +65,9 @@ public class Tour extends Piece {
else if (p.getPosition().getX() < this.getPosition().getX()) // Test si la 2 eme piece est au dessus de la 1ere 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()+1;i--) // verifie qu'il n'y a pas d'obstacles sur le chemin for (int i = this.getPosition().getX()-1; i >= p.getPosition().getX()+1;i--) // verifie qu'il n'y a pas d'obstacles sur le chemin
{ {
if (!(e.getEchiquier()[i][this.getPosition().getY()].getNom().equals(".."))) // SI case non vide if (!(e.getEchiquier()[8-this.getPosition().getY()][i-1].getNom().equals(".."))) // SI case non vide
{ {
return false; return false;
} }
@ -78,80 +80,4 @@ public class Tour extends Piece {
return false; return false;
} }
/*
* package piecesEchiquier;
public class Tour extends Piece {
public Tour(String couleur,String l, Position pos)
{
super(couleur,l,pos);
}
public boolean deplacable(Echiquier e,Piece p)
{
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;
}
}
* */
} }