summaryrefslogtreecommitdiff
path: root/noncore/games/kcheckers/kcheckers.h
blob: e86524fdcb002300d83bd207e77eabaf1fda7143 (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

#ifndef KCHECKERS_H
#define KCHECKERS_H

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

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

#define WOOD   1
#define MARBLE 2

#define ENGLISH 11
#define RUSSIAN 12

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


class KCheckers:public QMainWindow
{
  Q_OBJECT
  public:
    KCheckers();

  private slots:
    void about();
    void aboutQt();
    void newGame();
    void click(int);    // Processes the mouse clics on fields

    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 setPatternWood()   {setPattern(WOOD);};
    void setPatternMarble() {setPattern(MARBLE);};

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

  private:
    void compGo();
    bool userGo(int);

    void drawBoard();
    void colorChange();

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

    int  from;           // Selected by user
    int  skill;
    int  rules;
    int  pattern;
    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* imageMarble1;
    QImage* imageMarble2;
    QImage* imageMarble3;

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

    Checkers*   game;
    QPopupMenu* skillMenu;
    QPopupMenu* optionsMenu;
    QLabel*     statusLabel;

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

};

#endif