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
|
setPiece(false, PieceType.Pawn, i, 1); // Noirs
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pi<EFBFBD>ces noires
|
// Pièces noires
|
||||||
setPiece(false, PieceType.Rook, 0, 0);
|
setPiece(false, PieceType.Rook, 0, 0);
|
||||||
setPiece(false, PieceType.Knight, 1, 0);
|
setPiece(false, PieceType.Knight, 1, 0);
|
||||||
setPiece(false, PieceType.Bishop, 2, 0);
|
setPiece(false, PieceType.Bishop, 2, 0);
|
||||||
setPiece(false, PieceType.Queen, 4, 0);
|
setPiece(false, PieceType.Queen, 3, 0);
|
||||||
setPiece(false, PieceType.King, 3, 0);
|
setPiece(false, PieceType.King, 4, 0);
|
||||||
setPiece(false, PieceType.Bishop, 5, 0);
|
setPiece(false, PieceType.Bishop, 5, 0);
|
||||||
setPiece(false, PieceType.Knight, 6, 0);
|
setPiece(false, PieceType.Knight, 6, 0);
|
||||||
setPiece(false, PieceType.Rook, 7, 0);
|
setPiece(false, PieceType.Rook, 7, 0);
|
||||||
|
|
||||||
// Pi<EFBFBD>ces blanches
|
// Pièces blanches
|
||||||
setPiece(true, PieceType.Rook, 0, 7);
|
setPiece(true, PieceType.Rook, 0, 7);
|
||||||
setPiece(true, PieceType.Knight, 1, 7);
|
setPiece(true, PieceType.Knight, 1, 7);
|
||||||
setPiece(true, PieceType.Bishop, 2, 7);
|
setPiece(true, PieceType.Bishop, 2, 7);
|
||||||
setPiece(true, PieceType.Queen, 4, 7);
|
setPiece(true, PieceType.Queen, 3, 7);
|
||||||
setPiece(true, PieceType.King, 3, 7);
|
setPiece(true, PieceType.King, 4, 7);
|
||||||
setPiece(true, PieceType.Bishop, 5, 7);
|
setPiece(true, PieceType.Bishop, 5, 7);
|
||||||
setPiece(true, PieceType.Knight, 6, 7);
|
setPiece(true, PieceType.Knight, 6, 7);
|
||||||
setPiece(true, PieceType.Rook, 7, 7);
|
setPiece(true, PieceType.Rook, 7, 7);
|
||||||
|
|
@ -96,28 +96,28 @@ public class Board {
|
||||||
public void userTouch(int x, int y) {
|
public void userTouch(int x, int y) {
|
||||||
Piece clickedPiece = getPieceAt(x, y);
|
Piece clickedPiece = getPieceAt(x, y);
|
||||||
|
|
||||||
// Aucune s<EFBFBD>lection active
|
// Aucune sélection active
|
||||||
if (selectedX == -1 && selectedY == -1) {
|
if (selectedX == -1 && selectedY == -1) {
|
||||||
if (clickedPiece != null && clickedPiece.isWhite() == isTurnWhite()) {
|
if (clickedPiece != null && clickedPiece.isWhite() == isTurnWhite()) {
|
||||||
// S<EFBFBD>lection de la pi<EFBFBD>ce
|
// Sélection de la pièce
|
||||||
selectedX = x;
|
selectedX = x;
|
||||||
selectedY = y;
|
selectedY = y;
|
||||||
|
|
||||||
// Calcul des d<EFBFBD>placements valides
|
// Calcul des déplacements valides
|
||||||
highlightedSquares = Move.getPossibleMoves(this, clickedPiece);
|
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 {
|
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) {
|
if (x == selectedX && y == selectedY) {
|
||||||
selectedX = -1;
|
selectedX = -1;
|
||||||
selectedY = -1;
|
selectedY = -1;
|
||||||
highlightedSquares.clear();
|
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 {
|
else {
|
||||||
Piece selectedPiece = getPieceAt(selectedX, selectedY);
|
Piece selectedPiece = getPieceAt(selectedX, selectedY);
|
||||||
|
|
||||||
|
|
@ -138,7 +138,7 @@ public class Board {
|
||||||
Move move = new Move(selectedPiece, selectedX, selectedY, x, y, destPiece);
|
Move move = new Move(selectedPiece, selectedX, selectedY, x, y, destPiece);
|
||||||
moveHistory.add(move);
|
moveHistory.add(move);
|
||||||
|
|
||||||
// Appliquer le d<EFBFBD>placement
|
// Appliquer le déplacement
|
||||||
pieces.remove(selectedPiece);
|
pieces.remove(selectedPiece);
|
||||||
if (destPiece != null) pieces.remove(destPiece);
|
if (destPiece != null) pieces.remove(destPiece);
|
||||||
pieces.add(new Piece(selectedPiece.getType(), selectedPiece.isWhite(), x, y));
|
pieces.add(new Piece(selectedPiece.getType(), selectedPiece.isWhite(), x, y));
|
||||||
|
|
@ -146,7 +146,7 @@ public class Board {
|
||||||
turnNumber++;
|
turnNumber++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dans tous les cas, on d<EFBFBD>s<EFBFBD>lectionne
|
// Dans tous les cas, on désélectionne
|
||||||
selectedX = -1;
|
selectedX = -1;
|
||||||
selectedY = -1;
|
selectedY = -1;
|
||||||
highlightedSquares.clear();
|
highlightedSquares.clear();
|
||||||
|
|
@ -180,7 +180,7 @@ public class Board {
|
||||||
lines[y] = row.toString();
|
lines[y] = row.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Derni<EFBFBD>re ligne : couleur du joueur actif
|
// Dernière ligne : couleur du joueur actif
|
||||||
lines[height] = isTurnWhite() ? "W" : "B";
|
lines[height] = isTurnWhite() ? "W" : "B";
|
||||||
|
|
||||||
return lines;
|
return lines;
|
||||||
|
|
@ -227,20 +227,20 @@ public class Board {
|
||||||
|
|
||||||
Move last = moveHistory.remove(moveHistory.size() - 1);
|
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());
|
Piece current = getPieceAt(last.getToX(), last.getToY());
|
||||||
if (current != null) {
|
if (current != null) {
|
||||||
pieces.remove(current);
|
pieces.remove(current);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Restaurer la pi<EFBFBD>ce d<EFBFBD>plac<EFBFBD>e
|
// Restaurer la pièce déplacée
|
||||||
pieces.add(new Piece(
|
pieces.add(new Piece(
|
||||||
last.getMovedPiece().getType(),
|
last.getMovedPiece().getType(),
|
||||||
last.getMovedPiece().isWhite(),
|
last.getMovedPiece().isWhite(),
|
||||||
last.getFromX(), last.getFromY()
|
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) {
|
if (last.getCapturedPiece() != null) {
|
||||||
Piece c = last.getCapturedPiece();
|
Piece c = last.getCapturedPiece();
|
||||||
pieces.add(new Piece(c.getType(), c.isWhite(), c.getX(), c.getY()));
|
pieces.add(new Piece(c.getType(), c.isWhite(), c.getX(), c.getY()));
|
||||||
|
|
@ -257,7 +257,6 @@ public class Board {
|
||||||
public void playMove(Move move) {
|
public void playMove(Move move) {
|
||||||
if (move == null) return;
|
if (move == null) return;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
Piece pieceToMove = getPieceAt(move.getFromX(), move.getFromY());
|
Piece pieceToMove = getPieceAt(move.getFromX(), move.getFromY());
|
||||||
if (pieceToMove == null) return;
|
if (pieceToMove == null) return;
|
||||||
|
|
||||||
|
|
@ -289,29 +288,9 @@ public class Board {
|
||||||
selectedX = -1;
|
selectedX = -1;
|
||||||
selectedY = -1;
|
selectedY = -1;
|
||||||
highlightedSquares.clear();
|
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) {
|
public Piece getPieceAt(int x, int y) {
|
||||||
for (Piece p : pieces) {
|
for (Piece p : pieces) {
|
||||||
if (p.getX() == x && p.getY() == y) {
|
if (p.getX() == x && p.getY() == y) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue