36 lines
508 B
Java
36 lines
508 B
Java
package chess.model;
|
|
|
|
/**
|
|
* Piece of a game. Posesses a color and the number of time it has been moved.
|
|
*/
|
|
|
|
public abstract class Piece {
|
|
|
|
private final Color color;
|
|
private int moved;
|
|
|
|
public Piece(Color color) {
|
|
this.color = color;
|
|
this.moved = 0;
|
|
}
|
|
|
|
public void move() {
|
|
this.moved++;
|
|
}
|
|
|
|
public Color getColor() {
|
|
return color;
|
|
}
|
|
|
|
public boolean hasMoved() {
|
|
return moved > 0;
|
|
}
|
|
|
|
public void unMove() {
|
|
this.moved--;
|
|
}
|
|
|
|
public abstract <T> T accept(PieceVisitor<T> visitor);
|
|
|
|
}
|