Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 15 / Chess / Figures / Queen
diff options
context:
space:
mode:
2 files changed, 29 insertions, 0 deletions
-rw-r--r--Sem. 15/Chess/Figures/Queen/Queen.cpp18
-rw-r--r--Sem. 15/Chess/Figures/Queen/Queen.h11
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