summaryrefslogtreecommitdiff
path: root/noncore/games/kcheckers/kcheckers.h
blob: bd4afc7e5bf584ad201b336799fab98b90269083 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126

#ifndef KCHECKERS_H
#define KCHECKERS_H

#include <qmainwindow.h>
#include <qlabel.h>

#include "field.h"
#include "checkers.h"

#define WOODEN 1
#define GREEN  2
#define MARBLE 3

#define ENGLISH 11
#define RUSSIAN 12

#define BEGINNER 2
#define NOVICE   4
#define AVERAGE  6
#define GOOD     7
#define EXPERT   8
#define MASTER   9

class QToolButton;


class KCheckers:public QMainWindow
{
  Q_OBJECT
  public:
    static QString appName() { return QString::fromLatin1("kcheckers"); }
    KCheckers(QWidget *parent, const char* name, WFlags fl);

  protected:
    void closeEvent(QCloseEvent*);

  private slots:

    void help();
    void about();
    void aboutQt();
    void newGame();
    void undoMove();
    void click(int);
    void showNumeration();

    void setSkillBeginner() {setSkill(BEGINNER);};
    void setSkillNovice()   {setSkill(NOVICE);};
    void setSkillAverage()  {setSkill(AVERAGE);};
    void setSkillGood()     {setSkill(GOOD);};
    void setSkillExpert()   {setSkill(EXPERT);};
    void setSkillMaster()   {setSkill(MASTER);};

    void setPatternWooden() {setPattern(WOODEN);};
    void setPatternGreen()  {setPattern(GREEN);};
    void setPatternMarble() {setPattern(MARBLE);};

    void setRulesEnglish()  {setRules(ENGLISH);};
    void setRulesRussian()  {setRules(RUSSIAN);};

  private:

    void compGo();
    bool userGo(int);

    void drawBoard(int);
    void drawNumeration();
    void colorChange();
    void unselect();
    void readConfig();

    void setSkill(int);
    void setRules(int);
    void setPattern(int);

    int  from;           // Selected by user
    int  skill;
    int  rules;
    int  pattern;

    int  numID;          // Show Numeration
    int  undoID;         // Undo Move
    int  undoBoard[32];

    bool gameOver;
    bool selected;
    bool userFirst;

    Field*  field[64];   // Fields of board

    QImage* imagePat1;   // Patterns
    QImage* imagePat2;
    QImage* imageFrame;  // Frame of selected field

    QImage* imageWood1;
    QImage* imageWood2;
    QImage* imageWood3;
    QImage* imageGreen1;
    QImage* imageGreen2;
    QImage* imageGreen3;
    QImage* imageMarble1;
    QImage* imageMarble2;
    QImage* imageMarble3;

    QImage* imageMan1;
    QImage* imageMan2;
    QImage* imageKing1;
    QImage* imageKing2;

    Checkers*    game;
    QPopupMenu*  gameMenu;
    QPopupMenu*  skillMenu;
    QPopupMenu*  optionsMenu;
    QToolButton* undoButton;
    QLabel*      statusLabel;

    static QString enNumeration;
    static QString ruNumeration;

    static const int t[32];  // Translate table

};

#endif