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"},
{"A1","B1","C1","D1","E1","F1","G1","H1"}
};
private Pion pionB1 = new Pion("Blanc","PB",new Position(1,2));
private Pion pionB2 = new Pion("Blanc","PB",new Position(2,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() {
return codes;
}
public String toString()
public String toString() // FONCTION AFFICHAGE
{
char alphabet[]= {'A','B','C','D','E','F','G','H'};
String echec = "";
@ -101,7 +96,7 @@ public class Echiquier {
echec+= compteur + " ";
for (int j = 0; j < 8;j++)
{
echec +=echiquier[i][j].getLettre();
echec +=echiquier[i][j].getNom();
echec += " ";
}
echec += "\n";
@ -114,21 +109,23 @@ public class Echiquier {
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 j = -1;
int k;
int l;
int stockX;
int stockY;
do { /// Tests pour la premiere piece
do { /// TEST 1ERE COORS
i++;
j = -1;
do {
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
{
@ -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++)
{
@ -164,7 +161,7 @@ public class Echiquier {
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;
}
@ -173,24 +170,28 @@ 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();
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;
}
}
}
}
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;
}
public boolean estVide(Position position) {
int x = position.getX();
int y = position.getY();
if(this.echiquier[x][y].getLettre()=="..") {
return true;
}
if(this.echiquier[x][y].getNom()=="..") {
return true;
}
return false;
}
}

View File

@ -4,7 +4,8 @@ public class Piece {
private String couleur;
private String lettre = "..";
//private String lettre = "..";
private String nom = "..";
private boolean enVie = true;
private Position position;
private Position ini;
@ -27,7 +28,8 @@ public class Piece {
public Piece(String couleur,String l, Position pos)
{
this.couleur = couleur;
this.lettre = l;
//this.lettre = l;
this.nom = l;
//this.emplacementIni = emp;
this.position = pos;
this.ini=pos;
@ -64,14 +66,20 @@ public class Piece {
// gets & sets
/*
public String getLettre() {
return lettre;
}
public void setLettre(String lettre) {
this.lettre = lettre;
}
*/
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
////////////
/*
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
{
//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()))
{
//System.out.println("test5");
if (p.getLettre().equals(".."))
if (p.getNom().equals(".."))
{
System.out.println("Vous tentez de manger une case vide.");
return false;
}
System.out.println("Vous avez mangé une pièce !");
return true;
}
}
// AVancer tout droit
// Avancer tout droit
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())))
{
System.out.println("test2");
return true;
}
}
System.out.println("test1");
return false;
}

View File

@ -9,15 +9,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());
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
{
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;
}
}
@ -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
{
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;
}
}
@ -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
{
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();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;
}
}
@ -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
{
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;
}

View File

@ -1,12 +1,12 @@
package visuel;
// 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 piecesEchiquier.Echiquier;
public class Main {
public class main {
public static void main (String[] args) {
@ -42,33 +42,27 @@ public class Main {
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");
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();
}while (e.VerifFinale(j1, A,B) != true);
//e.deplacer(A,B);
}while (e.VerifFinale(j1, A,B) != true); // Tant que le mouvement n'est pas faisable on demande 2 coordonnées
//REAFFICHAGE ECHIQUIER
System.out.println(e.toString());
// JOUEUR2
System.out.println("Tour de"+j2.getNom()+"\n");
System.out.println("Tour de "+j2.getNom()+"\n");
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");
//entrer coordonn<EFBFBD>es piece a bouger APRES ON PASSERA PAR DIRECT COMBINAISON LETTRE-CHIFFRE
System.out.println("Quelle piece voulez vous deplacer ? Donnez le code correspondant de la piece a  deplacer(ex : A1).\n");
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");
//entrer coordonn<EFBFBD>es endroit vis<EFBFBD> APRES ON PASSERA PAR DIRECT COMBINAISON LETTRE-CHIFFRE
System.out.println("A quel endroit la poser ? Donnez le code correspondant de l'endroit la poser la piece.\n");
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;