Tour fonctionnelle + quelques modifications

Dans verifFInale il fallait stocker les coors avant de deplacer la piece
This commit is contained in:
Manon 2019-05-09 19:58:45 +02:00
parent 3f3aac3070
commit 968cbe0f42
5 changed files with 61 additions and 53 deletions

View File

@ -15,6 +15,7 @@ public class Echiquier {
{"A2","B2","C2","D2","E2","F2","G2","H2"}, {"A2","B2","C2","D2","E2","F2","G2","H2"},
{"A1","B1","C1","D1","E1","F1","G1","H1"} {"A1","B1","C1","D1","E1","F1","G1","H1"}
}; };
private Pion pionB1 = new Pion("Blanc","PB",new Position(1,2)); private Pion pionB1 = new Pion("Blanc","PB",new Position(1,2));
private Pion pionB2 = new Pion("Blanc","PB",new Position(2,2)); private Pion pionB2 = new Pion("Blanc","PB",new Position(2,2));
private Pion pionB3 = new Pion("Blanc","PB",new Position(3,2)); private Pion pionB3 = new Pion("Blanc","PB",new Position(3,2));
@ -79,19 +80,13 @@ public class Echiquier {
} }
public void setEchiquier(Piece[][] echiquier) {
this.echiquier = echiquier;
}
public String[][] getCodes() { public String[][] getCodes() {
return codes; return codes;
} }
public String toString() public String toString() // FONCTION AFFICHAGE
{ {
char alphabet[]= {'A','B','C','D','E','F','G','H'}; char alphabet[]= {'A','B','C','D','E','F','G','H'};
String echec = ""; String echec = "";
@ -101,7 +96,7 @@ public class Echiquier {
echec+= compteur + " "; echec+= compteur + " ";
for (int j = 0; j < 8;j++) for (int j = 0; j < 8;j++)
{ {
echec +=echiquier[i][j].getLettre(); echec +=echiquier[i][j].getNom();
echec += " "; echec += " ";
} }
echec += "\n"; echec += "\n";
@ -114,21 +109,23 @@ public class Echiquier {
return echec; return echec;
} }
public boolean VerifFinale(Joueur J, String A, String B) public boolean VerifFinale(Joueur J, String A, String B) // FONCTION TRADUCTION, VERIF + DEPLACEMENTS SI POSSIBLE
{ {
int i = -1; int i = -1;
int j = -1; int j = -1;
int k; int k;
int l; int l;
int stockX;
int stockY;
do { /// Tests pour la premiere piece do { /// TEST 1ERE COORS
i++; i++;
j = -1; j = -1;
do { do {
j++; j++;
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 (getCodes()[i][j].equals(A)) //Cherche dans la matrice code si on trouve une string = celle donnée par le joueur
{ {
if (this.getEchiquier()[i][j].getClass().getName().equals("Piece")) // Verifie si la case choisie n'est pas vide if (this.getEchiquier()[i][j].getClass().getName().equals("Piece")) // Verifie si la case choisie n'est pas vide
{ {
@ -148,7 +145,7 @@ public class Echiquier {
for (k = 0; k < codes.length;k++) // Tests pour la 2 eme piece/case choisie for (k = 0; k < codes.length;k++) /// TEST 2EME COORS
{ {
for (l = 0; l < codes.length;l++) for (l = 0; l < codes.length;l++)
{ {
@ -164,7 +161,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.out.println("D<EFBFBD>placement impossible. Recommencez."); System.out.println("Déplacement impossible. Recommencez.");
return false; return false;
} }
@ -173,24 +170,28 @@ 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();
stockY = this.getEchiquier()[k][l].getPosition().getY();
this.getEchiquier()[k][l] = this.getEchiquier()[i][j]; this.getEchiquier()[k][l] = this.getEchiquier()[i][j];
this.getEchiquier()[i][j] = new Piece(new Position(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()));
return true; return true;
} }
} }
} }
} }
System.out.println("Un de vos codes est faux. Recommencez."); System.out.println("Un de vos codes est faux. Recommencez."); // SI COORS INEXISTANTE (EX : A)
return false; return false;
} }
public boolean estVide(Position position) { public boolean estVide(Position position) {
int x = position.getX(); int x = position.getX();
int y = position.getY(); int y = position.getY();
if(this.echiquier[x][y].getLettre()=="..") {
return true; if(this.echiquier[x][y].getNom()=="..") {
} return true;
}
return false; return false;
} }
} }

View File

@ -4,7 +4,8 @@ public class Piece {
private String couleur; private String couleur;
private String lettre = ".."; //private String lettre = "..";
private String nom = "..";
private boolean enVie = true; private boolean enVie = true;
private Position position; private Position position;
private Position ini; private Position ini;
@ -27,7 +28,8 @@ 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.lettre = l;
this.nom = l;
//this.emplacementIni = emp; //this.emplacementIni = emp;
this.position = pos; this.position = pos;
this.ini=pos; this.ini=pos;
@ -64,14 +66,20 @@ public class Piece {
// gets & sets // gets & sets
/*
public String getLettre() { public String getLettre() {
return lettre; return lettre;
} }
public void setLettre(String lettre) { public void setLettre(String lettre) {
this.lettre = lettre; this.lettre = lettre;
} }
*/
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
//////////// ////////////
/* /*
public String getEmplacement() { public String getEmplacement() {

View File

@ -14,22 +14,21 @@ public class Pion extends Piece {
{ {
if (p.getPosition().getX()-1 == this.getPosition().getX() || p.getPosition().getX()+1 == this.getPosition().getX()) //vERIFICATION SI LA PERSONNE SOUHAITE MANGER LA PIECE 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())) if ((this.getCouleur().equals("Blanc") && p.getPosition().getY()-1 == this.getPosition().getY()) || (this.getCouleur() == "noir" && p.getPosition().getY()+1 == this.getPosition().getY()))
{ {
//System.out.println("test5"); if (p.getNom().equals(".."))
if (p.getLettre().equals(".."))
{ {
System.out.println("Vous tentez de manger une case vide."); System.out.println("Vous tentez de manger une case vide.");
return false; return false;
} }
System.out.println("Vous avez mangé une pièce !"); System.out.println("Vous avez mangé une pièce !");
return true; return true;
} }
} }
// AVancer tout droit // Avancer tout droit
else if (p.getPosition().getX() == this.getPosition().getX()) else if (p.getPosition().getX() == this.getPosition().getX())
{ {
@ -40,11 +39,9 @@ public class Pion extends Piece {
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()))) 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");
return true; return true;
} }
} }
System.out.println("test1");
return false; return false;
} }

View File

@ -9,15 +9,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(p.getPosition().getX());
System.out.println(this.getPosition().getX());
System.out.println(p.getPosition().getY());
System.out.println(this.getPosition().getY());
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");
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();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()[this.getPosition().getX()][i].getLettre().equals(".."))) // SI case non vide if (!(e.getEchiquier()[this.getPosition().getX()][i].getNom().equals(".."))) // SI case non vide
{ {
System.out.println("Le chemin n'est pas libre.");
return false; return false;
} }
} }
@ -26,10 +32,11 @@ 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().getX()-1; i > p.getPosition().getX();i--) for (int i = this.getPosition().getY()-1; i > p.getPosition().getY()+1;i--)
{ {
if (!(e.getEchiquier()[this.getPosition().getY()][i].getLettre().equals(".."))) // SI case non vide if (!(e.getEchiquier()[this.getPosition().getX()][i].getNom().equals(".."))) // SI case non vide
{ {
System.out.println("Le chemin n'est pas libre.");
return false; return false;
} }
} }
@ -40,13 +47,14 @@ 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();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()].getLettre().equals(".."))) // SI case non vide if (!(e.getEchiquier()[i][this.getPosition().getY()].getNom().equals(".."))) // SI case non vide
{ {
System.out.println("test"); System.out.println("Le chemin n'est pas libre.");
return false; return false;
} }
} }
@ -55,9 +63,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();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()].getLettre().equals(".."))) // SI case non vide if (!(e.getEchiquier()[i][this.getPosition().getY()].getNom().equals(".."))) // SI case non vide
{ {
return false; return false;
} }

View File

@ -1,12 +1,12 @@
package visuel; package visuel;
// sert pour recup input clavier // sert pour recup input clavier
import java.util.Scanner; import java.util.Scanner; //a voir si on fait une classe 'leScan' pour gerer le scan du clavier plus simplement
import joueurs.Joueur; import joueurs.Joueur;
import piecesEchiquier.Echiquier; import piecesEchiquier.Echiquier;
public class Main { public class main {
public static void main (String[] args) { public static void main (String[] args) {
@ -42,33 +42,27 @@ public class Main {
do { do {
System.out.println("Quelle piece voulez vous deplacer ? Donnez le code correspondant de la piece a  deplacer(ex : A1).\n");
System.out.println("Quelle pi<70>ce voulez vous d<>placer ? Donnez le code correspondant <20> la pi<70>ce <20> d<>placer(ex : A1).\n");
A = sc.nextLine(); A = sc.nextLine();
System.out.println("A quel endroit la poser ? Donnez le code correspondant <EFBFBD> l'endroit o<> poser la pi<70>ce.\n"); System.out.println("A quel endroit la poser ? Donnez le code correspondant a l'endroit ou poser la piece.\n");
B = sc.nextLine(); B = sc.nextLine();
}while (e.VerifFinale(j1, A,B) != true); }while (e.VerifFinale(j1, A,B) != true); // Tant que le mouvement n'est pas faisable on demande 2 coordonnées
//e.deplacer(A,B);
//REAFFICHAGE ECHIQUIER //REAFFICHAGE ECHIQUIER
System.out.println(e.toString()); System.out.println(e.toString());
// JOUEUR2 // JOUEUR2
System.out.println("Tour de"+j2.getNom()+"\n"); System.out.println("Tour de "+j2.getNom()+"\n");
do { do {
System.out.println("Quelle pi<70>ce voulez vous d<>placer ? Donnez le code correspondant <20> la pi<70>ce <20> d<>placer(ex : A1).\n"); System.out.println("Quelle piece voulez vous deplacer ? Donnez le code correspondant de la piece a  deplacer(ex : A1).\n");
//entrer coordonn<EFBFBD>es piece a bouger APRES ON PASSERA PAR DIRECT COMBINAISON LETTRE-CHIFFRE
A = sc.nextLine(); A = sc.nextLine();
System.out.println("A quel endroit la poser ? Donnez le code correspondant <20> l'endroit o<> poser la pi<70>ce.\n"); System.out.println("A quel endroit la poser ? Donnez le code correspondant de l'endroit la poser la piece.\n");
//entrer coordonn<EFBFBD>es endroit vis<EFBFBD> APRES ON PASSERA PAR DIRECT COMBINAISON LETTRE-CHIFFRE
B = sc.nextLine(); B = sc.nextLine();
}while (e.VerifFinale(j2, A,B) != true); }while (e.VerifFinale(j2, A,B) != true); // Tant que le mouvement n'est pas faisable on demande 2 coordonnées
//jeu = false; //jeu = false;