From 50444e86ea5048e05b8eb74055e0f7c4d2c5d7b7 Mon Sep 17 00:00:00 2001 From: angeld55 Date: Thu, 10 Jun 2021 18:54:25 +0300 Subject: sem 15 --- Sem. 15/Chess/Figures/Knight/Knight.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Sem. 15/Chess/Figures/Knight/Knight.cpp (limited to 'Sem. 15/Chess/Figures/Knight/Knight.cpp') diff --git a/Sem. 15/Chess/Figures/Knight/Knight.cpp b/Sem. 15/Chess/Figures/Knight/Knight.cpp new file mode 100644 index 0000000..e6db119 --- /dev/null +++ b/Sem. 15/Chess/Figures/Knight/Knight.cpp @@ -0,0 +1,26 @@ +#include "Knight.h" +#include + +Knight::Knight(bool isWhite) : Figure(isWhite) +{} +bool Knight::canBeMoved(size_t currentX, size_t currentY, size_t destX, size_t destY) const +{ + int xMovеment[] = { 1, 1, -1, -1, 2, -2, 2, -2 }; + int yMovеment[] = { 2, -2, 2, -2, 1, 1, -1, -1 }; + + for (int i = 0; i < 8; i++) + { + if (currentX + xMovеment[i] == destX && + currentY + yMovеment[i] == destY) + return true; + } + return false; +} + +void Knight::print() const +{ + if (getIsWhite()) + std::cout << 'K'; + else + std::cout << 'k'; +} \ No newline at end of file -- cgit v1.3.1-23-gd82d