diff options
Diffstat (limited to 'src/game_tab/Game.hpp')
| -rw-r--r-- | src/game_tab/Game.hpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/game_tab/Game.hpp b/src/game_tab/Game.hpp index ddf5cf6..6f9bbb7 100644 --- a/src/game_tab/Game.hpp +++ b/src/game_tab/Game.hpp @@ -5,13 +5,19 @@ #include "ochess.hpp" #include <unordered_map> +/** + * @brief Hold an entire chess game + * Used in many places in the projects. + */ class Game { + /// @brief 64 char string that contains all the pieces on the board (used in BoardCanvas) std::string board; std::string initial_fen; std::string result; std::unordered_map<std::string, std::string> tags; HalfMove *moves; HalfMove *current; + /// @brief Used by various methods of the class chessarbiter::ChessArbiter arbiter; public: @@ -29,12 +35,15 @@ public: HalfMove *GetMoves(); std::string GetFen(); std::string GetResult(); + /// @brief Play the given absolute move bool Play(std::string move,char promotion='q'); bool IsBlackToPlay(); bool IsCheckmate(bool forBlack); + /// @brief Check if a given absolute move consists in a pawn promotion bool IsPromotionMove(std::string absolute_move); void Previous(); void Next(); + /// @brief Delete a move (its mainline and variations recursively) void DeleteMove(HalfMove *m); void PromoteMove(HalfMove *m); void SetMoveAsMainline(HalfMove *m); |
