File: score.h

package info (click to toggle)
kfourinline 4:18.04.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 6,784 kB
  • sloc: cpp: 7,339; sh: 8; makefile: 5
file content (132 lines) | stat: -rw-r--r-- 3,815 bytes parent folder | download | duplicates (2)
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
127
128
129
130
131
132
#ifndef SCORE_H
#define SCORE_H
/*
   This file is part of the KDE games kwin4 program
   Copyright (c) 2006 Martin Heni <kde@heni-online.de>

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public
   License as published by the Free Software Foundation; either
   version 2 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public License
   along with this library; see the file COPYING.LIB.  If not, write to
   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.
*/


// Qt includes
#include <QObject>

class ScoreSprite;


/**
 * The score object is a compatibility object to transfer the score between
 * the various players and status information entities and the score widget.
 */
class Score : public QObject
{ 
    Q_OBJECT

public:
    /** Construct a score object.
      * @param parent The parent object
      */
    explicit Score(QObject* parent = 0);
    
    /** Set and update the level of the AI.
      * @param level  The new level
      * @param no     The player number [0,1]
      */ 
    void setLevel(int level, int no) {mLevel[no] = level; update();}

    /** Set and update the player name.
      * @param name   The new name
      * @param no     The player number [0,1]
      */ 
    void setPlayerName(QString name,int no) {mName[no] = name;update();}

    /** Set and update whose turn it is (which player goes next).
      * @param no     The player number [0,1]
      */ 
    void setTurn(int no) {mTurn = no;update();}  

    /** Set and update the amount of wins of a player.
      * @param amount The new amount
      * @param no     The player number [0,1]
      */ 
    void setWins(int amount, int no) {mWin[no] = amount; update();}

    /** Set and update the amount of losses of a player.
      * @param amount The new amount
      * @param no     The player number [0,1]
      */ 
    void setLosses(int amount, int no) {mLoss[no] = amount; update();}

    /** Set and update the amount of draws of a player.
      * @param amount The new amount
      * @param no     The player number [0,1]
      */ 
    void setRemis(int amount, int no) {mRemis[no] = amount; update();}

    /** Set and update the amount of aborted games of a player.
      * @param amount The new amount
      * @param no     The player number [0,1]
      */ 
    void setBreaks(int amount, int no) {mBrk[no] = amount; update();}

    /** Set and update the input device of a player.
      * @param type   The new input device (KGameIO) [1,2,4,8], 8 is AI 
      * @param no     The player number [0,1]
      */ 
    void setPlayedBy(int type, int no) {mInputDevice[no] = type; update();}

    /** Connect the score to a display sprite. This sprite will 
      * be used for the update of the data.
      * @param s The display sprite
      */
    void setDisplay(ScoreSprite* s);

protected:
    /** Push all data into the display sprite.
      */
    void update();

private:
    // The display sprite
    ScoreSprite* mDisplay;

    // The name of the players
    QString mName[2];
    
    // The level of the AI(s)
    int mLevel[2];
    
    // Whose turn is it
    int mTurn;
    
    // The amount of wins
    int mWin[2];
    
    // The amount of draws
    int mRemis[2];
    
    // The amount of losses
    int mLoss[2];
    
    // The amount of aboerted games
    int mBrk[2];
    
    // The input device
    int mInputDevice[2];
};

#endif