summaryrefslogtreecommitdiff
path: root/Pieces/Pawn.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Pieces/Pawn.cs')
-rw-r--r--Pieces/Pawn.cs34
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;
+ }
}
}