added turn tracking variables, updated constructor, getTurnNumber,
isTurnWhite, userTouch updated
This commit is contained in:
parent
2ec7d1da61
commit
95aa5f0c34
|
|
@ -13,11 +13,15 @@ public class Board {
|
||||||
private ArrayList<Piece> pieces;
|
private ArrayList<Piece> pieces;
|
||||||
private int selectedX = -1; // Tracks selected column (-1 = no selection)
|
private int selectedX = -1; // Tracks selected column (-1 = no selection)
|
||||||
private int selectedY = -1; // Tracks selected row (-1 = no selection)
|
private int selectedY = -1; // Tracks selected row (-1 = no selection)
|
||||||
|
private int turnNumber = 0; // Starts at 0 (White's turn)
|
||||||
|
private boolean isWhiteTurn = true; // Track current player's turn
|
||||||
|
|
||||||
public Board(int colNum, int lineNum) {
|
public Board(int colNum, int lineNum) {
|
||||||
this.colNum = colNum;
|
this.colNum = colNum;
|
||||||
this.lineNum = lineNum;
|
this.lineNum = lineNum;
|
||||||
this.pieces = new ArrayList<>();
|
this.pieces = new ArrayList<>();
|
||||||
|
this.turnNumber = 0; // Initialize turn number
|
||||||
|
this.isWhiteTurn = true; // White starts first
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -32,13 +36,11 @@ public class Board {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getTurnNumber() {
|
public int getTurnNumber() {
|
||||||
//TODO
|
return turnNumber;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isTurnWhite() {
|
public boolean isTurnWhite() {
|
||||||
//TODO
|
return isWhiteTurn;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPiece(boolean isWhite, PieceType type, int x, int y) {
|
public void setPiece(boolean isWhite, PieceType type, int x, int y) {
|
||||||
|
|
@ -143,37 +145,47 @@ public class Board {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void userTouch(int x, int y) {
|
public void userTouch(int x, int y) {
|
||||||
if (selectedX == -1) {
|
if (selectedX == -1) { // No current selection
|
||||||
// No current selection: Check if there's a piece at (x, y)
|
// Check if there's a piece at the clicked position
|
||||||
for (Piece p : pieces) {
|
for (Piece p : pieces) {
|
||||||
if (p.getX() == x && p.getY() == y) {
|
if (p.getX() == x && p.getY() == y) {
|
||||||
|
// Only allow selection if it's the correct player's turn
|
||||||
|
if (p.isWhite() == isWhiteTurn) {
|
||||||
selectedX = x;
|
selectedX = x;
|
||||||
selectedY = y;
|
selectedY = y;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else { // Already have a selected piece
|
||||||
// Already selected: Move or unselect
|
if (x == selectedX && y == selectedY) { // Clicked same position: unselect
|
||||||
if (x == selectedX && y == selectedY) {
|
|
||||||
// Unselect
|
|
||||||
selectedX = -1;
|
selectedX = -1;
|
||||||
selectedY = -1;
|
selectedY = -1;
|
||||||
} else {
|
} else { // Attempt to move
|
||||||
// Move piece from (selectedX, selectedY) to (x, y)
|
|
||||||
Piece pieceToMove = null;
|
Piece pieceToMove = null;
|
||||||
|
|
||||||
|
// Find the selected piece
|
||||||
for (Piece p : pieces) {
|
for (Piece p : pieces) {
|
||||||
if (p.getX() == selectedX && p.getY() == selectedY) {
|
if (p.getX() == selectedX && p.getY() == selectedY) {
|
||||||
pieceToMove = p;
|
pieceToMove = p;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pieceToMove != null) {
|
if (pieceToMove != null) {
|
||||||
// Remove target piece and move
|
// Remove any piece at target location
|
||||||
pieces.removeIf(p -> p.getX() == x && p.getY() == y);
|
pieces.removeIf(p -> p.getX() == x && p.getY() == y);
|
||||||
|
|
||||||
|
// Update piece position
|
||||||
pieceToMove.setX(x);
|
pieceToMove.setX(x);
|
||||||
pieceToMove.setY(y);
|
pieceToMove.setY(y);
|
||||||
|
|
||||||
|
// Advance game state
|
||||||
|
turnNumber++;
|
||||||
|
isWhiteTurn = !isWhiteTurn;
|
||||||
}
|
}
|
||||||
// Unselect after move
|
|
||||||
|
// Clear selection regardless of move success
|
||||||
selectedX = -1;
|
selectedX = -1;
|
||||||
selectedY = -1;
|
selectedY = -1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue