diff options
sem 15
2 files changed, 27 insertions, 0 deletions
| -rw-r--r-- | Sem. 15/Chess/Figures/King/King.cpp | 16 | ||||
| -rw-r--r-- | Sem. 15/Chess/Figures/King/King.h | 11 |
diff --git a/Sem. 15/Chess/Figures/King/King.cpp b/Sem. 15/Chess/Figures/King/King.cpp new file mode 100644 index 0000000..9d323f3 --- /dev/null +++ b/Sem. 15/Chess/Figures/King/King.cpp @@ -0,0 +1,16 @@ +#include "King.h" +#include <cmath> + +King::King(bool isWhite) : Figure(isWhite) +{} +bool King::canBeMoved(size_t currentX, size_t currentY, size_t destX, size_t destY) const +{ + return abs((int)currentX - (int)destX) <= 1 && abs((int)currentY - (int)destY) <= 1; +} +void King::print() const +{ + if (getIsWhite()) + std::cout << '%'; + else + std::cout << '$'; +}
\ No newline at end of file diff --git a/Sem. 15/Chess/Figures/King/King.h b/Sem. 15/Chess/Figures/King/King.h new file mode 100644 index 0000000..85a8e02 --- /dev/null +++ b/Sem. 15/Chess/Figures/King/King.h @@ -0,0 +1,11 @@ +#pragma once +#include "../FigureBase/Figure.h" + +class King : public Figure +{ + +public: + King(bool isWhite); + bool canBeMoved(size_t currentX, size_t currentY, size_t destX, size_t destY) const override; + void print() const override; +};
\ No newline at end of file |
