probleme avec board
This commit is contained in:
parent
ad8ddd6418
commit
f1827f4058
|
|
@ -52,22 +52,22 @@ public class Board {
|
|||
setPiece(false, PieceType.Pawn, i, 1); // Noirs
|
||||
}
|
||||
|
||||
// Pi<EFBFBD>ces noires
|
||||
// Pièces noires
|
||||
setPiece(false, PieceType.Rook, 0, 0);
|
||||
setPiece(false, PieceType.Knight, 1, 0);
|
||||
setPiece(false, PieceType.Bishop, 2, 0);
|
||||
setPiece(false, PieceType.Queen, 4, 0);
|
||||
setPiece(false, PieceType.King, 3, 0);
|
||||
setPiece(false, PieceType.Queen, 3, 0);
|
||||
setPiece(false, PieceType.King, 4, 0);
|
||||
setPiece(false, PieceType.Bishop, 5, 0);
|
||||
setPiece(false, PieceType.Knight, 6, 0);
|
||||
setPiece(false, PieceType.Rook, 7, 0);
|
||||
|
||||
// Pi<EFBFBD>ces blanches
|
||||
// Pièces blanches
|
||||
setPiece(true, PieceType.Rook, 0, 7);
|
||||
setPiece(true, PieceType.Knight, 1, 7);
|
||||
setPiece(true, PieceType.Bishop, 2, 7);
|
||||
setPiece(true, PieceType.Queen, 4, 7);
|
||||
setPiece(true, PieceType.King, 3, 7);
|
||||
setPiece(true, PieceType.Queen, 3, 7);
|
||||
setPiece(true, PieceType.King, 4, 7);
|
||||
setPiece(true, PieceType.Bishop, 5, 7);
|
||||
setPiece(true, PieceType.Knight, 6, 7);
|
||||
setPiece(true, PieceType.Rook, 7, 7);
|
||||
|
|
@ -96,28 +96,28 @@ public class Board {
|
|||
public void userTouch(int x, int y) {
|
||||
Piece clickedPiece = getPieceAt(x, y);
|
||||
|
||||
// Aucune s<EFBFBD>lection active
|
||||
// Aucune sélection active
|
||||
if (selectedX == -1 && selectedY == -1) {
|
||||
if (clickedPiece != null && clickedPiece.isWhite() == isTurnWhite()) {
|
||||
// S<EFBFBD>lection de la pi<EFBFBD>ce
|
||||
// Sélection de la pièce
|
||||
selectedX = x;
|
||||
selectedY = y;
|
||||
|
||||
// Calcul des d<EFBFBD>placements valides
|
||||
// Calcul des déplacements valides
|
||||
highlightedSquares = Move.getPossibleMoves(this, clickedPiece);
|
||||
}
|
||||
}
|
||||
|
||||
// Une pi<EFBFBD>ce est d<EFBFBD>j<EFBFBD> s<EFBFBD>lectionn<EFBFBD>e
|
||||
// Une pièce est déjà sélectionnée
|
||||
else {
|
||||
// Si on clique <EFBFBD> nouveau sur la case s<EFBFBD>lectionn<EFBFBD>e on annule
|
||||
// Si on clique à nouveau sur la case sélectionnée on annule
|
||||
if (x == selectedX && y == selectedY) {
|
||||
selectedX = -1;
|
||||
selectedY = -1;
|
||||
highlightedSquares.clear();
|
||||
}
|
||||
|
||||
// Sinon on tente de bouger la pi<EFBFBD>ce s<EFBFBD>lectionn<EFBFBD>e vers (x, y)
|
||||
// Sinon on tente de bouger la pièce sélectionnée vers (x, y)
|
||||
else {
|
||||
Piece selectedPiece = getPieceAt(selectedX, selectedY);
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ public class Board {
|
|||
Move move = new Move(selectedPiece, selectedX, selectedY, x, y, destPiece);
|
||||
moveHistory.add(move);
|
||||
|
||||
// Appliquer le d<EFBFBD>placement
|
||||
// Appliquer le déplacement
|
||||
pieces.remove(selectedPiece);
|
||||
if (destPiece != null) pieces.remove(destPiece);
|
||||
pieces.add(new Piece(selectedPiece.getType(), selectedPiece.isWhite(), x, y));
|
||||
|
|
@ -146,7 +146,7 @@ public class Board {
|
|||
turnNumber++;
|
||||
}
|
||||
|
||||
// Dans tous les cas, on d<EFBFBD>s<EFBFBD>lectionne
|
||||
// Dans tous les cas, on désélectionne
|
||||
selectedX = -1;
|
||||
selectedY = -1;
|
||||
highlightedSquares.clear();
|
||||
|
|
@ -180,7 +180,7 @@ public class Board {
|
|||
lines[y] = row.toString();
|
||||
}
|
||||
|
||||
// Derni<EFBFBD>re ligne : couleur du joueur actif
|
||||
// Dernière ligne : couleur du joueur actif
|
||||
lines[height] = isTurnWhite() ? "W" : "B";
|
||||
|
||||
return lines;
|
||||
|
|
@ -227,20 +227,20 @@ public class Board {
|
|||
|
||||
Move last = moveHistory.remove(moveHistory.size() - 1);
|
||||
|
||||
// Supprimer la pi<EFBFBD>ce d<EFBFBD>plac<EFBFBD>e
|
||||
// Supprimer la pièce déplacée
|
||||
Piece current = getPieceAt(last.getToX(), last.getToY());
|
||||
if (current != null) {
|
||||
pieces.remove(current);
|
||||
}
|
||||
|
||||
// Restaurer la pi<EFBFBD>ce d<EFBFBD>plac<EFBFBD>e
|
||||
// Restaurer la pièce déplacée
|
||||
pieces.add(new Piece(
|
||||
last.getMovedPiece().getType(),
|
||||
last.getMovedPiece().isWhite(),
|
||||
last.getFromX(), last.getFromY()
|
||||
));
|
||||
|
||||
// R<EFBFBD>ins<EFBFBD>rer la pi<EFBFBD>ce captur<EFBFBD>e si besoin
|
||||
// Réinsérer la pièce capturée si besoin
|
||||
if (last.getCapturedPiece() != null) {
|
||||
Piece c = last.getCapturedPiece();
|
||||
pieces.add(new Piece(c.getType(), c.isWhite(), c.getX(), c.getY()));
|
||||
|
|
@ -257,7 +257,6 @@ public class Board {
|
|||
public void playMove(Move move) {
|
||||
if (move == null) return;
|
||||
|
||||
<<<<<<< HEAD
|
||||
Piece pieceToMove = getPieceAt(move.getFromX(), move.getFromY());
|
||||
if (pieceToMove == null) return;
|
||||
|
||||
|
|
@ -289,29 +288,9 @@ public class Board {
|
|||
selectedX = -1;
|
||||
selectedY = -1;
|
||||
highlightedSquares.clear();
|
||||
=======
|
||||
// Remove the moved piece from its old position
|
||||
Piece from = move.getMovedPiece();
|
||||
pieces.removeIf(p -> p.getX() == from.getX() && p.getY() == from.getY());
|
||||
|
||||
// Remove captured piece if any
|
||||
if (move.getCapturedPiece() != null) {
|
||||
Piece captured = move.getCapturedPiece();
|
||||
pieces.removeIf(p -> p.getX() == captured.getX() && p.getY() == captured.getY());
|
||||
}
|
||||
|
||||
// Add moved piece in new position
|
||||
pieces.add(new Piece(from.getType(), from.isWhite(), move.getToX(), move.getToY()));
|
||||
|
||||
moveHistory.add(move);
|
||||
turnNumber++;
|
||||
>>>>>>> branch 'master' of https://gitarero.ecam.fr/g.vancompernolle/OOP_2B3_Project.git
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
|
||||
=======
|
||||
>>>>>>> branch 'master' of https://gitarero.ecam.fr/g.vancompernolle/OOP_2B3_Project.git
|
||||
public Piece getPieceAt(int x, int y) {
|
||||
for (Piece p : pieces) {
|
||||
if (p.getX() == x && p.getY() == y) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue