remove marietta's edit to try highlight again
This commit is contained in:
commit
811d9a28d5
|
|
@ -9,7 +9,7 @@ public class Board {
|
|||
private Piece chosenPiece=null;
|
||||
private int turnNumber=0;
|
||||
private boolean isTurnWhite=true;
|
||||
private ArrayList<int[]> highlightedSquares= new ArrayList<>(); //stores highlighted board position
|
||||
// private ArrayList<int[]> highlightedSquares= new ArrayList<>();
|
||||
|
||||
public Board(int colNum, int lineNum) {
|
||||
this.width=colNum;
|
||||
|
|
@ -167,14 +167,9 @@ public class Board {
|
|||
|
||||
/* The following methods require more work ! */
|
||||
|
||||
public boolean isHighlighted(int x, int y) { //loop through list of highlighted squares
|
||||
for(int i=0;i<highlightedSquares.size();i++) { //gets the current position of the piece at (x,y)
|
||||
int[] position = highlightedSquares.get(i);
|
||||
if(position[0]==x && position[1]==y) { //checking if position matches coordinates
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false; }
|
||||
public boolean isHighlighted(int x, int y) {
|
||||
//return highlightedSquares.contains(Point(x,y));
|
||||
return true; }
|
||||
|
||||
|
||||
public void undoLastMove() {
|
||||
|
|
@ -192,5 +187,4 @@ public class Board {
|
|||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
/*package backend;
|
||||
|
||||
public class HighlightManager {
|
||||
|
||||
private Board board;
|
||||
|
||||
public HighlightManager(Board board) {
|
||||
this.board = board;
|
||||
}
|
||||
|
||||
public void highlightPawnMoves(Piece piece) {
|
||||
board.clearHighlights(); // Clear previous highlights
|
||||
int currentX = piece.getX();
|
||||
int currentY = piece.getY();
|
||||
int direction = piece.isWhite() ? -1 : 1;
|
||||
|
||||
// Forward move
|
||||
if (board.getPiece(currentX, currentY + direction) == null) {
|
||||
board.addHighlight(currentX, currentY + direction);
|
||||
|
||||
// First move two steps forward
|
||||
if ((piece.isWhite() && currentY == 6) || (!piece.isWhite() && currentY == 1)) {
|
||||
if (board.getPiece(currentX, currentY + direction) == null &&
|
||||
board.getPiece(currentX, currentY + 2 * direction) == null) {
|
||||
board.addHighlight(currentX, currentY + 2 * direction);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Diagonal captures
|
||||
Piece rightCapture = board.getPiece(currentX + 1, currentY + direction);
|
||||
if (rightCapture != null && rightCapture.isWhite() != piece.isWhite()) {
|
||||
board.addHighlight(currentX + 1, currentY + direction);
|
||||
}
|
||||
|
||||
Piece leftCapture = board.getPiece(currentX - 1, currentY + direction);
|
||||
if (leftCapture != null && leftCapture.isWhite() != piece.isWhite()) {
|
||||
board.addHighlight(currentX - 1, currentY + direction);
|
||||
|
||||
}
|
||||
|
||||
board.refreshHighlights();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Rook Moves
|
||||
public void highlightRookMoves(Piece piece) {
|
||||
board.clearHighlights();
|
||||
int currentX = piece.getX();
|
||||
int currentY = piece.getY();
|
||||
|
||||
// Vertical and Horizontal Moves
|
||||
for (int i = 1; i < 8; i++) {
|
||||
if (!addHighlightIfValid(currentX + i, currentY)) break;
|
||||
}
|
||||
for (int i = 1; i < 8; i++) {
|
||||
if (!addHighlightIfValid(currentX - i, currentY)) break;
|
||||
}
|
||||
for (int i = 1; i < 8; i++) {
|
||||
if (!addHighlightIfValid(currentX, currentY + i)) break;
|
||||
}
|
||||
for (int i = 1; i < 8; i++) {
|
||||
if (!addHighlightIfValid(currentX, currentY - i)) break;
|
||||
}
|
||||
board.refreshHighlights();
|
||||
}
|
||||
|
||||
// Bishop Moves
|
||||
public void highlightBishopMoves(Piece piece) {
|
||||
board.clearHighlights();
|
||||
int currentX = piece.getX();
|
||||
int currentY = piece.getY();
|
||||
|
||||
// Diagonal Moves
|
||||
for (int i = 1; i < 8; i++) {
|
||||
if (!addHighlightIfValid(currentX + i, currentY + i)) break;
|
||||
}
|
||||
for (int i = 1; i < 8; i++) {
|
||||
if (!addHighlightIfValid(currentX - i, currentY - i)) break;
|
||||
}
|
||||
for (int i = 1; i < 8; i++) {
|
||||
if (!addHighlightIfValid(currentX + i, currentY - i)) break;
|
||||
}
|
||||
for (int i = 1; i < 8; i++) {
|
||||
if (!addHighlightIfValid(currentX - i, currentY + i)) break;
|
||||
}
|
||||
board.refreshHighlights();
|
||||
}
|
||||
|
||||
// Knight Moves
|
||||
public void highlightKnightMoves(Piece piece) {
|
||||
board.clearHighlights();
|
||||
int currentX = piece.getX();
|
||||
int currentY = piece.getY();
|
||||
int[][] moves = {
|
||||
{2, 1}, {2, -1}, {-2, 1}, {-2, -1},
|
||||
{1, 2}, {1, -2}, {-1, 2}, {-1, -2}
|
||||
};
|
||||
|
||||
for (int[] move : moves) {
|
||||
addHighlightIfValid(currentX + move[0], currentY + move[1]);
|
||||
}
|
||||
board.refreshHighlights();
|
||||
}
|
||||
|
||||
// Helper method to add highlight if the move is valid
|
||||
private boolean addHighlightIfValid(int x, int y) {
|
||||
if (x >= 0 && x < 8 && y >= 0 && y < 8) {
|
||||
Piece target = board.getPiece(x, y);
|
||||
if (target == null) {
|
||||
board.addHighlight(x, y);
|
||||
return true;
|
||||
} else if (target.isWhite() != board.getPiece(x, y).isWhite()) {
|
||||
board.addHighlight(x, y);
|
||||
return false;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// Queen Moves (Combination of Rook and Bishop)
|
||||
public void highlightQueenMoves(Piece piece) {
|
||||
board.clearHighlights();
|
||||
highlightRookMoves(piece); // Horizontal and Vertical paths
|
||||
highlightBishopMoves(piece); // Diagonal paths
|
||||
|
||||
board.refreshHighlights();
|
||||
}
|
||||
|
||||
public void highlightKingMoves(Piece piece) {
|
||||
board.clearHighlights();
|
||||
int currentX = piece.getX();
|
||||
int currentY = piece.getY();
|
||||
int[][] moves = {
|
||||
{1, 0}, {-1, 0}, {0, 1}, {0, -1},
|
||||
{1, 1}, {-1, -1}, {1, -1}, {-1, 1}
|
||||
};
|
||||
|
||||
for (int[] move : moves) {
|
||||
addHighlightIfValid(currentX + move[0], currentY + move[1]);
|
||||
}
|
||||
board.refreshHighlights();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -4,10 +4,14 @@ public class MovePiece {
|
|||
|
||||
private Piece piece;
|
||||
private Board board;
|
||||
// private HighlightManager highlightManager;
|
||||
|
||||
|
||||
|
||||
public MovePiece(Piece piece, Board board) {
|
||||
this.piece = piece;
|
||||
this.board = board;
|
||||
// this.highlightManager = new HighlightManager(board);
|
||||
}
|
||||
|
||||
//Pawn movement logic
|
||||
|
|
@ -164,7 +168,22 @@ public class MovePiece {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* public void addPossibleMoves() {
|
||||
switch (piece.getType()) {
|
||||
case Pawn:highlightManager.highlightPawnMoves(piece);
|
||||
case Rook:highlightManager.highlightRookMoves(piece);
|
||||
case Knight:highlightManager.highlightKnightMoves(piece);
|
||||
case Bishop:highlightManager.highlightBishopMoves(piece);
|
||||
case Queen:highlightManager.highlightQueenMoves(piece);
|
||||
case King:highlightManager.highlightKingMoves(piece);
|
||||
default:System.out.println("Unknown piece type");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -24,4 +24,43 @@ public class initial_Usertouch {
|
|||
|
||||
}
|
||||
}
|
||||
*/
|
||||
//Keshini's user touch
|
||||
/*
|
||||
public void userTouch(int x, int y) {
|
||||
Piece clickedPiece=board[x][y];
|
||||
if(chosenPiece==null) {
|
||||
//when no piece is selected
|
||||
if(clickedPiece!=null && clickedPiece.isWhite()==isTurnWhite) {
|
||||
chosenPiece=clickedPiece;
|
||||
}
|
||||
}
|
||||
else { //if a piece is already selected
|
||||
if(isSelected(x,y)) {
|
||||
chosenPiece=null; //unselect the chosen piece to revert to normal state
|
||||
}
|
||||
else { //move selected piece to new position using MovePiece logics
|
||||
MovePiece movement= new MovePiece(chosenPiece, this);
|
||||
boolean movementSuccess=false;
|
||||
if(chosenPiece.getType()==PieceType.Pawn) {
|
||||
movementSuccess=movement.movePawn(x,y);
|
||||
} else if (chosenPiece.getType()==PieceType.Rook) {
|
||||
movementSuccess=movement.moveRook(x, y);
|
||||
}else if (chosenPiece.getType()==PieceType.Bishop) {
|
||||
movementSuccess=movement.moveBishop(x, y);
|
||||
}else if (chosenPiece.getType()==PieceType.King) {
|
||||
movementSuccess=movement.moveKing(x, y);
|
||||
}else if (chosenPiece.getType()==PieceType.Queen) {
|
||||
movementSuccess=movement.moveQueen(x, y);
|
||||
}
|
||||
if(movementSuccess) {
|
||||
chosenPiece=null;
|
||||
turnNumber++;
|
||||
isTurnWhite=! isTurnWhite;
|
||||
} else { //invalid move
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
|
||||
public class random_file_to_delete {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue