From d489848bab395aea447bf6fe462f7c4f603dee1a Mon Sep 17 00:00:00 2001 From: angeld55 Date: Sat, 12 Jun 2021 17:01:20 +0300 Subject: sem 16 --- Sem. 15/Chess/Figures/Pawn/Pawn.cpp | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'Sem. 15/Chess/Figures/Pawn/Pawn.cpp') diff --git a/Sem. 15/Chess/Figures/Pawn/Pawn.cpp b/Sem. 15/Chess/Figures/Pawn/Pawn.cpp index fd04dad..347032b 100644 --- a/Sem. 15/Chess/Figures/Pawn/Pawn.cpp +++ b/Sem. 15/Chess/Figures/Pawn/Pawn.cpp @@ -1,27 +1,16 @@ #include "Pawn.h" #include -Pawn::Pawn(bool isWhite) : Figure(isWhite), isFirstMove(true) +Pawn::Pawn(bool isWhite) : Figure(isWhite, PawnFigure), isFirstMove(true) {} + bool Pawn::canBeMoved(size_t currentX, size_t currentY, size_t destX, size_t destY) const { - /*if (currentX != destX) - return false; - - int diff = destY - currentY; - - if (abs(diff) > 2) - return false; - - if (diff < 0 && getIsWhite() || diff > 0 && !getIsWhite()) - return false; - - if (!abs(diff) == 2 || isFirstMove) - { - return true; - } - return false;*/ - return false; + if (getIsWhite()) + return currentY - 1 == destY && abs((int)currentX - (int)destX) <= 1; + else + return currentY + 1 == destY && abs((int)currentX - (int)destX) <= 1; } + void Pawn::print() const { if (getIsWhite()) -- cgit v1.3.1-23-gd82d