Website Summary Files Commits Branches @commit @diff @stats
path: root / DiamondProblemAndPolymorphism / Chess / Knight.hpp
diff options
context:
space:
mode:
Commite82491b4c5331dcd854a446df01a9c76c0e50369 (patch)
Author
 Angeld55 <achi_d@abv.bg>
2019-09-21 12:08:32 +0300
Committer
 GitHub <noreply@github.com>
2019-09-21 12:08:32 +0300
Files08b4e1e4cadc71eaa693c6cb9698b56f88a8ed95 /DiamondProblemAndPolymorphism/Chess/Knight.hpp
Object-oriented_programming_FMI-e82491b4c5331dcd854a446df01a9c76c0e50369.tar
Object-oriented_programming_FMI-e82491b4c5331dcd854a446df01a9c76c0e50369.tar.gz
Object-oriented_programming_FMI-e82491b4c5331dcd854a446df01a9c76c0e50369.zip
Parenta465139e88facd7cfca916e1c116382e88e2bb4b (diff)
Add files via upload
1 files changed, 37 insertions, 0 deletions
-rw-r--r--DiamondProblemAndPolymorphism/Chess/Knight.hpp37
diff --git a/DiamondProblemAndPolymorphism/Chess/Knight.hpp b/DiamondProblemAndPolymorphism/Chess/Knight.hpp
new file mode 100644
index 0000000..eb2ee9f
--- /dev/null
+++ b/DiamondProblemAndPolymorphism/Chess/Knight.hpp
@@ -0,0 +1,37 @@
+#include "Figure.hpp"
+
+class Knight : public Figure
+{
+public:
+ Knight(int xCoordinate, int yCoordinate, bool isWhite) :Figure(xCoordinate, yCoordinate, isWhite)
+ {}
+
+ bool Move(int xNew, int yNew);
+
+ void Print();
+};
+bool Knight::Move(int xNew, int yNew)
+{
+ if (!isValidCoord(xNew, yNew))
+ return false;
+ int possibleX[] = { 1, 1, -1, -1, 2, 2, -2, -2 };
+ int possibleY[] = { 2, -2, 2, -2, 1, -1, 1, -1 };
+ for (int i = 0; i < 8; ++i)
+ {
+ if (xNew == xCoord + possibleX[i]
+ && yNew == yCoord + possibleY[i])
+ {
+ xCoord = xNew;
+ yCoord = yNew;
+ return true;
+ }
+
+ }
+ return false;
+
+}
+
+void Knight::Print()
+{
+ cout << 'K';
+} \ No newline at end of file