From cb3f17343e5c3fe1ca51401979c70b22d627d669 Mon Sep 17 00:00:00 2001 From: Anthony Date: Thu, 9 May 2019 10:54:41 +0200 Subject: [PATCH] Modificationfonction deplacable tour (+arrangements pour que ce soit fonctionnel) --- src/piecesEchiquier/Echiquier.java | 33 ++++++++++----- src/piecesEchiquier/Piece.java | 2 +- src/piecesEchiquier/Pion.java | 18 ++++----- src/piecesEchiquier/Tour.java | 65 ++++++++++++++++++++++++++++-- 4 files changed, 94 insertions(+), 24 deletions(-) diff --git a/src/piecesEchiquier/Echiquier.java b/src/piecesEchiquier/Echiquier.java index 7722022..2cbd987 100755 --- a/src/piecesEchiquier/Echiquier.java +++ b/src/piecesEchiquier/Echiquier.java @@ -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; @@ -141,21 +143,34 @@ 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�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]; diff --git a/src/piecesEchiquier/Piece.java b/src/piecesEchiquier/Piece.java index 5c214a0..65593e3 100755 --- a/src/piecesEchiquier/Piece.java +++ b/src/piecesEchiquier/Piece.java @@ -103,7 +103,7 @@ public class Piece { this.ini = ini; } - public boolean deplacable(Piece p) + public boolean deplacable(Echiquier e,Piece p) { return true; } diff --git a/src/piecesEchiquier/Pion.java b/src/piecesEchiquier/Pion.java index 6a271ce..1d27e41 100755 --- a/src/piecesEchiquier/Pion.java +++ b/src/piecesEchiquier/Pion.java @@ -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())) @@ -25,23 +25,19 @@ 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"); diff --git a/src/piecesEchiquier/Tour.java b/src/piecesEchiquier/Tour.java index 5b49f6c..6b0c4d6 100755 --- a/src/piecesEchiquier/Tour.java +++ b/src/piecesEchiquier/Tour.java @@ -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; } }