2022-03-01 18:28:25 +01:00
|
|
|
package schack;
|
|
|
|
|
2022-03-01 23:00:38 +01:00
|
|
|
import java.awt.Component;
|
|
|
|
import java.awt.Graphics2D;
|
2022-03-01 18:28:25 +01:00
|
|
|
import java.awt.Point;
|
2022-03-01 23:00:38 +01:00
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
import java.awt.image.ImageObserver;
|
2022-03-01 18:28:25 +01:00
|
|
|
import java.util.ArrayList;
|
2022-03-01 23:00:38 +01:00
|
|
|
import java.util.LinkedHashSet;
|
2022-03-01 18:28:25 +01:00
|
|
|
|
2022-03-01 23:00:38 +01:00
|
|
|
public abstract class Piece extends Component {
|
2022-03-01 18:39:24 +01:00
|
|
|
|
2022-03-01 18:28:25 +01:00
|
|
|
public Point position;
|
2022-03-01 23:00:38 +01:00
|
|
|
public boolean white;
|
|
|
|
public boolean castled = false;
|
|
|
|
protected BufferedImage icon;
|
2022-03-01 18:28:25 +01:00
|
|
|
|
2022-03-01 23:00:38 +01:00
|
|
|
public Piece(boolean white, Point startingPosition) {
|
|
|
|
this.white = white;
|
|
|
|
this.position = startingPosition;
|
2022-03-01 18:39:24 +01:00
|
|
|
}
|
|
|
|
|
2022-03-02 19:33:08 +01:00
|
|
|
public abstract LinkedHashSet<Point> validMoves(ArrayList<Piece> pieces);
|
2022-03-01 23:00:38 +01:00
|
|
|
|
|
|
|
public void draw(Graphics2D g2) {
|
|
|
|
|
2022-03-02 19:40:53 +01:00
|
|
|
g2.drawImage(
|
|
|
|
icon,
|
|
|
|
position.x * Board.SIZE_OF_TILE,
|
|
|
|
position.y * Board.SIZE_OF_TILE,
|
|
|
|
(ImageObserver) this
|
|
|
|
);
|
2022-03-01 18:28:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|