import java.awt.*; public class Pawn extends ChessPiece { public Pawn (int c, Image p, Component l) { super (c, p, l); } public boolean legalMove (ChessBoard cb, int x, int y) { if (!moveForward (x, y)) return false; int dist = moveDistance (x, y); if (dist == 2) return (onHomeSquare () && moveStraight (x, y) && legalCapture (cb, x, y) == 0 && !moveBlocked (cb, x, y)); if (dist != 1) return false; if (!moveStraight (x, y)) { if (moveDiagonally (x, y) && moveDistance (x, y) == 1 && legalCapture (cb, x, y) == 1) { return true; } else { return false; } } if (legalCapture (cb, x, y) != 0) return false; return true; } public boolean onHomeSquare () { if (color == WHITE) return squareY == 1; else return squareY == 6; } }