diff options
Diffstat (limited to 'Pieces/Pawn.cs')
| -rw-r--r-- | Pieces/Pawn.cs | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/Pieces/Pawn.cs b/Pieces/Pawn.cs index d518b8e..93be545 100644 --- a/Pieces/Pawn.cs +++ b/Pieces/Pawn.cs @@ -9,26 +9,34 @@ namespace Chess.Pieces { class Pawn : ChessPiece { - public Pawn() + private bool firstMove = true; + + public Pawn(bool isWhite) : base(isWhite) { - PieceImage = new Bitmap(Chess.Properties.Resources.b_pawn_png_shadow_256px); + PieceImage = new Bitmap(!isWhite ? Chess.Properties.Resources.b_pawn_png_shadow_256px : Chess.Properties.Resources.w_pawn_png_shadow_256px); } - public override void Draw(Graphics graphics, float x, float y, float tileWidth, float tileHeight) + public override bool CanMoveTo(ChessBoard board, BoardTile currentTile, BoardTile destinationTile) { - if (PieceImage != null) - { - var image = this.ResizeImage(PieceImage, (int)tileWidth, (int)tileHeight); + MoveCheckResult result; - graphics.DrawImage(image, new PointF(x*tileWidth, y*tileHeight)); + int space = 2; + if (!firstMove) space = 1; - image.Dispose(); + if (!IsWhite) + { + result = CanMoveDown(board, currentTile, destinationTile, space); + if (result == MoveCheckResult.CanMove) return true; + if (result == MoveCheckResult.CantMove) return false; + } + else + { + result = CanMoveUp(board, currentTile, destinationTile, space); + if (result == MoveCheckResult.CanMove) return true; + if (result == MoveCheckResult.CantMove) return false; } - } - public override bool MoveTo() - { - throw new NotImplementedException(); - } + return false; + } } } |
