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-01 23:00:38 +01:00
|
|
|
public abstract LinkedHashSet<Point> legalMoves(ArrayList<Piece> pieces);
|
|
|
|
|
|
|
|
public void draw(Graphics2D g2) {
|
|
|
|
|
|
|
|
g2.drawImage(icon, position.x * Board.SCALE, position.y * Board.SCALE, (ImageObserver) this);
|
|
|
|
// g2.drawImage(icon, 4 * Board.SCALE, 6* Board.SCALE, (ImageObserver) this);
|
2022-03-01 18:28:25 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|