27 #include <QTextStream> 28 #include "board/move.h" 29 #include "timecontrol.h" 31 #include "gameadjudicator.h" 32 #include "tournamentplayer.h" 33 #include "tournamentpair.h" 77 constexpr
static auto c_defaultFormat
78 =
"Rank,Name,Elo,Error,Games,Score,DScore";
95 virtual QString type()
const = 0;
99 bool isFinished()
const;
114 int currentRound()
const;
124 int gamesPerEncounter()
const;
130 int roundMultiplier()
const;
132 int finishedGameCount()
const;
134 int finalGameCount()
const;
138 int playerCount()
const;
143 int seedCount()
const;
153 void setName(
const QString& name);
155 void setSite(
const QString& site);
157 void setVariant(
const QString& variant);
163 void setGamesPerEncounter(
int count);
168 virtual bool canSetRoundMultiplier()
const;
174 void setRoundMultiplier(
int factor);
176 void setStartDelay(
int delay);
184 void setRecoveryMode(
bool recover);
202 void setOpeningDepth(
int plies);
210 void setPgnOutput(
const QString& fileName,
219 void setPgnWriteUnfinishedGames(
bool enabled);
227 void setPgnCleanupEnabled(
bool enabled);
235 void setEpdOutput(
const QString& fileName);
243 void setOpeningRepetitions(
int count);
256 void setOpeningPolicy(OpeningPolicy policy = DefaultPolicy);
263 void setReverseSides(
bool enabled);
270 void setOpeningBookOwnership(
bool enabled);
275 void setSeedCount(
int seedCount);
282 void setSwapSides(
bool enabled);
288 void setResultFormat(
const QString &format);
319 int bookDepth = 256);
324 virtual QString results()
const;
328 virtual QString outcomes()
const;
332 bool isStopping()
const;
382 void gameTerminated(
int index,
395 void setCurrentRound(
int round);
397 int gamesInProgress()
const;
420 virtual void onGameAboutToStart(
ChessGame* game,
436 virtual void initializePairing() = 0;
443 virtual int gamesPerCycle()
const = 0;
465 virtual void onFinished();
474 virtual void addScore(
int player,
Chess::Side side,
int score);
479 virtual void addOutcome(
int iWhite,
486 virtual bool areAllGamesFinished()
const;
494 virtual bool hasGauntletRatingsOrder()
const;
497 void startNextGame();
498 bool writePgn(
PgnGame* pgn,
int gameNumber);
549 DrawsByCountingRules,
571 {
"DScore", DrawScore},
573 {
"Error", ErrorMargin},
575 {
"wScore", WhiteScore},
576 {
"wDScore", WhiteDrawScore},
577 {
"wElo", WhiteEloDiff},
578 {
"wError", WhiteErrorMargin},
580 {
"bScore", BlackScore},
581 {
"bDScore", BlackDrawScore},
582 {
"bElo", BlackEloDiff},
583 {
"bError", BlackErrorMargin},
584 {
"Time", TimeForfeits},
585 {
"Illegal", IllegalMoves},
586 {
"Discon", Disconnections},
587 {
"Stall", StalledConnections},
588 {
"WrClaim", InvalidResultClaims},
589 {
"RegulL", RegularLosses},
590 {
"RegulW", RegularWins},
591 {
"OtherW", OtherWins},
592 {
"DStale", DrawsByStalemate},
593 {
"DMater", DrawsByMaterial},
594 {
"DRepet", DrawsByRepetiton},
595 {
"DMoves", DrawsByMovesRule},
596 {
"DCount", DrawsByCountingRules},
597 {
"DAdj", DrawsByAdjudication},
598 {
"DAgree", DrawsByAgreement},
599 {
"OtherD", OtherDraws},
600 {
"TC", TimeControlString}
605 {
"WLDStats",
"W,L,D,Points,Score,wW,wL,wD,wPoints,wScore," 606 "bW,bL,bD,bPoints,bScore"},
607 {
"DrawStats",
"DScore,DStale,DMater,DRepet,DMoves,DAdj,DAgree,OtherD"},
608 {
"Terminations",
"Time,Illegal,Discon,Stall,WrClaim"}
613 {
"minimal",
"Rank,Name"},
614 {
"small",
"Rank,Name,Games,Points"},
615 {
"short",
"Rank,Name,Elo,Games"},
616 {
"concise",
"Rank,Name,Elo,Error,Games"},
617 {
"default",
QString(c_defaultFormat)},
618 {
"with-points",
"Rank,Name,Elo,Error,Games,Points,Score,DScore"},
619 {
"wide",
"Rank,Name,Elo,Error,Games,W,L,D,Points,Score,DScore"},
620 {
"wide2",
"Rank,Name,Elo,Error,Games,W,L,D,Points," 621 "Score,DScore,wScore,bScore"},
622 {
"per-color",
"Rank,Name,Elo,Error,Games,W,L,D,Points," 623 "wW,wL,wD,wPoints,bW,bL,bD,bPoints"},
624 {
"ordo",
"Rank,Name,Elo,Points,Games,Score"},
625 {
"term",
"Rank,Name,Elo,Error,Games,Score," 626 "Time,Illegal,Discon,Stall,WrClaim"},
627 {
"draws",
"Rank,Name,Elo,Error,Games,W,L,D,Points,Score,DScore," 628 "DStale,DMater,DRepet,DMoves,DAdj,DAgree,OtherD"},
629 {
"wide3",
"Rank,Name,TC,Elo,Error,Games,WLDStats," 630 "DrawStats,Terminations"}
659 qreal whiteDrawScore;
661 qreal whiteErrorMargin;
664 qreal blackDrawScore;
666 qreal blackErrorMargin;
671 int stalledConnections;
672 int invalidResultClaims;
676 int drawsByStalemate;
678 int drawsByRepetiton;
679 int drawsByMovesRule;
680 int drawsByCountingRules;
681 int drawsByAdjudication;
682 int drawsByAgreement;
687 QString resultsForSides(
int index)
const;
697 int m_nextGameNumber;
698 int m_finishedGameCount;
699 int m_savedGameCount;
700 int m_finalGameCount;
701 int m_gamesPerEncounter;
702 int m_roundMultiplier;
707 int m_openingRepetitions;
708 OpeningPolicy m_openingPolicy;
711 bool m_pgnWriteUnfinishedGames;
713 bool m_bookOwnership;
722 int m_repetitionCounter;
756 void setEntryFormat(
const QString& format);
767 #endif // TOURNAMENT_H Use additional data like extra tags and comments.
Definition: pgngame.h:60
A class for constructing new chess players.
Definition: playerbuilder.h:38
Time controls of a chess game.
Definition: timecontrol.h:35
A class for storing a player's tournament-specific details.
Definition: tournamentplayer.h:31
Definition: tournament.h:66
A game of chess in PGN format.
Definition: pgngame.h:51
Shift on new encounter.
Definition: tournament.h:53
Shift on repetition count and on new encounter.
Definition: tournament.h:52
Definition: chessgame.h:38
Draw Types.
Definition: tournament.h:68
Result error, caused by an invalid result string.
Definition: result.h:63
Regular win (mate, opponent resignation, adjudication)
Definition: tournament.h:63
The side or color of a chess player.
Definition: side.h:35
PgnMode
Definition: pgngame.h:55
The result of a chess game.
Definition: result.h:34
A class for adjudicating chess games.
Definition: gameadjudicator.h:32
A class for managing chess games and players.
Definition: gamemanager.h:40
OpeningPolicy
Definition: tournament.h:50
Base class for chess tournaments.
Definition: tournament.h:44
A collection of opening moves for chess.
Definition: openingbook.h:43
AuxResultType
Definition: tournament.h:58
A single encounter in a tournament.
Definition: tournamentpair.h:31
A Sequential Probability Ratio Test.
Definition: sprt.h:32
A suite of chess openings.
Definition: openingsuite.h:40