diff options
Diffstat (limited to 'src/game_tab')
| -rw-r--r-- | src/game_tab/Game.hpp | 9 | ||||
| -rw-r--r-- | src/game_tab/HalfMove.hpp | 8 | ||||
| -rw-r--r-- | src/game_tab/right_panel/LiveEngineDialog.hpp | 1 |
3 files changed, 13 insertions, 5 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); diff --git a/src/game_tab/HalfMove.hpp b/src/game_tab/HalfMove.hpp index 9775c3e..0666f38 100644 --- a/src/game_tab/HalfMove.hpp +++ b/src/game_tab/HalfMove.hpp @@ -7,11 +7,7 @@ #include <vector> /** - * @brief Create your custom half move class - * - * The implementation of the class should give you - * an overview of how to keep your move sync with the one of CGEditor - * + * @brief This class extends CGEHalfMove (to be displayed in the game editor) */ class HalfMove : public cgeditor::CGEHalfMove { HalfMove *parent = nullptr; @@ -19,8 +15,10 @@ class HalfMove : public cgeditor::CGEHalfMove { chessarbiter::ChessArbiter arbiter; std::vector<HalfMove *> variations; std::string fen; + /// @brief Used in to retrieve captured pieces (see GetLineCaptures()) char capture; void BuildAndVerify(HalfMove *m, std::string fen); + /// @brief Store the source and destination square of the current move (mainly used for pieces animation) std::string src,dst; public: diff --git a/src/game_tab/right_panel/LiveEngineDialog.hpp b/src/game_tab/right_panel/LiveEngineDialog.hpp index fa4ea83..b7be674 100644 --- a/src/game_tab/right_panel/LiveEngineDialog.hpp +++ b/src/game_tab/right_panel/LiveEngineDialog.hpp @@ -16,6 +16,7 @@ class LiveEngineDialog : public DialogLiveEngine { uciadapter::UCI *engine; std::string engine_name; wxTimer timer; + /// @brief The following time interval definitely need to be configure in the user settings (set to 1s for now) std::uint32_t interval; public: |
