import java.lang.Object; import java.awt.Color; import java.awt.Image; import java.awt.Graphics; public abstract class Piece { protected int value; protected Color color; protected Image image; protected Board board; protected Position start; protected Path path; public Piece(int _value, Color _color, Image _image, Board _board, Position _start) { value = _value; color = _color; image = _image; board = _board; start = _start; path = new Path(board.rows() * board.columns()); } public int value() { return value; } public Color color() { return color; } public Board board() { return board; } protected abstract boolean LegalMove(Position _from, Position _to); public abstract void Move(Position _to); public abstract void UndoMove(); public abstract void Draw(Graphics _g); }