Cute Chess 0.1
gameadjudicator.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 GAMEADJUDICATOR_H
20#define GAMEADJUDICATOR_H
21
22#include "board/result.h"
23namespace Chess { class Board; }
24class MoveEvaluation;
25
32class LIB_EXPORT GameAdjudicator
33{
34 public:
41
50 void setDrawThreshold(int moveNumber, int moveCount, int score);
61 void setResignThreshold(int moveCount,
62 int score,
63 bool twoSided = false);
71 void setMaximumGameLength(int moveCount);
78 void setTablebaseAdjudication(bool enable);
79
89 void addEval(const Chess::Board* board, const MoveEvaluation& eval);
91 void resetDrawMoveCount();
98 Chess::Result result() const;
99
100 private:
101 int m_drawMoveNum;
102 int m_drawMoveCount;
103 int m_drawScore;
104 int m_drawScoreCount;
105 int m_resignMoveCount;
106 int m_resignScore;
107 int m_resignScoreCount[2];
108 int m_winScoreCount[2];
109 bool m_twoSided;
110 int m_maxGameLength;
111 bool m_tbEnabled;
112 Chess::Result m_result;
113};
114
115#endif // GAMEADJUDICATOR_H
An internal chessboard class.
Definition board.h:58
The result of a chess game.
Definition result.h:35
void resetDrawMoveCount()
Definition gameadjudicator.cpp:154
void setResignThreshold(int moveCount, int score, bool twoSided=false)
Definition gameadjudicator.cpp:51
void setTablebaseAdjudication(bool enable)
Definition gameadjudicator.cpp:70
void setDrawThreshold(int moveNumber, int moveCount, int score)
Definition gameadjudicator.cpp:40
void addEval(const Chess::Board *board, const MoveEvaluation &eval)
Definition gameadjudicator.cpp:75
GameAdjudicator()
Definition gameadjudicator.cpp:23
Chess::Result result() const
Definition gameadjudicator.cpp:159
void setMaximumGameLength(int moveCount)
Definition gameadjudicator.cpp:64
Evaluation data for a chess move.
Definition moveevaluation.h:36