Cute Chess 0.1
tournamentpair.h
1/*
2 This file is part of Cute Chess.
3 Copyright (C) 2008-2018 Cute Chess authors
4
5 Cute Chess is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 Cute Chess is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with Cute Chess. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef TOURNAMENTPAIR_H
20#define TOURNAMENTPAIR_H
21
31class LIB_EXPORT TournamentPair
32{
33 public:
41 TournamentPair(int firstPlayer = -1,
42 int secondPlayer = -1);
43
45 int firstPlayer() const;
47 int secondPlayer() const;
52 bool hasOriginalOrder() const;
60 int leader() const;
67 bool hasSamePlayers(const TournamentPair* other) const;
72 bool isValid() const;
77 int gamesStarted() const;
79 void addStartedGame();
81 int gamesFinished() const;
83 int gamesInProgress() const;
88 int scoreSum() const;
90 int scoreDiff() const;
94 int firstScore() const;
99 void addFirstScore(int score);
103 int secondScore() const;
108 void addSecondScore(int score);
113 void swapPlayers();
114
115 private:
116 struct Player
117 {
118 int index;
119 int score;
120 };
121
122 Player m_first;
123 Player m_second;
124 int m_gamesStarted;
125 bool m_hasOriginalOrder;
126};
127
128#endif // TOURNAMENTPAIR_H
A single encounter in a tournament.
Definition: tournamentpair.h:32