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/Queen/Queen.cpp | 18 ++++++++++++++++++ Sem. 15/Chess/Figures/Queen/Queen.h | 11 +++++++++++ 2 files changed, 29 insertions(+) create mode 100644 Sem. 15/Chess/Figures/Queen/Queen.cpp create mode 100644 Sem. 15/Chess/Figures/Queen/Queen.h (limited to 'Sem. 15/Chess/Figures/Queen') 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 -- cgit v1.3.1-23-gd82d