diff --git a/src/piecesEchiquier/Echiquier.java b/src/piecesEchiquier/Echiquier.java index f5887c4..e457406 100755 --- a/src/piecesEchiquier/Echiquier.java +++ b/src/piecesEchiquier/Echiquier.java @@ -115,8 +115,12 @@ public class Echiquier { int j = -1; int k; int l; - int stockX; - int stockY; + //int stockX; + //int stockY; + //int stockX2; + //int stockY2; + Position stock; + Position stock2; do { /// TEST 1ERE COORS i++; @@ -170,11 +174,11 @@ public class Echiquier { else { System.out.println("Choix validés. déplacement en cours."); - stockX = this.getEchiquier()[k][l].getPosition().getX(); - stockY = this.getEchiquier()[k][l].getPosition().getY(); + stock = new Position(l+1,8-k); + stock2 = new Position(j+1,8-i); this.getEchiquier()[k][l] = this.getEchiquier()[i][j]; - this.getEchiquier()[k][l].setPosition(new Position(stockX,stockY)); - this.getEchiquier()[i][j] = new Piece(new Position(this.getEchiquier()[i][j].getPosition().getX(),this.getEchiquier()[i][j].getPosition().getY())); + this.getEchiquier()[k][l].setPosition(stock); + this.getEchiquier()[i][j] = new Piece(stock2); return true; } diff --git a/src/piecesEchiquier/Fou.java b/src/piecesEchiquier/Fou.java index 631d6be..ef695b5 100755 --- a/src/piecesEchiquier/Fou.java +++ b/src/piecesEchiquier/Fou.java @@ -6,4 +6,68 @@ public class Fou extends Piece { {//c = couleur, n = nom, pos = position 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; + + } + + } diff --git a/src/piecesEchiquier/Piece.java b/src/piecesEchiquier/Piece.java index b79728c..c6bd898 100755 --- a/src/piecesEchiquier/Piece.java +++ b/src/piecesEchiquier/Piece.java @@ -28,7 +28,6 @@ public class Piece { public Piece(String couleur,String l, Position pos) { this.couleur = couleur; - //this.lettre = l; this.nom = l; //this.emplacementIni = emp; this.position = pos; @@ -66,14 +65,6 @@ public class Piece { // gets & sets - /* - public String getLettre() { - return lettre; - } - public void setLettre(String lettre) { - this.lettre = lettre; - } - */ public String getNom() { return nom; } diff --git a/src/piecesEchiquier/Tour.java b/src/piecesEchiquier/Tour.java index 2d1842c..61624b1 100755 --- a/src/piecesEchiquier/Tour.java +++ b/src/piecesEchiquier/Tour.java @@ -10,18 +10,21 @@ public class Tour extends Piece { public boolean deplacable(Echiquier e,Piece p) { System.out.println("test"); - System.out.println(p.getPosition().getX()); + System.out.println(this.getPosition().getX()); - System.out.println(p.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 { - 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 { - 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."); 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 { - 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."); 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 { - System.out.println("test2"); 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."); 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 { - 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; } @@ -78,80 +80,4 @@ public class Tour extends Piece { 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; - } -} - - * */ - }