00001 #ifndef CHECKERS_H
00002 #define CHECKERS_H
00003
00004 #define NONE 0
00005 #define MAN1 1
00006 #define KING1 2
00007 #define FREE 3
00008 #define KING2 4
00009 #define MAN2 5
00010 #define FULL 6
00011
00012 #define UL -6
00013 #define UR -5
00014 #define DL 5
00015 #define DR 6
00016
00017
00018 class Checkers
00019 {
00020 public:
00021 Checkers(int);
00022 virtual bool go1(int,int)=0;
00023
00024 void go2();
00025 bool checkMove1();
00026 bool checkMove2();
00027
00028 virtual bool checkCapture1()=0;
00029 virtual bool checkCapture2()=0;
00030
00031 void setLevel(int i) {levelmax=i;};
00032
00033 int board[54];
00034
00035 protected:
00036 int level;
00037 int levelmax;
00038
00039 int turn();
00040 void turn(int &,bool capture=false);
00041
00042 int to;
00043 int bestboard[54];
00044 int bestcounter;
00045
00046 virtual void kingMove2(int,int &)=0;
00047
00048 virtual bool manCapture2(int,int &)=0;
00049 virtual bool kingCapture2(int,int,int &)=0;
00050
00051 virtual bool manCapture1(int,int,bool &)=0;
00052 virtual bool kingCapture1(int,int,bool &)=0;
00053
00054 };
00055
00056 #endif