Actualiser src/backend/Move.java
This commit is contained in:
parent
98e5ce6346
commit
2c09b153ac
|
|
@ -1,15 +1,25 @@
|
||||||
package backend;
|
package backend;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class represents a chess move with starting position,
|
||||||
|
* ending position, and the pieces involved.
|
||||||
|
*/
|
||||||
public class Move {
|
public class Move {
|
||||||
|
// Starting position X coordinate (0-7)
|
||||||
private int fromX;
|
private int fromX;
|
||||||
|
// Starting position Y coordinate (0-7)
|
||||||
private int fromY;
|
private int fromY;
|
||||||
|
// Ending position X coordinate (0-7)
|
||||||
private int toX;
|
private int toX;
|
||||||
|
// Ending position Y coordinate (0-7)
|
||||||
private int toY;
|
private int toY;
|
||||||
|
// The chess piece that is moving
|
||||||
private Piece movingPiece;
|
private Piece movingPiece;
|
||||||
|
// The chess piece that is being captured (if any)
|
||||||
private Piece capturedPiece;
|
private Piece capturedPiece;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for a move
|
* Constructor for a move with all details
|
||||||
* @param fromX Starting X-coordinate
|
* @param fromX Starting X-coordinate
|
||||||
* @param fromY Starting Y-coordinate
|
* @param fromY Starting Y-coordinate
|
||||||
* @param toX Destination X-coordinate
|
* @param toX Destination X-coordinate
|
||||||
|
|
@ -18,47 +28,117 @@ public class Move {
|
||||||
* @param capturedPiece The piece being captured (null if no capture)
|
* @param capturedPiece The piece being captured (null if no capture)
|
||||||
*/
|
*/
|
||||||
public Move(int fromX, int fromY, int toX, int toY, Piece movingPiece, Piece capturedPiece) {
|
public Move(int fromX, int fromY, int toX, int toY, Piece movingPiece, Piece capturedPiece) {
|
||||||
|
// Save the starting X position
|
||||||
this.fromX = fromX;
|
this.fromX = fromX;
|
||||||
|
// Save the starting Y position
|
||||||
this.fromY = fromY;
|
this.fromY = fromY;
|
||||||
|
// Save the ending X position
|
||||||
this.toX = toX;
|
this.toX = toX;
|
||||||
|
// Save the ending Y position
|
||||||
this.toY = toY;
|
this.toY = toY;
|
||||||
|
// Save the piece that is moving
|
||||||
this.movingPiece = movingPiece;
|
this.movingPiece = movingPiece;
|
||||||
|
// Save the piece that is being captured (if any)
|
||||||
this.capturedPiece = capturedPiece;
|
this.capturedPiece = capturedPiece;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Basic constructor for now - can be expanded later
|
/**
|
||||||
|
* Empty constructor that creates an invalid move
|
||||||
|
* Can be used as a placeholder or default value
|
||||||
|
*/
|
||||||
public Move() {
|
public Move() {
|
||||||
|
// Set all positions to -1 (invalid)
|
||||||
this.fromX = -1;
|
this.fromX = -1;
|
||||||
this.fromY = -1;
|
this.fromY = -1;
|
||||||
this.toX = -1;
|
this.toX = -1;
|
||||||
this.toY = -1;
|
this.toY = -1;
|
||||||
|
// Set both pieces to null
|
||||||
this.movingPiece = null;
|
this.movingPiece = null;
|
||||||
this.capturedPiece = null;
|
this.capturedPiece = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
// Getter methods to access the private fields
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the starting X position
|
||||||
|
*/
|
||||||
public int getFromX() { return fromX; }
|
public int getFromX() { return fromX; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the starting Y position
|
||||||
|
*/
|
||||||
public int getFromY() { return fromY; }
|
public int getFromY() { return fromY; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the ending X position
|
||||||
|
*/
|
||||||
public int getToX() { return toX; }
|
public int getToX() { return toX; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the ending Y position
|
||||||
|
*/
|
||||||
public int getToY() { return toY; }
|
public int getToY() { return toY; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the piece that is moving
|
||||||
|
*/
|
||||||
public Piece getMovingPiece() { return movingPiece; }
|
public Piece getMovingPiece() { return movingPiece; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the piece that was captured (if any)
|
||||||
|
*/
|
||||||
public Piece getCapturedPiece() { return capturedPiece; }
|
public Piece getCapturedPiece() { return capturedPiece; }
|
||||||
|
|
||||||
// Setters if needed
|
// Setter methods to modify the private fields
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the starting X position
|
||||||
|
*/
|
||||||
public void setFromX(int fromX) { this.fromX = fromX; }
|
public void setFromX(int fromX) { this.fromX = fromX; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the starting Y position
|
||||||
|
*/
|
||||||
public void setFromY(int fromY) { this.fromY = fromY; }
|
public void setFromY(int fromY) { this.fromY = fromY; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the ending X position
|
||||||
|
*/
|
||||||
public void setToX(int toX) { this.toX = toX; }
|
public void setToX(int toX) { this.toX = toX; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the ending Y position
|
||||||
|
*/
|
||||||
public void setToY(int toY) { this.toY = toY; }
|
public void setToY(int toY) { this.toY = toY; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the piece that is moving
|
||||||
|
*/
|
||||||
public void setMovingPiece(Piece movingPiece) { this.movingPiece = movingPiece; }
|
public void setMovingPiece(Piece movingPiece) { this.movingPiece = movingPiece; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the piece that was captured
|
||||||
|
*/
|
||||||
public void setCapturedPiece(Piece capturedPiece) { this.capturedPiece = capturedPiece; }
|
public void setCapturedPiece(Piece capturedPiece) { this.capturedPiece = capturedPiece; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the move to a readable string format
|
||||||
|
* For example: "Pa2-a4" for pawn moving from a2 to a4
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
// If there's no moving piece, it's an empty move
|
||||||
if (movingPiece == null) {
|
if (movingPiece == null) {
|
||||||
return "Empty move";
|
return "Empty move";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convert board coordinates to chess notation
|
||||||
|
// Example: (0,0) becomes "a8", (1,7) becomes "b1"
|
||||||
String from = (char)('a' + fromX) + "" + (8 - fromY);
|
String from = (char)('a' + fromX) + "" + (8 - fromY);
|
||||||
String to = (char)('a' + toX) + "" + (8 - toY);
|
String to = (char)('a' + toX) + "" + (8 - toY);
|
||||||
|
|
||||||
|
// Return string with piece type and positions
|
||||||
|
// Example: "Pa2-a4" for pawn move
|
||||||
return movingPiece.getType().getSummary() + from + "-" + to;
|
return movingPiece.getType().getSummary() + from + "-" + to;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue