Tour fonctionnelle + quelques modifications
Dans verifFInale il fallait stocker les coors avant de deplacer la piece
This commit is contained in:
parent
3f3aac3070
commit
968cbe0f42
@ -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,22 +170,26 @@ 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()=="..") {
|
|
||||||
|
if(this.echiquier[x][y].getNom()=="..") {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -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() {
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user