usertouch method works but there is a lot to add (not take if same
color, impose the way of moving for each piece and set other same color pieces as obstacles.)
This commit is contained in:
parent
56e20c9526
commit
a81ad7881f
|
|
@ -7,11 +7,14 @@ public class Board {
|
|||
private int cNum; // nb de colonnes du damier
|
||||
private int lNum; // nb de ligne du damier
|
||||
private Piece[][] cells;
|
||||
private Piece selectedCell;
|
||||
|
||||
|
||||
public Board(int colNum, int lineNum) {
|
||||
cNum=colNum;
|
||||
lNum=lineNum;
|
||||
cells = new Piece[cNum][lNum]; // creation du tableau de pieces
|
||||
selectedCell=null;
|
||||
}
|
||||
|
||||
public int getWidth() {
|
||||
|
|
@ -95,8 +98,8 @@ public class Board {
|
|||
|
||||
public void cleanBoard() {
|
||||
|
||||
for (int y = 1; y < 7; y++) {
|
||||
for (int x = 1; x < 7; x++) {
|
||||
for (int y = 0; y < 8; y++) {
|
||||
for (int x = 0; x < 8; x++) {
|
||||
cells[x][y] = null;
|
||||
}
|
||||
}
|
||||
|
|
@ -123,7 +126,65 @@ public class Board {
|
|||
|
||||
|
||||
public void userTouch(int x, int y) {
|
||||
//TODO
|
||||
// on teste si une cellule est deja selectionne
|
||||
if(this.selectedCell !=null) {
|
||||
System.out.println(" cellule deja selectionne : " + this.selectedCell.getName());
|
||||
//la nouvelle case touchee est vide ?
|
||||
if(cells[x][y] ==null) {
|
||||
// je deplace la pièce selectionnee
|
||||
//TODO VERIFIER SI LA COULEUR DE LA PIECE EXISTANTE EST DIFFERENTE DE CELLE DU JOUEUR
|
||||
//TODO A REMPLACER PAR UNE FONCTION MOVE
|
||||
cells[x][y] = new Piece(
|
||||
this.selectedCell.getType(),
|
||||
this.selectedCell.isWhite(),
|
||||
x,
|
||||
y
|
||||
|
||||
);
|
||||
// je supprime la pièce selectionne pour liberer la case
|
||||
cells[this.selectedCell.getX()][this.selectedCell.getY()] = null;
|
||||
//je deselectionne la pièce
|
||||
this.selectedCell=null;
|
||||
|
||||
} else {
|
||||
// je teste si la nouvelle case cochée est la meme que celle déjà coche
|
||||
if(this.cells[x][y].getX()==this.selectedCell.getX() && this.cells[x][y].getY() == this.selectedCell.getY()) {
|
||||
System.out.println("il a clique sur la meme cellule, je deselectionne" );
|
||||
this.selectedCell =null;
|
||||
} else {
|
||||
// je deplace la deplace pièce et remplace la pièce existante
|
||||
//TODO A REMPLACER PAR UNE FONCTION MOVE
|
||||
cells[x][y] = new Piece(
|
||||
this.selectedCell.getType(),
|
||||
this.selectedCell.isWhite(),
|
||||
x,
|
||||
y
|
||||
|
||||
);
|
||||
// je supprime la pièce selectionne pour liberer la case
|
||||
cells[this.selectedCell.getX()][this.selectedCell.getY()] = null;
|
||||
//je deselectionne la pièce
|
||||
this.selectedCell=null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
// aucune cellule deja selectionnée,
|
||||
System.out.println("----- aucune cellule selectionnee" );
|
||||
|
||||
//a-t-il selectionné une pièce ?
|
||||
// TODO il faut verifier que c'est une pièce du bon joueur (bonne couleur)
|
||||
if(cells[x][y] !=null){
|
||||
//il a selectionné une pièce, elle devient is selected
|
||||
this.selectedCell = this.cells[x][y];
|
||||
System.out.println("nouvelle cellule selectionne" + cells[x][y].getName());
|
||||
|
||||
} else {
|
||||
//rien il a selectionne vide
|
||||
System.out.println("il a clique sur cellule vide");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue