diff options
sem 15
2 files changed, 29 insertions, 0 deletions
| -rw-r--r-- | Sem. 15/Chess/Figures/Queen/Queen.cpp | 18 | ||||
| -rw-r--r-- | Sem. 15/Chess/Figures/Queen/Queen.h | 11 |
diff --git a/Sem. 15/Chess/Figures/Queen/Queen.cpp b/Sem. 15/Chess/Figures/Queen/Queen.cpp new file mode 100644 index 0000000..da49c1c --- /dev/null +++ b/Sem. 15/Chess/Figures/Queen/Queen.cpp @@ -0,0 +1,18 @@ +#include "Queen.h" + +Queen::Queen(bool isWhite) : Bishop(isWhite), Rook(isWhite), Figure(isWhite) +{} + +bool Queen::canBeMoved(size_t currentX, size_t currentY, size_t destX, size_t destY) const +{ + return Bishop::canBeMoved(currentX, currentY, destX, destY) + || Rook::canBeMoved(currentX, currentY, destX, destY); +} + +void Queen::print() const +{ + if (getIsWhite()) + std::cout << 'Q'; + else + std::cout << 'q'; +}
\ No newline at end of file diff --git a/Sem. 15/Chess/Figures/Queen/Queen.h b/Sem. 15/Chess/Figures/Queen/Queen.h new file mode 100644 index 0000000..c4fb1da --- /dev/null +++ b/Sem. 15/Chess/Figures/Queen/Queen.h @@ -0,0 +1,11 @@ +#pragma once +#include "../Bishop/Bishop.h" +#include "../Rook/Rook.h" + +class Queen : public Bishop, public Rook +{ +public: + Queen(bool isWhite); + bool canBeMoved(size_t currentX, size_t currentY, size_t destX, size_t destY) const; + void print() const; +};
\ No newline at end of file |
