summaryrefslogtreecommitdiff
path: root/noncore/games/kcheckers/checkers.h
Side-by-side diff
Diffstat (limited to 'noncore/games/kcheckers/checkers.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/kcheckers/checkers.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/noncore/games/kcheckers/checkers.h b/noncore/games/kcheckers/checkers.h
new file mode 100644
index 0000000..bd2be08
--- a/dev/null
+++ b/noncore/games/kcheckers/checkers.h
@@ -0,0 +1,56 @@
+#ifndef CHECKERS_H
+#define CHECKERS_H
+
+#define NONE 0
+#define MAN1 1
+#define KING1 2
+#define FREE 3
+#define KING2 4
+#define MAN2 5
+#define FULL 6
+
+#define UL -6
+#define UR -5
+#define DL 5
+#define DR 6
+
+
+class Checkers
+{
+ public:
+ Checkers(int);
+ virtual bool go1(int,int)=0;
+
+ void go2();
+ bool checkMove1();
+ bool checkMove2();
+
+ virtual bool checkCapture1()=0;
+ virtual bool checkCapture2()=0;
+
+ void setLevel(int i) {levelmax=i;};
+ int getBoard(int i) {return board[i];};
+
+ protected:
+ int level; // Current level
+ int levelmax; // Maximum level
+
+ int turn();
+ void turn(int &,bool capture=false);
+
+ int to;
+ int board[54];
+ int bestboard[54];
+ int bestcounter;
+
+ virtual void kingMove2(int,int &)=0;
+
+ virtual bool manCapture2(int,int &)=0;
+ virtual bool kingCapture2(int,int,int &)=0;
+
+ virtual bool manCapture1(int,int,bool &)=0;
+ virtual bool kingCapture1(int,int,bool &)=0;
+
+};
+
+#endif