00001 00002 #ifndef KCHECKERS_H 00003 #define KCHECKERS_H 00004 00005 #include <qmainwindow.h> 00006 #include <qlabel.h> 00007 00008 #include "field.h" 00009 #include "checkers.h" 00010 00011 #define WOODEN 1 00012 #define GREEN 2 00013 #define MARBLE 3 00014 00015 #define ENGLISH 11 00016 #define RUSSIAN 12 00017 00018 #define BEGINNER 2 00019 #define NOVICE 4 00020 #define AVERAGE 6 00021 #define GOOD 7 00022 #define EXPERT 8 00023 #define MASTER 9 00024 00025 class QToolButton; 00026 00027 00028 class KCheckers:public QMainWindow 00029 { 00030 Q_OBJECT 00031 public: 00032 static QString appName() { return QString::fromLatin1("kcheckers"); } 00033 KCheckers(QWidget *parent, const char* name, WFlags fl); 00034 00035 protected: 00036 void closeEvent(QCloseEvent*); 00037 00038 private slots: 00039 00040 void help(); 00041 void about(); 00042 void aboutQt(); 00043 void newGame(); 00044 void undoMove(); 00045 void click(int); 00046 void showNumeration(); 00047 00048 void setSkillBeginner() {setSkill(BEGINNER);}; 00049 void setSkillNovice() {setSkill(NOVICE);}; 00050 void setSkillAverage() {setSkill(AVERAGE);}; 00051 void setSkillGood() {setSkill(GOOD);}; 00052 void setSkillExpert() {setSkill(EXPERT);}; 00053 void setSkillMaster() {setSkill(MASTER);}; 00054 00055 void setPatternWooden() {setPattern(WOODEN);}; 00056 void setPatternGreen() {setPattern(GREEN);}; 00057 void setPatternMarble() {setPattern(MARBLE);}; 00058 00059 void setRulesEnglish() {setRules(ENGLISH);}; 00060 void setRulesRussian() {setRules(RUSSIAN);}; 00061 00062 private: 00063 00064 void compGo(); 00065 bool userGo(int); 00066 00067 void drawBoard(int); 00068 void drawNumeration(); 00069 void colorChange(); 00070 void unselect(); 00071 void readConfig(); 00072 00073 void setSkill(int); 00074 void setRules(int); 00075 void setPattern(int); 00076 00077 int from; // Selected by user 00078 int skill; 00079 int rules; 00080 int pattern; 00081 00082 int numID; // Show Numeration 00083 int undoID; // Undo Move 00084 int undoBoard[32]; 00085 00086 bool gameOver; 00087 bool selected; 00088 bool userFirst; 00089 00090 Field* field[64]; // Fields of board 00091 00092 QImage* imagePat1; // Patterns 00093 QImage* imagePat2; 00094 QImage* imageFrame; // Frame of selected field 00095 00096 QImage* imageWood1; 00097 QImage* imageWood2; 00098 QImage* imageWood3; 00099 QImage* imageGreen1; 00100 QImage* imageGreen2; 00101 QImage* imageGreen3; 00102 QImage* imageMarble1; 00103 QImage* imageMarble2; 00104 QImage* imageMarble3; 00105 00106 QImage* imageMan1; 00107 QImage* imageMan2; 00108 QImage* imageKing1; 00109 QImage* imageKing2; 00110 00111 Checkers* game; 00112 QPopupMenu* gameMenu; 00113 QPopupMenu* skillMenu; 00114 QPopupMenu* optionsMenu; 00115 QToolButton* undoButton; 00116 QLabel* statusLabel; 00117 00118 static QString enNumeration; 00119 static QString ruNumeration; 00120 00121 static const int t[32]; // Translate table 00122 00123 }; 00124 00125 #endif 00126
1.4.2