From a81ad7881f362607fca7235f24a8cd5e40cfe40a Mon Sep 17 00:00:00 2001 From: Alexandre ALTARIBA Date: Thu, 24 Apr 2025 21:02:22 +0200 Subject: [PATCH] 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.) --- src/backend/Board.java | 67 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/src/backend/Board.java b/src/backend/Board.java index 714a29f..2b6bd11 100644 --- a/src/backend/Board.java +++ b/src/backend/Board.java @@ -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"); + } + } }