diff --git a/html/_game_controller_8h_source.html b/html/_game_controller_8h_source.html index e30a266fbb743aca209418b77d52df04e19cffe7..5d600c93a6a82a7c4243c4f6264c8809d956fe12 100644 --- a/html/_game_controller_8h_source.html +++ b/html/_game_controller_8h_source.html @@ -99,50 +99,64 @@ $(function(){ initResizable(false); }); <div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include "panels/ConnectionPanel.h"</span></div> <div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include "panels/MainGamePanelWizard.h"</span></div> <div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include "panels/TrickEstimationPanel.h"</span></div> -<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include "network/ResponseListenerThread.h"</span></div> -<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include "../common/game_state/game_state.h"</span></div> -<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div> -<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">// TODO: include decide_trump_request</span></div> -<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div> -<div class="foldopen" id="foldopen00013" data-start="{" data-end="};"> -<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="class_game_controller.html"> 13</a></span><span class="keyword">class </span><a class="code hl_class" href="class_game_controller.html">GameController</a> {</div> -<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div> -<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">public</span>:</div> -<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">static</span> <span class="keywordtype">void</span> init(<a class="code hl_class" href="class_game_window.html">GameWindow</a>* gameWindow);</div> -<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div> -<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">static</span> <span class="keywordtype">void</span> connectToServer();</div> -<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">static</span> <span class="keywordtype">void</span> updateGameState(<a class="code hl_class" href="classgame__state.html">game_state</a>* newGameState);</div> -<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">static</span> <span class="keywordtype">void</span> startGame();</div> -<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">static</span> <span class="keywordtype">void</span> estimateTricks(<span class="keywordtype">int</span> nof_cards);</div> -<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">static</span> <span class="keywordtype">void</span> leaveGame();</div> -<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">static</span> <span class="keywordtype">void</span> playCard(<a class="code hl_class" href="classcard.html">card</a>* cardToPlay);</div> -<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">static</span> <span class="keywordtype">void</span> estimateTrick();</div> -<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div> -<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">static</span> wxEvtHandler* getMainThreadEventHandler();</div> -<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">static</span> <span class="keywordtype">void</span> showError(<span class="keyword">const</span> std::string& title, <span class="keyword">const</span> std::string& message);</div> -<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">static</span> <span class="keywordtype">void</span> showStatus(<span class="keyword">const</span> std::string& message);</div> -<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">static</span> <span class="keywordtype">void</span> showNewRoundMessage(<a class="code hl_class" href="classgame__state.html">game_state</a>* oldGameState, <a class="code hl_class" href="classgame__state.html">game_state</a>* newGameState);</div> -<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">static</span> <span class="keywordtype">void</span> showTrickOverMessage();</div> -<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">static</span> <span class="keywordtype">void</span> showGameOverMessage();</div> -<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div> -<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">private</span>:</div> -<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">static</span> <a class="code hl_class" href="class_game_window.html">GameWindow</a>* _gameWindow;</div> -<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">static</span> <a class="code hl_class" href="class_connection_panel.html">ConnectionPanel</a>* _connectionPanel;</div> -<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">static</span> <a class="code hl_class" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a>* _mainGamePanelWizard;</div> -<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">static</span> <a class="code hl_class" href="class_trick_estimation_panel.html">TrickEstimationPanel</a>* _trickEstimationPanel;</div> -<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div> -<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">static</span> <a class="code hl_class" href="classplayer.html">player</a>* _me;</div> -<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">static</span> <a class="code hl_class" href="classgame__state.html">game_state</a>* _currentGameState;</div> -<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div> -<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span>};</div> +<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include "../common/game_state/game_state.h"</span></div> +<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div> +<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">// TODO: include decide_trump_request</span></div> +<div class="foldopen" id="foldopen00020" data-start="{" data-end="};"> +<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="class_game_controller.html"> 20</a></span><span class="keyword">class </span><a class="code hl_class" href="class_game_controller.html">GameController</a> {</div> +<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div> +<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">public</span>:</div> +<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a8889bad76bc35487d3391fb8a5791616">init</a>(<a class="code hl_class" href="class_game_window.html">GameWindow</a>* gameWindow);</div> +<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div> +<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a023da21da545374ee46fb873149976c4">connectToServer</a>();</div> +<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a994773f79be8c9e8dc8c19ee2d389103">updateGameState</a>(<a class="code hl_class" href="classgame__state.html">game_state</a>* newGameState);</div> +<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a8f30ab3ff471ac0a5c8b88dc7fea45f4">startGame</a>();</div> +<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a8d42b2e41759bfd65cdebad87437369e">leaveGame</a>();</div> +<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a5f1023f2029e5dbb25b795a0606e06a9">processEstimateTricks</a>();</div> +<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#abd110563d0f37f06096176c199d22055">estimateTricks</a>(<span class="keywordtype">int</span> nof_tricks);</div> +<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a87b164e2094901861e5b47056634facc">playCard</a>(<a class="code hl_class" href="classcard.html">card</a>* cardToPlay);</div> +<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div> +<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">static</span> wxEvtHandler* <a class="code hl_function" href="class_game_controller.html#abec8c73ea01e4b7e01b2ca1d932e0c16">getMainThreadEventHandler</a>();</div> +<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#adf043f9026a62f634a873c9f9d292034">showError</a>(<span class="keyword">const</span> std::string& title, <span class="keyword">const</span> std::string& message);</div> +<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a6a43eb061a9882b3937fc88bb4794324">showStatus</a>(<span class="keyword">const</span> std::string& message);</div> +<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a3c350056b82df662c946cb9119f11ced">showNewRoundMessage</a>(<a class="code hl_class" href="classgame__state.html">game_state</a>* oldGameState, <a class="code hl_class" href="classgame__state.html">game_state</a>* newGameState);</div> +<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a8108659ad09724318c3a251d93bd5869">showTrickOverMessage</a>(<span class="keyword">const</span> <a class="code hl_class" href="classplayer.html">player</a>* winner);</div> +<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#abb91c546ab8400c1e2e9f2a2ccc8298f">showGameOverMessage</a>();</div> +<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_game_controller.html#a21eea505305d56439efb835e1e148c2f">closeGameWindow</a>();</div> +<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div> +<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="keyword">private</span>:</div> +<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">static</span> <a class="code hl_class" href="class_game_window.html">GameWindow</a>* _gameWindow; </div> +<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">static</span> <a class="code hl_class" href="class_connection_panel.html">ConnectionPanel</a>* _connectionPanel; </div> +<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">static</span> <a class="code hl_class" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a>* _mainGamePanelWizard; </div> +<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">static</span> <a class="code hl_class" href="class_trick_estimation_panel.html">TrickEstimationPanel</a>* _trickEstimationPanel; </div> +<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div> +<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">static</span> <a class="code hl_class" href="classplayer.html">player</a>* _me; </div> +<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">static</span> <a class="code hl_class" href="classgame__state.html">game_state</a>* _currentGameState; </div> +<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div> +<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>};</div> </div> -<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div> -<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div> -<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#endif </span><span class="comment">//WIZARDUI_GAMECONTROLLER_H</span></div> +<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div> +<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div> +<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="preprocessor">#endif </span><span class="comment">//WIZARDUI_GAMECONTROLLER_H</span></div> <div class="ttc" id="aclass_connection_panel_html"><div class="ttname"><a href="class_connection_panel.html">ConnectionPanel</a></div><div class="ttdef"><b>Definition</b> ConnectionPanel.h:8</div></div> -<div class="ttc" id="aclass_game_controller_html"><div class="ttname"><a href="class_game_controller.html">GameController</a></div><div class="ttdef"><b>Definition</b> GameController.h:13</div></div> +<div class="ttc" id="aclass_game_controller_html"><div class="ttname"><a href="class_game_controller.html">GameController</a></div><div class="ttdoc">Controls visualization of the game state and processes client actions.</div><div class="ttdef"><b>Definition</b> GameController.h:20</div></div> +<div class="ttc" id="aclass_game_controller_html_a023da21da545374ee46fb873149976c4"><div class="ttname"><a href="class_game_controller.html#a023da21da545374ee46fb873149976c4">GameController::connectToServer</a></div><div class="ttdeci">static void connectToServer()</div><div class="ttdoc">Handles connection to server when a user joins a game.</div><div class="ttdef"><b>Definition</b> GameController.cpp:45</div></div> +<div class="ttc" id="aclass_game_controller_html_a21eea505305d56439efb835e1e148c2f"><div class="ttname"><a href="class_game_controller.html#a21eea505305d56439efb835e1e148c2f">GameController::closeGameWindow</a></div><div class="ttdeci">static void closeGameWindow()</div><div class="ttdoc">Closes game window.</div><div class="ttdef"><b>Definition</b> GameController.cpp:321</div></div> +<div class="ttc" id="aclass_game_controller_html_a3c350056b82df662c946cb9119f11ced"><div class="ttname"><a href="class_game_controller.html#a3c350056b82df662c946cb9119f11ced">GameController::showNewRoundMessage</a></div><div class="ttdeci">static void showNewRoundMessage(game_state *oldGameState, game_state *newGameState)</div><div class="ttdoc">Shows message that round has finished and current scores of players at the end of a round.</div><div class="ttdef"><b>Definition</b> GameController.cpp:234</div></div> +<div class="ttc" id="aclass_game_controller_html_a5f1023f2029e5dbb25b795a0606e06a9"><div class="ttname"><a href="class_game_controller.html#a5f1023f2029e5dbb25b795a0606e06a9">GameController::processEstimateTricks</a></div><div class="ttdeci">static void processEstimateTricks()</div><div class="ttdoc">Process input from trick estimation panel and trigger estimateTricks function.</div><div class="ttdef"><b>Definition</b> GameController.cpp:190</div></div> +<div class="ttc" id="aclass_game_controller_html_a6a43eb061a9882b3937fc88bb4794324"><div class="ttname"><a href="class_game_controller.html#a6a43eb061a9882b3937fc88bb4794324">GameController::showStatus</a></div><div class="ttdeci">static void showStatus(const std::string &message)</div><div class="ttdoc">Set status message.</div><div class="ttdef"><b>Definition</b> GameController.cpp:229</div></div> +<div class="ttc" id="aclass_game_controller_html_a8108659ad09724318c3a251d93bd5869"><div class="ttname"><a href="class_game_controller.html#a8108659ad09724318c3a251d93bd5869">GameController::showTrickOverMessage</a></div><div class="ttdeci">static void showTrickOverMessage(const player *winner)</div><div class="ttdoc">Shows message at the end of each trick stating which player won the trick.</div><div class="ttdef"><b>Definition</b> GameController.cpp:268</div></div> +<div class="ttc" id="aclass_game_controller_html_a87b164e2094901861e5b47056634facc"><div class="ttname"><a href="class_game_controller.html#a87b164e2094901861e5b47056634facc">GameController::playCard</a></div><div class="ttdeci">static void playCard(card *cardToPlay)</div><div class="ttdoc">Send out 'play card' request to server.</div><div class="ttdef"><b>Definition</b> GameController.cpp:184</div></div> +<div class="ttc" id="aclass_game_controller_html_a8889bad76bc35487d3391fb8a5791616"><div class="ttname"><a href="class_game_controller.html#a8889bad76bc35487d3391fb8a5791616">GameController::init</a></div><div class="ttdeci">static void init(GameWindow *gameWindow)</div><div class="ttdoc">Initializes game window when a new Wizard-client is started.</div><div class="ttdef"><b>Definition</b> GameController.cpp:22</div></div> +<div class="ttc" id="aclass_game_controller_html_a8d42b2e41759bfd65cdebad87437369e"><div class="ttname"><a href="class_game_controller.html#a8d42b2e41759bfd65cdebad87437369e">GameController::leaveGame</a></div><div class="ttdeci">static void leaveGame()</div><div class="ttdoc">Send out 'leave game' request to server.</div><div class="ttdef"><b>Definition</b> GameController.cpp:173</div></div> +<div class="ttc" id="aclass_game_controller_html_a8f30ab3ff471ac0a5c8b88dc7fea45f4"><div class="ttname"><a href="class_game_controller.html#a8f30ab3ff471ac0a5c8b88dc7fea45f4">GameController::startGame</a></div><div class="ttdeci">static void startGame()</div><div class="ttdoc">Send out 'start game' request to server.</div><div class="ttdef"><b>Definition</b> GameController.cpp:167</div></div> +<div class="ttc" id="aclass_game_controller_html_a994773f79be8c9e8dc8c19ee2d389103"><div class="ttname"><a href="class_game_controller.html#a994773f79be8c9e8dc8c19ee2d389103">GameController::updateGameState</a></div><div class="ttdeci">static void updateGameState(game_state *newGameState)</div><div class="ttdoc">Updates game state whenever any player interacted with the server based on parameters of current game...</div><div class="ttdef"><b>Definition</b> GameController.cpp:99</div></div> +<div class="ttc" id="aclass_game_controller_html_abb91c546ab8400c1e2e9f2a2ccc8298f"><div class="ttname"><a href="class_game_controller.html#abb91c546ab8400c1e2e9f2a2ccc8298f">GameController::showGameOverMessage</a></div><div class="ttdeci">static void showGameOverMessage()</div><div class="ttdoc">Shows message at the end of the game that the game has ended and states the winner.</div><div class="ttdef"><b>Definition</b> GameController.cpp:278</div></div> +<div class="ttc" id="aclass_game_controller_html_abd110563d0f37f06096176c199d22055"><div class="ttname"><a href="class_game_controller.html#abd110563d0f37f06096176c199d22055">GameController::estimateTricks</a></div><div class="ttdeci">static void estimateTricks(int nof_tricks)</div><div class="ttdoc">Send out 'estimate tricks' request to server.</div><div class="ttdef"><b>Definition</b> GameController.cpp:179</div></div> +<div class="ttc" id="aclass_game_controller_html_abec8c73ea01e4b7e01b2ca1d932e0c16"><div class="ttname"><a href="class_game_controller.html#abec8c73ea01e4b7e01b2ca1d932e0c16">GameController::getMainThreadEventHandler</a></div><div class="ttdeci">static wxEvtHandler * getMainThreadEventHandler()</div><div class="ttdoc">Finds event handler for main thread.</div><div class="ttdef"><b>Definition</b> GameController.cpp:213</div></div> +<div class="ttc" id="aclass_game_controller_html_adf043f9026a62f634a873c9f9d292034"><div class="ttname"><a href="class_game_controller.html#adf043f9026a62f634a873c9f9d292034">GameController::showError</a></div><div class="ttdeci">static void showError(const std::string &title, const std::string &message)</div><div class="ttdoc">Handles showing of error messages.</div><div class="ttdef"><b>Definition</b> GameController.cpp:218</div></div> <div class="ttc" id="aclass_game_window_html"><div class="ttname"><a href="class_game_window.html">GameWindow</a></div><div class="ttdef"><b>Definition</b> GameWindow.h:8</div></div> -<div class="ttc" id="aclass_main_game_panel_wizard_html"><div class="ttname"><a href="class_main_game_panel_wizard.html">MainGamePanelWizard</a></div><div class="ttdef"><b>Definition</b> MainGamePanelWizard.h:8</div></div> +<div class="ttc" id="aclass_main_game_panel_wizard_html"><div class="ttname"><a href="class_main_game_panel_wizard.html">MainGamePanelWizard</a></div><div class="ttdoc">Visualizes Game State to user during the card playing phase. The Main Game Panel is shown before the ...</div><div class="ttdef"><b>Definition</b> MainGamePanelWizard.h:16</div></div> <div class="ttc" id="aclass_trick_estimation_panel_html"><div class="ttname"><a href="class_trick_estimation_panel.html">TrickEstimationPanel</a></div><div class="ttdef"><b>Definition</b> TrickEstimationPanel.h:13</div></div> <div class="ttc" id="aclasscard_html"><div class="ttname"><a href="classcard.html">card</a></div><div class="ttdoc">Represents a card in the game.</div><div class="ttdef"><b>Definition</b> card.h:15</div></div> <div class="ttc" id="aclassgame__state_html"><div class="ttname"><a href="classgame__state.html">game_state</a></div><div class="ttdoc">Represents the state of the game.</div><div class="ttdef"><b>Definition</b> game_state.h:27</div></div> diff --git a/html/_main_game_panel_wizard_8h_source.html b/html/_main_game_panel_wizard_8h_source.html index 8c6280db02751158cf8c36f1f0b3b74be5d76488..cabbcef75c3fe982c455af7bb2b0ad7e926e0c92 100644 --- a/html/_main_game_panel_wizard_8h_source.html +++ b/html/_main_game_panel_wizard_8h_source.html @@ -99,31 +99,34 @@ $(function(){ initResizable(false); }); <div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include <wx/gbsizer.h></span></div> <div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include "../../common/game_state/game_state.h"</span></div> <div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div> -<div class="foldopen" id="foldopen00008" data-start="{" data-end="};"> -<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"><a class="line" href="class_main_game_panel_wizard.html"> 8</a></span><span class="keyword">class </span><a class="code hl_class" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a> : <span class="keyword">public</span> wxPanel{</div> -<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div> -<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="keyword">public</span>:</div> -<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <a class="code hl_class" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a>(wxWindow* parent);</div> -<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div> -<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> <span class="keywordtype">void</span> buildGameState(<a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a>* me);</div> -<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div> -<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">private</span>:</div> -<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">void</span> buildThisPlayer(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a>* me);</div> -<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordtype">void</span> buildTurnIndicator(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a>* me);</div> -<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keywordtype">void</span> buildOtherPlayers(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a> *me, <span class="keywordtype">int</span> myPosition);</div> -<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div> -<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordtype">void</span> buildTrickPile(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a> *me);</div> -<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordtype">void</span> buildTrumpCard(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState);</div> -<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div> -<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordtype">void</span> buildScoreBoardButton(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState);</div> +<div class="foldopen" id="foldopen00016" data-start="{" data-end="};"> +<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"><a class="line" href="class_main_game_panel_wizard.html"> 16</a></span><span class="keyword">class </span><a class="code hl_class" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a> : <span class="keyword">public</span> wxPanel{</div> +<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div> +<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">public</span>:</div> +<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <a class="code hl_function" href="class_main_game_panel_wizard.html#a6ba532223a22fe5458e3f94a70e2bbf6">MainGamePanelWizard</a>(wxWindow* parent);</div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div> -<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> wxSize <span class="keyword">const</span> panelSize = wxSize(960, 680); <span class="comment">// also set in the constructor implementation</span></div> -<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> wxSize <span class="keyword">const</span> cardSize = wxSize(70, 108);</div> -<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span>};</div> +<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">void</span> <a class="code hl_function" href="class_main_game_panel_wizard.html#a83517cab2cccba78cce79450de3bb7f3">buildGameState</a>(<a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a>* me);</div> +<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div> +<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">private</span>:</div> +<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordtype">void</span> buildThisPlayer(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a>* me);</div> +<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordtype">void</span> buildTurnIndicator(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a>* me);</div> +<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordtype">void</span> buildOtherPlayers(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a> *me, <span class="keywordtype">int</span> myPosition);</div> +<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordtype">void</span> showRoundOverlay(<span class="keywordtype">int</span> roundNumber);</div> +<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordtype">void</span> buildTrickPile(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a> *me);</div> +<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordtype">void</span> buildTrumpCard(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState);</div> +<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div> +<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">void</span> buildScoreLeaveButtons(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState);</div> +<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div> +<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// also set in the constructor implementation</span></div> +<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> wxSize <span class="keyword">const</span> panelSize = wxSize(960, 680); </div> +<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> wxSize <span class="keyword">const</span> cardSize = wxSize(70, 108); </div> +<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span>};</div> </div> -<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div> -<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#endif </span><span class="comment">//MAINGAMEPANELWIZARD_H</span></div> -<div class="ttc" id="aclass_main_game_panel_wizard_html"><div class="ttname"><a href="class_main_game_panel_wizard.html">MainGamePanelWizard</a></div><div class="ttdef"><b>Definition</b> MainGamePanelWizard.h:8</div></div> +<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div> +<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor">#endif </span><span class="comment">//MAINGAMEPANELWIZARD_H</span></div> +<div class="ttc" id="aclass_main_game_panel_wizard_html"><div class="ttname"><a href="class_main_game_panel_wizard.html">MainGamePanelWizard</a></div><div class="ttdoc">Visualizes Game State to user during the card playing phase. The Main Game Panel is shown before the ...</div><div class="ttdef"><b>Definition</b> MainGamePanelWizard.h:16</div></div> +<div class="ttc" id="aclass_main_game_panel_wizard_html_a6ba532223a22fe5458e3f94a70e2bbf6"><div class="ttname"><a href="class_main_game_panel_wizard.html#a6ba532223a22fe5458e3f94a70e2bbf6">MainGamePanelWizard::MainGamePanelWizard</a></div><div class="ttdeci">MainGamePanelWizard(wxWindow *parent)</div><div class="ttdoc">Constructs main game panel.</div><div class="ttdef"><b>Definition</b> MainGamePanelWizard.cpp:23</div></div> +<div class="ttc" id="aclass_main_game_panel_wizard_html_a83517cab2cccba78cce79450de3bb7f3"><div class="ttname"><a href="class_main_game_panel_wizard.html#a83517cab2cccba78cce79450de3bb7f3">MainGamePanelWizard::buildGameState</a></div><div class="ttdeci">void buildGameState(game_state *gameState, player *me)</div><div class="ttdoc">Shows the game state in the GUI the client gets from the server. This function is called by the game ...</div><div class="ttdef"><b>Definition</b> MainGamePanelWizard.cpp:28</div></div> <div class="ttc" id="aclassgame__state_html"><div class="ttname"><a href="classgame__state.html">game_state</a></div><div class="ttdoc">Represents the state of the game.</div><div class="ttdef"><b>Definition</b> game_state.h:27</div></div> <div class="ttc" id="aclassplayer_html"><div class="ttname"><a href="classplayer.html">player</a></div><div class="ttdoc">Represents a player in the game.</div><div class="ttdef"><b>Definition</b> player.h:18</div></div> </div><!-- fragment --></div><!-- contents --> diff --git a/html/_trick_estimation_panel_8h_source.html b/html/_trick_estimation_panel_8h_source.html index 0467c3f910d4b9c9162860ef0ff7319953664e39..a8645e7fda5f3e5718e5cc4758fdf595783b8ccf 100644 --- a/html/_trick_estimation_panel_8h_source.html +++ b/html/_trick_estimation_panel_8h_source.html @@ -122,7 +122,7 @@ $(function(){ initResizable(false); }); <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">void</span> buildThisPlayer(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <a class="code hl_class" href="classplayer.html">player</a>* me);</div> <div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">void</span> buildOtherPlayers(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState, <span class="keywordtype">int</span> myPosition);</div> <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div> -<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">void</span> buildScoreBoardButton(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState);</div> +<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordtype">void</span> buildScoreLeaveButtons(wxGridBagSizer* sizer, <a class="code hl_class" href="classgame__state.html">game_state</a>* gameState);</div> <div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div> <div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_class" href="class_input_field.html">InputField</a>* _trickEstimateField;</div> <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span>};</div> diff --git a/html/annotated.html b/html/annotated.html index 6682dd8eb427e9902f9629200b9d03eaed5628fd..3bc8efdab0bc4cfb416d5e31c00da19bfafe3673 100644 --- a/html/annotated.html +++ b/html/annotated.html @@ -102,10 +102,10 @@ $(function(){ initResizable(false); }); <tr id="row_7_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_error_dialog.html" target="_self">ErrorDialog</a></td><td class="desc"></td></tr> <tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classestimate__tricks__request.html" target="_self">estimate_tricks_request</a></td><td class="desc"></td></tr> <tr id="row_9_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classfull__state__response.html" target="_self">full_state_response</a></td><td class="desc"></td></tr> -<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgame__instance.html" target="_self">game_instance</a></td><td class="desc"></td></tr> +<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgame__instance.html" target="_self">game_instance</a></td><td class="desc">Class that modifies game state based on content received from client. The game instance functionalities are called by the request handler via the game instance manager. It handles the final step of interacting with the game instance (and the actual game logic) </td></tr> <tr id="row_11_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgame__instance__manager.html" target="_self">game_instance_manager</a></td><td class="desc"></td></tr> <tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgame__state.html" target="_self">game_state</a></td><td class="desc">Represents the state of the game </td></tr> -<tr id="row_13_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_game_controller.html" target="_self">GameController</a></td><td class="desc"></td></tr> +<tr id="row_13_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_game_controller.html" target="_self">GameController</a></td><td class="desc">Controls visualization of the game state and processes client actions </td></tr> <tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_game_window.html" target="_self">GameWindow</a></td><td class="desc"></td></tr> <tr id="row_15_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classhand.html" target="_self">hand</a></td><td class="desc">Represents a player's hand in the game </td></tr> <tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_image_panel.html" target="_self">ImagePanel</a></td><td class="desc"></td></tr> @@ -113,7 +113,7 @@ $(function(){ initResizable(false); }); <tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classjoin__game__request.html" target="_self">join_game_request</a></td><td class="desc"></td></tr> <tr id="row_19_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classjson__utils.html" target="_self">json_utils</a></td><td class="desc"></td></tr> <tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classleave__game__request.html" target="_self">leave_game_request</a></td><td class="desc"></td></tr> -<tr id="row_21_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_game_panel_wizard.html" target="_self">MainGamePanelWizard</a></td><td class="desc"></td></tr> +<tr id="row_21_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_game_panel_wizard.html" target="_self">MainGamePanelWizard</a></td><td class="desc">Visualizes Game State to user during the card playing phase. The Main Game Panel is shown before the game has started (Lobby) and also while the game is played (outside the trick estimation phase). It ensures that the game state is shown to all players in the GUI, and creates and positions all graphical elements. It also allows interaction of the user with the GUI via button clicks </td></tr> <tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classplay__card__request.html" target="_self">play_card_request</a></td><td class="desc"></td></tr> <tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classplayer.html" target="_self">player</a></td><td class="desc">Represents a player in the game </td></tr> <tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classplayer__manager.html" target="_self">player_manager</a></td><td class="desc"></td></tr> diff --git a/html/class_game_controller-members.html b/html/class_game_controller-members.html index 37a2f25b44c2a502285d242cb3ba69ae0e106df7..6aa6a478996ed3c7ffcf71b4cd8bfe8a5d4733d0 100644 --- a/html/class_game_controller-members.html +++ b/html/class_game_controller-members.html @@ -91,20 +91,21 @@ $(function(){ initResizable(false); }); <p>This is the complete list of members for <a class="el" href="class_game_controller.html">GameController</a>, including all inherited members.</p> <table class="directory"> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>connectToServer</b>() (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>estimateTrick</b>() (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>estimateTricks</b>(int nof_cards) (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>getMainThreadEventHandler</b>() (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>init</b>(GameWindow *gameWindow) (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>leaveGame</b>() (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>playCard</b>(card *cardToPlay) (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>showError</b>(const std::string &title, const std::string &message) (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>showGameOverMessage</b>() (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>showNewRoundMessage</b>(game_state *oldGameState, game_state *newGameState) (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>showStatus</b>(const std::string &message) (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>showTrickOverMessage</b>() (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>startGame</b>() (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>updateGameState</b>(game_state *newGameState) (defined in <a class="el" href="class_game_controller.html">GameController</a>)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="class_game_controller.html#a21eea505305d56439efb835e1e148c2f">closeGameWindow</a>()</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="class_game_controller.html#a023da21da545374ee46fb873149976c4">connectToServer</a>()</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="class_game_controller.html#abd110563d0f37f06096176c199d22055">estimateTricks</a>(int nof_tricks)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="class_game_controller.html#abec8c73ea01e4b7e01b2ca1d932e0c16">getMainThreadEventHandler</a>()</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="class_game_controller.html#a8889bad76bc35487d3391fb8a5791616">init</a>(GameWindow *gameWindow)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="class_game_controller.html#a8d42b2e41759bfd65cdebad87437369e">leaveGame</a>()</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="class_game_controller.html#a87b164e2094901861e5b47056634facc">playCard</a>(card *cardToPlay)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="class_game_controller.html#a5f1023f2029e5dbb25b795a0606e06a9">processEstimateTricks</a>()</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="class_game_controller.html#adf043f9026a62f634a873c9f9d292034">showError</a>(const std::string &title, const std::string &message)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="class_game_controller.html#abb91c546ab8400c1e2e9f2a2ccc8298f">showGameOverMessage</a>()</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="class_game_controller.html#a3c350056b82df662c946cb9119f11ced">showNewRoundMessage</a>(game_state *oldGameState, game_state *newGameState)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="class_game_controller.html#a6a43eb061a9882b3937fc88bb4794324">showStatus</a>(const std::string &message)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="class_game_controller.html#a8108659ad09724318c3a251d93bd5869">showTrickOverMessage</a>(const player *winner)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="class_game_controller.html#a8f30ab3ff471ac0a5c8b88dc7fea45f4">startGame</a>()</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="class_game_controller.html#a994773f79be8c9e8dc8c19ee2d389103">updateGameState</a>(game_state *newGameState)</td><td class="entry"><a class="el" href="class_game_controller.html">GameController</a></td><td class="entry"><span class="mlabel">static</span></td></tr> </table></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> diff --git a/html/class_game_controller.html b/html/class_game_controller.html index 51fd1477177fa2da8c9baf0dd8574b23316e5793..c42c06586df1924d687655a7e9ebe2ebfc367595 100644 --- a/html/class_game_controller.html +++ b/html/class_game_controller.html @@ -91,52 +91,372 @@ $(function(){ initResizable(false); }); <div class="headertitle"><div class="title">GameController Class Reference</div></div> </div><!--header--> <div class="contents"> + +<p>Controls visualization of the game state and processes client actions. + <a href="#details">More...</a></p> + +<p><code>#include <<a class="el" href="_game_controller_8h_source.html">GameController.h</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a> Static Public Member Functions</h2></td></tr> -<tr class="memitem:a8889bad76bc35487d3391fb8a5791616" id="r_a8889bad76bc35487d3391fb8a5791616"><td class="memItemLeft" align="right" valign="top"><a id="a8889bad76bc35487d3391fb8a5791616" name="a8889bad76bc35487d3391fb8a5791616"></a> -static void </td><td class="memItemRight" valign="bottom"><b>init</b> (<a class="el" href="class_game_window.html">GameWindow</a> *gameWindow)</td></tr> +<tr class="memitem:a8889bad76bc35487d3391fb8a5791616" id="r_a8889bad76bc35487d3391fb8a5791616"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a8889bad76bc35487d3391fb8a5791616">init</a> (<a class="el" href="class_game_window.html">GameWindow</a> *gameWindow)</td></tr> +<tr class="memdesc:a8889bad76bc35487d3391fb8a5791616"><td class="mdescLeft"> </td><td class="mdescRight">Initializes game window when a new Wizard-client is started. <br /></td></tr> <tr class="separator:a8889bad76bc35487d3391fb8a5791616"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a023da21da545374ee46fb873149976c4" id="r_a023da21da545374ee46fb873149976c4"><td class="memItemLeft" align="right" valign="top"><a id="a023da21da545374ee46fb873149976c4" name="a023da21da545374ee46fb873149976c4"></a> static void </td><td class="memItemRight" valign="bottom"><b>connectToServer</b> ()</td></tr> +<tr class="memdesc:a023da21da545374ee46fb873149976c4"><td class="mdescLeft"> </td><td class="mdescRight">Handles connection to server when a user joins a game. <br /></td></tr> <tr class="separator:a023da21da545374ee46fb873149976c4"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a994773f79be8c9e8dc8c19ee2d389103" id="r_a994773f79be8c9e8dc8c19ee2d389103"><td class="memItemLeft" align="right" valign="top"><a id="a994773f79be8c9e8dc8c19ee2d389103" name="a994773f79be8c9e8dc8c19ee2d389103"></a> -static void </td><td class="memItemRight" valign="bottom"><b>updateGameState</b> (<a class="el" href="classgame__state.html">game_state</a> *newGameState)</td></tr> +<tr class="memitem:a994773f79be8c9e8dc8c19ee2d389103" id="r_a994773f79be8c9e8dc8c19ee2d389103"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a994773f79be8c9e8dc8c19ee2d389103">updateGameState</a> (<a class="el" href="classgame__state.html">game_state</a> *newGameState)</td></tr> +<tr class="memdesc:a994773f79be8c9e8dc8c19ee2d389103"><td class="mdescLeft"> </td><td class="mdescRight">Updates game state whenever any player interacted with the server based on parameters of current game state. <br /></td></tr> <tr class="separator:a994773f79be8c9e8dc8c19ee2d389103"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8f30ab3ff471ac0a5c8b88dc7fea45f4" id="r_a8f30ab3ff471ac0a5c8b88dc7fea45f4"><td class="memItemLeft" align="right" valign="top"><a id="a8f30ab3ff471ac0a5c8b88dc7fea45f4" name="a8f30ab3ff471ac0a5c8b88dc7fea45f4"></a> static void </td><td class="memItemRight" valign="bottom"><b>startGame</b> ()</td></tr> +<tr class="memdesc:a8f30ab3ff471ac0a5c8b88dc7fea45f4"><td class="mdescLeft"> </td><td class="mdescRight">Send out 'start game' request to server. <br /></td></tr> <tr class="separator:a8f30ab3ff471ac0a5c8b88dc7fea45f4"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a987fed0a0d9158efd69428b87b9132e9" id="r_a987fed0a0d9158efd69428b87b9132e9"><td class="memItemLeft" align="right" valign="top"><a id="a987fed0a0d9158efd69428b87b9132e9" name="a987fed0a0d9158efd69428b87b9132e9"></a> -static void </td><td class="memItemRight" valign="bottom"><b>estimateTricks</b> (int nof_cards)</td></tr> -<tr class="separator:a987fed0a0d9158efd69428b87b9132e9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8d42b2e41759bfd65cdebad87437369e" id="r_a8d42b2e41759bfd65cdebad87437369e"><td class="memItemLeft" align="right" valign="top"><a id="a8d42b2e41759bfd65cdebad87437369e" name="a8d42b2e41759bfd65cdebad87437369e"></a> static void </td><td class="memItemRight" valign="bottom"><b>leaveGame</b> ()</td></tr> +<tr class="memdesc:a8d42b2e41759bfd65cdebad87437369e"><td class="mdescLeft"> </td><td class="mdescRight">Send out 'leave game' request to server. <br /></td></tr> <tr class="separator:a8d42b2e41759bfd65cdebad87437369e"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a87b164e2094901861e5b47056634facc" id="r_a87b164e2094901861e5b47056634facc"><td class="memItemLeft" align="right" valign="top"><a id="a87b164e2094901861e5b47056634facc" name="a87b164e2094901861e5b47056634facc"></a> -static void </td><td class="memItemRight" valign="bottom"><b>playCard</b> (<a class="el" href="classcard.html">card</a> *cardToPlay)</td></tr> +<tr class="memitem:a5f1023f2029e5dbb25b795a0606e06a9" id="r_a5f1023f2029e5dbb25b795a0606e06a9"><td class="memItemLeft" align="right" valign="top"><a id="a5f1023f2029e5dbb25b795a0606e06a9" name="a5f1023f2029e5dbb25b795a0606e06a9"></a> +static void </td><td class="memItemRight" valign="bottom"><b>processEstimateTricks</b> ()</td></tr> +<tr class="memdesc:a5f1023f2029e5dbb25b795a0606e06a9"><td class="mdescLeft"> </td><td class="mdescRight">Process input from trick estimation panel and trigger estimateTricks function. <br /></td></tr> +<tr class="separator:a5f1023f2029e5dbb25b795a0606e06a9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:abd110563d0f37f06096176c199d22055" id="r_abd110563d0f37f06096176c199d22055"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="#abd110563d0f37f06096176c199d22055">estimateTricks</a> (int nof_tricks)</td></tr> +<tr class="memdesc:abd110563d0f37f06096176c199d22055"><td class="mdescLeft"> </td><td class="mdescRight">Send out 'estimate tricks' request to server. <br /></td></tr> +<tr class="separator:abd110563d0f37f06096176c199d22055"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a87b164e2094901861e5b47056634facc" id="r_a87b164e2094901861e5b47056634facc"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a87b164e2094901861e5b47056634facc">playCard</a> (<a class="el" href="classcard.html">card</a> *cardToPlay)</td></tr> +<tr class="memdesc:a87b164e2094901861e5b47056634facc"><td class="mdescLeft"> </td><td class="mdescRight">Send out 'play card' request to server. <br /></td></tr> <tr class="separator:a87b164e2094901861e5b47056634facc"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:aaabc13bc223e6c5760a96885843bf1a9" id="r_aaabc13bc223e6c5760a96885843bf1a9"><td class="memItemLeft" align="right" valign="top"><a id="aaabc13bc223e6c5760a96885843bf1a9" name="aaabc13bc223e6c5760a96885843bf1a9"></a> -static void </td><td class="memItemRight" valign="bottom"><b>estimateTrick</b> ()</td></tr> -<tr class="separator:aaabc13bc223e6c5760a96885843bf1a9"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:abec8c73ea01e4b7e01b2ca1d932e0c16" id="r_abec8c73ea01e4b7e01b2ca1d932e0c16"><td class="memItemLeft" align="right" valign="top"><a id="abec8c73ea01e4b7e01b2ca1d932e0c16" name="abec8c73ea01e4b7e01b2ca1d932e0c16"></a> -static wxEvtHandler * </td><td class="memItemRight" valign="bottom"><b>getMainThreadEventHandler</b> ()</td></tr> +<tr class="memitem:abec8c73ea01e4b7e01b2ca1d932e0c16" id="r_abec8c73ea01e4b7e01b2ca1d932e0c16"><td class="memItemLeft" align="right" valign="top">static wxEvtHandler * </td><td class="memItemRight" valign="bottom"><a class="el" href="#abec8c73ea01e4b7e01b2ca1d932e0c16">getMainThreadEventHandler</a> ()</td></tr> +<tr class="memdesc:abec8c73ea01e4b7e01b2ca1d932e0c16"><td class="mdescLeft"> </td><td class="mdescRight">Finds event handler for main thread. <br /></td></tr> <tr class="separator:abec8c73ea01e4b7e01b2ca1d932e0c16"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:adf043f9026a62f634a873c9f9d292034" id="r_adf043f9026a62f634a873c9f9d292034"><td class="memItemLeft" align="right" valign="top"><a id="adf043f9026a62f634a873c9f9d292034" name="adf043f9026a62f634a873c9f9d292034"></a> -static void </td><td class="memItemRight" valign="bottom"><b>showError</b> (const std::string &title, const std::string &message)</td></tr> +<tr class="memitem:adf043f9026a62f634a873c9f9d292034" id="r_adf043f9026a62f634a873c9f9d292034"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="#adf043f9026a62f634a873c9f9d292034">showError</a> (const std::string &title, const std::string &message)</td></tr> +<tr class="memdesc:adf043f9026a62f634a873c9f9d292034"><td class="mdescLeft"> </td><td class="mdescRight">Handles showing of error messages. <br /></td></tr> <tr class="separator:adf043f9026a62f634a873c9f9d292034"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a6a43eb061a9882b3937fc88bb4794324" id="r_a6a43eb061a9882b3937fc88bb4794324"><td class="memItemLeft" align="right" valign="top"><a id="a6a43eb061a9882b3937fc88bb4794324" name="a6a43eb061a9882b3937fc88bb4794324"></a> -static void </td><td class="memItemRight" valign="bottom"><b>showStatus</b> (const std::string &message)</td></tr> +<tr class="memitem:a6a43eb061a9882b3937fc88bb4794324" id="r_a6a43eb061a9882b3937fc88bb4794324"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a6a43eb061a9882b3937fc88bb4794324">showStatus</a> (const std::string &message)</td></tr> +<tr class="memdesc:a6a43eb061a9882b3937fc88bb4794324"><td class="mdescLeft"> </td><td class="mdescRight">Set status message. <br /></td></tr> <tr class="separator:a6a43eb061a9882b3937fc88bb4794324"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a3c350056b82df662c946cb9119f11ced" id="r_a3c350056b82df662c946cb9119f11ced"><td class="memItemLeft" align="right" valign="top"><a id="a3c350056b82df662c946cb9119f11ced" name="a3c350056b82df662c946cb9119f11ced"></a> -static void </td><td class="memItemRight" valign="bottom"><b>showNewRoundMessage</b> (<a class="el" href="classgame__state.html">game_state</a> *oldGameState, <a class="el" href="classgame__state.html">game_state</a> *newGameState)</td></tr> +<tr class="memitem:a3c350056b82df662c946cb9119f11ced" id="r_a3c350056b82df662c946cb9119f11ced"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a3c350056b82df662c946cb9119f11ced">showNewRoundMessage</a> (<a class="el" href="classgame__state.html">game_state</a> *oldGameState, <a class="el" href="classgame__state.html">game_state</a> *newGameState)</td></tr> +<tr class="memdesc:a3c350056b82df662c946cb9119f11ced"><td class="mdescLeft"> </td><td class="mdescRight">Shows message that round has finished and current scores of players at the end of a round. <br /></td></tr> <tr class="separator:a3c350056b82df662c946cb9119f11ced"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a43165cb5f259a99e9fa74a7250d05397" id="r_a43165cb5f259a99e9fa74a7250d05397"><td class="memItemLeft" align="right" valign="top"><a id="a43165cb5f259a99e9fa74a7250d05397" name="a43165cb5f259a99e9fa74a7250d05397"></a> -static void </td><td class="memItemRight" valign="bottom"><b>showTrickOverMessage</b> ()</td></tr> -<tr class="separator:a43165cb5f259a99e9fa74a7250d05397"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a8108659ad09724318c3a251d93bd5869" id="r_a8108659ad09724318c3a251d93bd5869"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a8108659ad09724318c3a251d93bd5869">showTrickOverMessage</a> (const <a class="el" href="classplayer.html">player</a> *winner)</td></tr> +<tr class="memdesc:a8108659ad09724318c3a251d93bd5869"><td class="mdescLeft"> </td><td class="mdescRight">Shows message at the end of each trick stating which player won the trick. <br /></td></tr> +<tr class="separator:a8108659ad09724318c3a251d93bd5869"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abb91c546ab8400c1e2e9f2a2ccc8298f" id="r_abb91c546ab8400c1e2e9f2a2ccc8298f"><td class="memItemLeft" align="right" valign="top"><a id="abb91c546ab8400c1e2e9f2a2ccc8298f" name="abb91c546ab8400c1e2e9f2a2ccc8298f"></a> static void </td><td class="memItemRight" valign="bottom"><b>showGameOverMessage</b> ()</td></tr> +<tr class="memdesc:abb91c546ab8400c1e2e9f2a2ccc8298f"><td class="mdescLeft"> </td><td class="mdescRight">Shows message at the end of the game that the game has ended and states the winner. <br /></td></tr> <tr class="separator:abb91c546ab8400c1e2e9f2a2ccc8298f"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a21eea505305d56439efb835e1e148c2f" id="r_a21eea505305d56439efb835e1e148c2f"><td class="memItemLeft" align="right" valign="top"><a id="a21eea505305d56439efb835e1e148c2f" name="a21eea505305d56439efb835e1e148c2f"></a> +static void </td><td class="memItemRight" valign="bottom"><b>closeGameWindow</b> ()</td></tr> +<tr class="memdesc:a21eea505305d56439efb835e1e148c2f"><td class="mdescLeft"> </td><td class="mdescRight">Closes game window. <br /></td></tr> +<tr class="separator:a21eea505305d56439efb835e1e148c2f"><td class="memSeparator" colspan="2"> </td></tr> +</table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Controls visualization of the game state and processes client actions. </p> +<p>This class handles the visualization of the game state a client received. It adapts the visualization based on the parameters found in the game state and reacts to interactions of a user with the GUI by sending out requests via the client network manager to the server. </p> +</div><h2 class="groupheader">Member Function Documentation</h2> +<a id="abd110563d0f37f06096176c199d22055" name="abd110563d0f37f06096176c199d22055"></a> +<h2 class="memtitle"><span class="permalink"><a href="#abd110563d0f37f06096176c199d22055">◆ </a></span>estimateTricks()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">void GameController::estimateTricks </td> + <td>(</td> + <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>nof_tricks</em></span></td><td>)</td> + <td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Send out 'estimate tricks' request to server. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">nof_tricks</td><td>Number of predicted tricks to win in the next round. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="abec8c73ea01e4b7e01b2ca1d932e0c16" name="abec8c73ea01e4b7e01b2ca1d932e0c16"></a> +<h2 class="memtitle"><span class="permalink"><a href="#abec8c73ea01e4b7e01b2ca1d932e0c16">◆ </a></span>getMainThreadEventHandler()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">wxEvtHandler * GameController::getMainThreadEventHandler </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Finds event handler for main thread. </p> +<dl class="section return"><dt>Returns</dt><dd>wxwidgets event handler </dd></dl> + +</div> +</div> +<a id="a8889bad76bc35487d3391fb8a5791616" name="a8889bad76bc35487d3391fb8a5791616"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8889bad76bc35487d3391fb8a5791616">◆ </a></span>init()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">void GameController::init </td> + <td>(</td> + <td class="paramtype"><a class="el" href="class_game_window.html">GameWindow</a> *</td> <td class="paramname"><span class="paramname"><em>gameWindow</em></span></td><td>)</td> + <td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Initializes game window when a new Wizard-client is started. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">gameWindow</td><td>The game window that needs to be initialized </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="a87b164e2094901861e5b47056634facc" name="a87b164e2094901861e5b47056634facc"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a87b164e2094901861e5b47056634facc">◆ </a></span>playCard()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">void GameController::playCard </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classcard.html">card</a> *</td> <td class="paramname"><span class="paramname"><em>cardToPlay</em></span></td><td>)</td> + <td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Send out 'play card' request to server. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">cardToPlay</td><td>Pointer to card that user chooses to play. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="adf043f9026a62f634a873c9f9d292034" name="adf043f9026a62f634a873c9f9d292034"></a> +<h2 class="memtitle"><span class="permalink"><a href="#adf043f9026a62f634a873c9f9d292034">◆ </a></span>showError()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">void GameController::showError </td> + <td>(</td> + <td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>title</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>message</em></span> )</td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> </table> +</div><div class="memdoc"> + +<p>Handles showing of error messages. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">title</td><td>Title of the error message. </td></tr> + <tr><td class="paramname">message</td><td>Text of the error message. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="a3c350056b82df662c946cb9119f11ced" name="a3c350056b82df662c946cb9119f11ced"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a3c350056b82df662c946cb9119f11ced">◆ </a></span>showNewRoundMessage()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">void GameController::showNewRoundMessage </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classgame__state.html">game_state</a> *</td> <td class="paramname"><span class="paramname"><em>oldGameState</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="classgame__state.html">game_state</a> *</td> <td class="paramname"><span class="paramname"><em>newGameState</em></span> )</td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Shows message that round has finished and current scores of players at the end of a round. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">oldGameState</td><td>Game state of last round. </td></tr> + <tr><td class="paramname">newGameState</td><td>Updated game state of new round. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="a6a43eb061a9882b3937fc88bb4794324" name="a6a43eb061a9882b3937fc88bb4794324"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a6a43eb061a9882b3937fc88bb4794324">◆ </a></span>showStatus()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">void GameController::showStatus </td> + <td>(</td> + <td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>message</em></span></td><td>)</td> + <td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Set status message. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">message</td><td>Text of status message. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="a8108659ad09724318c3a251d93bd5869" name="a8108659ad09724318c3a251d93bd5869"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a8108659ad09724318c3a251d93bd5869">◆ </a></span>showTrickOverMessage()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">void GameController::showTrickOverMessage </td> + <td>(</td> + <td class="paramtype">const <a class="el" href="classplayer.html">player</a> *</td> <td class="paramname"><span class="paramname"><em>winner</em></span></td><td>)</td> + <td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Shows message at the end of each trick stating which player won the trick. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">winner</td><td>Winner of the trick. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<a id="a994773f79be8c9e8dc8c19ee2d389103" name="a994773f79be8c9e8dc8c19ee2d389103"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a994773f79be8c9e8dc8c19ee2d389103">◆ </a></span>updateGameState()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">void GameController::updateGameState </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classgame__state.html">game_state</a> *</td> <td class="paramname"><span class="paramname"><em>newGameState</em></span></td><td>)</td> + <td></td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">static</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Updates game state whenever any player interacted with the server based on parameters of current game state. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">newGameState</td><td>The new game state send from the server. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> <hr/>The documentation for this class was generated from the following files:<ul> <li>src/client/<a class="el" href="_game_controller_8h_source.html">GameController.h</a></li> <li>src/client/<b>GameController.cpp</b></li> diff --git a/html/class_main_game_panel_wizard-members.html b/html/class_main_game_panel_wizard-members.html index 1b837d47aaf38ad11535b21ab6fd896dcec39807..7a5525d5630b9e2a387d47ae6cac1d1c488c91af 100644 --- a/html/class_main_game_panel_wizard-members.html +++ b/html/class_main_game_panel_wizard-members.html @@ -91,8 +91,8 @@ $(function(){ initResizable(false); }); <p>This is the complete list of members for <a class="el" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a>, including all inherited members.</p> <table class="directory"> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>buildGameState</b>(game_state *gameState, player *me) (defined in <a class="el" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a>)</td><td class="entry"><a class="el" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>MainGamePanelWizard</b>(wxWindow *parent) (defined in <a class="el" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a>)</td><td class="entry"><a class="el" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="class_main_game_panel_wizard.html#a83517cab2cccba78cce79450de3bb7f3">buildGameState</a>(game_state *gameState, player *me)</td><td class="entry"><a class="el" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="class_main_game_panel_wizard.html#a6ba532223a22fe5458e3f94a70e2bbf6">MainGamePanelWizard</a>(wxWindow *parent)</td><td class="entry"><a class="el" href="class_main_game_panel_wizard.html">MainGamePanelWizard</a></td><td class="entry"></td></tr> </table></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> diff --git a/html/class_main_game_panel_wizard.html b/html/class_main_game_panel_wizard.html index 2cf3987d6b9e3dfde2e763a0e3d7f7b23836bd73..a8f8077de2157052adfdef04e031bfef66f12b47 100644 --- a/html/class_main_game_panel_wizard.html +++ b/html/class_main_game_panel_wizard.html @@ -91,6 +91,11 @@ $(function(){ initResizable(false); }); <div class="headertitle"><div class="title">MainGamePanelWizard Class Reference</div></div> </div><!--header--> <div class="contents"> + +<p>Visualizes Game State to user during the card playing phase. The Main Game Panel is shown before the game has started (Lobby) and also while the game is played (outside the trick estimation phase). It ensures that the game state is shown to all players in the GUI, and creates and positions all graphical elements. It also allows interaction of the user with the GUI via button clicks. + <a href="#details">More...</a></p> + +<p><code>#include <<a class="el" href="_main_game_panel_wizard_8h_source.html">MainGamePanelWizard.h</a>></code></p> <div class="dynheader"> Inheritance diagram for MainGamePanelWizard:</div> <div class="dyncontent"> @@ -100,13 +105,72 @@ Inheritance diagram for MainGamePanelWizard:</div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a> Public Member Functions</h2></td></tr> -<tr class="memitem:a6ba532223a22fe5458e3f94a70e2bbf6" id="r_a6ba532223a22fe5458e3f94a70e2bbf6"><td class="memItemLeft" align="right" valign="top"><a id="a6ba532223a22fe5458e3f94a70e2bbf6" name="a6ba532223a22fe5458e3f94a70e2bbf6"></a> - </td><td class="memItemRight" valign="bottom"><b>MainGamePanelWizard</b> (wxWindow *parent)</td></tr> +<tr class="memitem:a6ba532223a22fe5458e3f94a70e2bbf6" id="r_a6ba532223a22fe5458e3f94a70e2bbf6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="#a6ba532223a22fe5458e3f94a70e2bbf6">MainGamePanelWizard</a> (wxWindow *parent)</td></tr> +<tr class="memdesc:a6ba532223a22fe5458e3f94a70e2bbf6"><td class="mdescLeft"> </td><td class="mdescRight">Constructs main game panel. <br /></td></tr> <tr class="separator:a6ba532223a22fe5458e3f94a70e2bbf6"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a83517cab2cccba78cce79450de3bb7f3" id="r_a83517cab2cccba78cce79450de3bb7f3"><td class="memItemLeft" align="right" valign="top"><a id="a83517cab2cccba78cce79450de3bb7f3" name="a83517cab2cccba78cce79450de3bb7f3"></a> -void </td><td class="memItemRight" valign="bottom"><b>buildGameState</b> (<a class="el" href="classgame__state.html">game_state</a> *gameState, <a class="el" href="classplayer.html">player</a> *me)</td></tr> +<tr class="memitem:a83517cab2cccba78cce79450de3bb7f3" id="r_a83517cab2cccba78cce79450de3bb7f3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a83517cab2cccba78cce79450de3bb7f3">buildGameState</a> (<a class="el" href="classgame__state.html">game_state</a> *gameState, <a class="el" href="classplayer.html">player</a> *me)</td></tr> +<tr class="memdesc:a83517cab2cccba78cce79450de3bb7f3"><td class="mdescLeft"> </td><td class="mdescRight">Shows the game state in the GUI the client gets from the server. This function is called by the game controller to update the shown game state. <br /></td></tr> <tr class="separator:a83517cab2cccba78cce79450de3bb7f3"><td class="memSeparator" colspan="2"> </td></tr> </table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Visualizes Game State to user during the card playing phase. The Main Game Panel is shown before the game has started (Lobby) and also while the game is played (outside the trick estimation phase). It ensures that the game state is shown to all players in the GUI, and creates and positions all graphical elements. It also allows interaction of the user with the GUI via button clicks. </p> +</div><h2 class="groupheader">Constructor & Destructor Documentation</h2> +<a id="a6ba532223a22fe5458e3f94a70e2bbf6" name="a6ba532223a22fe5458e3f94a70e2bbf6"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a6ba532223a22fe5458e3f94a70e2bbf6">◆ </a></span>MainGamePanelWizard()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">MainGamePanelWizard::MainGamePanelWizard </td> + <td>(</td> + <td class="paramtype">wxWindow *</td> <td class="paramname"><span class="paramname"><em>parent</em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Constructs main game panel. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">parent</td><td>Game window the main game panel is put onto. </td></tr> + </table> + </dd> +</dl> + +</div> +</div> +<h2 class="groupheader">Member Function Documentation</h2> +<a id="a83517cab2cccba78cce79450de3bb7f3" name="a83517cab2cccba78cce79450de3bb7f3"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a83517cab2cccba78cce79450de3bb7f3">◆ </a></span>buildGameState()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void MainGamePanelWizard::buildGameState </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classgame__state.html">game_state</a> *</td> <td class="paramname"><span class="paramname"><em>gameState</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="classplayer.html">player</a> *</td> <td class="paramname"><span class="paramname"><em>me</em></span> )</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Shows the game state in the GUI the client gets from the server. This function is called by the game controller to update the shown game state. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">gameState</td><td>New game state to show. </td></tr> + <tr><td class="paramname">me</td><td>Player to show the game state for (me). </td></tr> + </table> + </dd> +</dl> + +</div> +</div> <hr/>The documentation for this class was generated from the following files:<ul> <li>src/client/panels/<a class="el" href="_main_game_panel_wizard_8h_source.html">MainGamePanelWizard.h</a></li> <li>src/client/panels/<b>MainGamePanelWizard.cpp</b></li> diff --git a/html/classgame__instance-members.html b/html/classgame__instance-members.html index 99b06c75df4701691c2fc11e5c5c5e012e8344d4..8aa7005f56a9db0c6a50aae3f77498ef63fb3bd4 100644 --- a/html/classgame__instance-members.html +++ b/html/classgame__instance-members.html @@ -91,18 +91,18 @@ $(function(){ initResizable(false); }); <p>This is the complete list of members for <a class="el" href="classgame__instance.html">game_instance</a>, including all inherited members.</p> <table class="directory"> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>estimate_tricks</b>(player *player, std::string &err, int nof_tricks) (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>game_instance</b>() (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_game_state</b>() (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>get_id</b>() (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>is_finished</b>() (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>is_full</b>() (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>is_started</b>() (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>play_card</b>(player *player, const std::string &card_id, std::string &err) (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>start_game</b>(player *player, std::string &err) (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>try_add_player</b>(player *new_player, std::string &err) (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>try_remove_player</b>(player *player, std::string &err) (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~game_instance</b>() (defined in <a class="el" href="classgame__instance.html">game_instance</a>)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__instance.html#af1434756e3041deca68b4f4f84176f05">estimate_tricks</a>(player *player, std::string &err, int nof_tricks)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__instance.html#a2b1d00adf8c933a98698f972827e48b9">game_instance</a>()</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__instance.html#a852c73a12031d7fbd2095530df595c5c">get_game_state</a>()</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__instance.html#a72cd93738171ffc856c3d77df5f967da">get_id</a>()</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__instance.html#a5a080dfced3d2d1c697e36160b996a9c">is_finished</a>()</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__instance.html#a77d1f40b8727c74f278efe9168f26831">is_full</a>()</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__instance.html#a2c8a8be71f8c3016075cc08768ebbb64">is_started</a>()</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__instance.html#a1a7e19a4b0907cb0b5f1523edb7e68ca">play_card</a>(player *player, const std::string &card_id, std::string &err)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__instance.html#aee2eedd24991ce59dbcf2ec4f6cae8ac">start_game</a>(player *player, std::string &err)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__instance.html#a1176ce8464586487f9ae5676ca900e10">try_add_player</a>(player *new_player, std::string &err)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__instance.html#a2c6fed45a14273b09a9f202481fa62aa">try_remove_player</a>(player *player, std::string &err)</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__instance.html#a1fa390603341beb15e09e5a4b03465c1">~game_instance</a>()</td><td class="entry"><a class="el" href="classgame__instance.html">game_instance</a></td><td class="entry"><span class="mlabel">inline</span></td></tr> </table></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> diff --git a/html/classgame__instance.html b/html/classgame__instance.html index 5f46b677006487368a0cfd4f9dc41c14c1cee6ad..11fb8d5b90c0fda742c0f185ae2ca5a5c0f00dc7 100644 --- a/html/classgame__instance.html +++ b/html/classgame__instance.html @@ -91,40 +91,323 @@ $(function(){ initResizable(false); }); <div class="headertitle"><div class="title">game_instance Class Reference</div></div> </div><!--header--> <div class="contents"> + +<p>Class that modifies game state based on content received from client. The game instance functionalities are called by the request handler via the game instance manager. It handles the final step of interacting with the game instance (and the actual game logic). + <a href="#details">More...</a></p> + +<p><code>#include <<a class="el" href="game__instance_8h_source.html">game_instance.h</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a> Public Member Functions</h2></td></tr> -<tr class="memitem:a72cd93738171ffc856c3d77df5f967da" id="r_a72cd93738171ffc856c3d77df5f967da"><td class="memItemLeft" align="right" valign="top"><a id="a72cd93738171ffc856c3d77df5f967da" name="a72cd93738171ffc856c3d77df5f967da"></a> -std::string </td><td class="memItemRight" valign="bottom"><b>get_id</b> ()</td></tr> +<tr class="memitem:a2b1d00adf8c933a98698f972827e48b9" id="r_a2b1d00adf8c933a98698f972827e48b9"><td class="memItemLeft" align="right" valign="top"><a id="a2b1d00adf8c933a98698f972827e48b9" name="a2b1d00adf8c933a98698f972827e48b9"></a> + </td><td class="memItemRight" valign="bottom"><b>game_instance</b> ()</td></tr> +<tr class="memdesc:a2b1d00adf8c933a98698f972827e48b9"><td class="mdescLeft"> </td><td class="mdescRight">Constructs a new game instance object. <br /></td></tr> +<tr class="separator:a2b1d00adf8c933a98698f972827e48b9"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a1fa390603341beb15e09e5a4b03465c1" id="r_a1fa390603341beb15e09e5a4b03465c1"><td class="memItemLeft" align="right" valign="top"><a id="a1fa390603341beb15e09e5a4b03465c1" name="a1fa390603341beb15e09e5a4b03465c1"></a> + </td><td class="memItemRight" valign="bottom"><b>~game_instance</b> ()</td></tr> +<tr class="memdesc:a1fa390603341beb15e09e5a4b03465c1"><td class="mdescLeft"> </td><td class="mdescRight">Destructs game instance object. <br /></td></tr> +<tr class="separator:a1fa390603341beb15e09e5a4b03465c1"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a72cd93738171ffc856c3d77df5f967da" id="r_a72cd93738171ffc856c3d77df5f967da"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="#a72cd93738171ffc856c3d77df5f967da">get_id</a> ()</td></tr> +<tr class="memdesc:a72cd93738171ffc856c3d77df5f967da"><td class="mdescLeft"> </td><td class="mdescRight">Accessor of game instance id. <br /></td></tr> <tr class="separator:a72cd93738171ffc856c3d77df5f967da"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a852c73a12031d7fbd2095530df595c5c" id="r_a852c73a12031d7fbd2095530df595c5c"><td class="memItemLeft" align="right" valign="top"><a id="a852c73a12031d7fbd2095530df595c5c" name="a852c73a12031d7fbd2095530df595c5c"></a> -<a class="el" href="classgame__state.html">game_state</a> * </td><td class="memItemRight" valign="bottom"><b>get_game_state</b> ()</td></tr> +<tr class="memitem:a852c73a12031d7fbd2095530df595c5c" id="r_a852c73a12031d7fbd2095530df595c5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgame__state.html">game_state</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a852c73a12031d7fbd2095530df595c5c">get_game_state</a> ()</td></tr> +<tr class="memdesc:a852c73a12031d7fbd2095530df595c5c"><td class="mdescLeft"> </td><td class="mdescRight">Accessor of current game state. <br /></td></tr> <tr class="separator:a852c73a12031d7fbd2095530df595c5c"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a77d1f40b8727c74f278efe9168f26831" id="r_a77d1f40b8727c74f278efe9168f26831"><td class="memItemLeft" align="right" valign="top"><a id="a77d1f40b8727c74f278efe9168f26831" name="a77d1f40b8727c74f278efe9168f26831"></a> -bool </td><td class="memItemRight" valign="bottom"><b>is_full</b> ()</td></tr> +<tr class="memitem:a77d1f40b8727c74f278efe9168f26831" id="r_a77d1f40b8727c74f278efe9168f26831"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a77d1f40b8727c74f278efe9168f26831">is_full</a> ()</td></tr> +<tr class="memdesc:a77d1f40b8727c74f278efe9168f26831"><td class="mdescLeft"> </td><td class="mdescRight">Checks whether game is already full. The game is full if 6 players have joined already. <br /></td></tr> <tr class="separator:a77d1f40b8727c74f278efe9168f26831"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a2c8a8be71f8c3016075cc08768ebbb64" id="r_a2c8a8be71f8c3016075cc08768ebbb64"><td class="memItemLeft" align="right" valign="top"><a id="a2c8a8be71f8c3016075cc08768ebbb64" name="a2c8a8be71f8c3016075cc08768ebbb64"></a> -bool </td><td class="memItemRight" valign="bottom"><b>is_started</b> ()</td></tr> +<tr class="memitem:a2c8a8be71f8c3016075cc08768ebbb64" id="r_a2c8a8be71f8c3016075cc08768ebbb64"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2c8a8be71f8c3016075cc08768ebbb64">is_started</a> ()</td></tr> +<tr class="memdesc:a2c8a8be71f8c3016075cc08768ebbb64"><td class="mdescLeft"> </td><td class="mdescRight">Checks whether game is started. <br /></td></tr> <tr class="separator:a2c8a8be71f8c3016075cc08768ebbb64"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a5a080dfced3d2d1c697e36160b996a9c" id="r_a5a080dfced3d2d1c697e36160b996a9c"><td class="memItemLeft" align="right" valign="top"><a id="a5a080dfced3d2d1c697e36160b996a9c" name="a5a080dfced3d2d1c697e36160b996a9c"></a> -bool </td><td class="memItemRight" valign="bottom"><b>is_finished</b> ()</td></tr> +<tr class="memitem:a5a080dfced3d2d1c697e36160b996a9c" id="r_a5a080dfced3d2d1c697e36160b996a9c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a5a080dfced3d2d1c697e36160b996a9c">is_finished</a> ()</td></tr> +<tr class="memdesc:a5a080dfced3d2d1c697e36160b996a9c"><td class="mdescLeft"> </td><td class="mdescRight">Checks whether game is finished. <br /></td></tr> <tr class="separator:a5a080dfced3d2d1c697e36160b996a9c"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:aee2eedd24991ce59dbcf2ec4f6cae8ac" id="r_aee2eedd24991ce59dbcf2ec4f6cae8ac"><td class="memItemLeft" align="right" valign="top"><a id="aee2eedd24991ce59dbcf2ec4f6cae8ac" name="aee2eedd24991ce59dbcf2ec4f6cae8ac"></a> -bool </td><td class="memItemRight" valign="bottom"><b>start_game</b> (<a class="el" href="classplayer.html">player</a> *<a class="el" href="classplayer.html">player</a>, std::string &err)</td></tr> +<tr class="memitem:aee2eedd24991ce59dbcf2ec4f6cae8ac" id="r_aee2eedd24991ce59dbcf2ec4f6cae8ac"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#aee2eedd24991ce59dbcf2ec4f6cae8ac">start_game</a> (<a class="el" href="classplayer.html">player</a> *<a class="el" href="classplayer.html">player</a>, std::string &err)</td></tr> +<tr class="memdesc:aee2eedd24991ce59dbcf2ec4f6cae8ac"><td class="mdescLeft"> </td><td class="mdescRight">Attempts to start the game. <br /></td></tr> <tr class="separator:aee2eedd24991ce59dbcf2ec4f6cae8ac"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a1176ce8464586487f9ae5676ca900e10" id="r_a1176ce8464586487f9ae5676ca900e10"><td class="memItemLeft" align="right" valign="top"><a id="a1176ce8464586487f9ae5676ca900e10" name="a1176ce8464586487f9ae5676ca900e10"></a> -bool </td><td class="memItemRight" valign="bottom"><b>try_add_player</b> (<a class="el" href="classplayer.html">player</a> *new_player, std::string &err)</td></tr> +<tr class="memitem:a1176ce8464586487f9ae5676ca900e10" id="r_a1176ce8464586487f9ae5676ca900e10"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1176ce8464586487f9ae5676ca900e10">try_add_player</a> (<a class="el" href="classplayer.html">player</a> *new_player, std::string &err)</td></tr> +<tr class="memdesc:a1176ce8464586487f9ae5676ca900e10"><td class="mdescLeft"> </td><td class="mdescRight">Attempts to add player to the game. <br /></td></tr> <tr class="separator:a1176ce8464586487f9ae5676ca900e10"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a2c6fed45a14273b09a9f202481fa62aa" id="r_a2c6fed45a14273b09a9f202481fa62aa"><td class="memItemLeft" align="right" valign="top"><a id="a2c6fed45a14273b09a9f202481fa62aa" name="a2c6fed45a14273b09a9f202481fa62aa"></a> -bool </td><td class="memItemRight" valign="bottom"><b>try_remove_player</b> (<a class="el" href="classplayer.html">player</a> *<a class="el" href="classplayer.html">player</a>, std::string &err)</td></tr> +<tr class="memitem:a2c6fed45a14273b09a9f202481fa62aa" id="r_a2c6fed45a14273b09a9f202481fa62aa"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2c6fed45a14273b09a9f202481fa62aa">try_remove_player</a> (<a class="el" href="classplayer.html">player</a> *<a class="el" href="classplayer.html">player</a>, std::string &err)</td></tr> +<tr class="memdesc:a2c6fed45a14273b09a9f202481fa62aa"><td class="mdescLeft"> </td><td class="mdescRight">Attempts to remove player from the game. If the game hasn't started yet, the player can be easily removed from the game. If the game has already started it is finished immediately. <br /></td></tr> <tr class="separator:a2c6fed45a14273b09a9f202481fa62aa"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:a1a7e19a4b0907cb0b5f1523edb7e68ca" id="r_a1a7e19a4b0907cb0b5f1523edb7e68ca"><td class="memItemLeft" align="right" valign="top"><a id="a1a7e19a4b0907cb0b5f1523edb7e68ca" name="a1a7e19a4b0907cb0b5f1523edb7e68ca"></a> -bool </td><td class="memItemRight" valign="bottom"><b>play_card</b> (<a class="el" href="classplayer.html">player</a> *<a class="el" href="classplayer.html">player</a>, const std::string &card_id, std::string &err)</td></tr> +<tr class="memitem:a1a7e19a4b0907cb0b5f1523edb7e68ca" id="r_a1a7e19a4b0907cb0b5f1523edb7e68ca"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1a7e19a4b0907cb0b5f1523edb7e68ca">play_card</a> (<a class="el" href="classplayer.html">player</a> *<a class="el" href="classplayer.html">player</a>, const std::string &card_id, std::string &err)</td></tr> +<tr class="memdesc:a1a7e19a4b0907cb0b5f1523edb7e68ca"><td class="mdescLeft"> </td><td class="mdescRight">Attempts to play a card. <br /></td></tr> <tr class="separator:a1a7e19a4b0907cb0b5f1523edb7e68ca"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:af1434756e3041deca68b4f4f84176f05" id="r_af1434756e3041deca68b4f4f84176f05"><td class="memItemLeft" align="right" valign="top"><a id="af1434756e3041deca68b4f4f84176f05" name="af1434756e3041deca68b4f4f84176f05"></a> -bool </td><td class="memItemRight" valign="bottom"><b>estimate_tricks</b> (<a class="el" href="classplayer.html">player</a> *<a class="el" href="classplayer.html">player</a>, std::string &err, int nof_tricks)</td></tr> +<tr class="memitem:af1434756e3041deca68b4f4f84176f05" id="r_af1434756e3041deca68b4f4f84176f05"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#af1434756e3041deca68b4f4f84176f05">estimate_tricks</a> (<a class="el" href="classplayer.html">player</a> *<a class="el" href="classplayer.html">player</a>, std::string &err, int nof_tricks)</td></tr> +<tr class="memdesc:af1434756e3041deca68b4f4f84176f05"><td class="mdescLeft"> </td><td class="mdescRight">Attempts to estimate tricks. <br /></td></tr> <tr class="separator:af1434756e3041deca68b4f4f84176f05"><td class="memSeparator" colspan="2"> </td></tr> </table> +<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> +<div class="textblock"><p>Class that modifies game state based on content received from client. The game instance functionalities are called by the request handler via the game instance manager. It handles the final step of interacting with the game instance (and the actual game logic). </p> +</div><h2 class="groupheader">Member Function Documentation</h2> +<a id="af1434756e3041deca68b4f4f84176f05" name="af1434756e3041deca68b4f4f84176f05"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af1434756e3041deca68b4f4f84176f05">◆ </a></span>estimate_tricks()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool game_instance::estimate_tricks </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classplayer.html">player</a> *</td> <td class="paramname"><span class="paramname"><em>player</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">std::string &</td> <td class="paramname"><span class="paramname"><em>err</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>nof_tricks</em></span> )</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Attempts to estimate tricks. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">player</td><td>Pointer to player who estimates tricks. </td></tr> + <tr><td class="paramname">err</td><td>Error message which contains possible errors. </td></tr> + <tr><td class="paramname">nof_tricks</td><td>Predicted number of tricks to win. </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Boolean which states whether trick estimation was successful. </dd></dl> + +</div> +</div> +<a id="a852c73a12031d7fbd2095530df595c5c" name="a852c73a12031d7fbd2095530df595c5c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a852c73a12031d7fbd2095530df595c5c">◆ </a></span>get_game_state()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="classgame__state.html">game_state</a> * game_instance::get_game_state </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Accessor of current game state. </p> +<dl class="section return"><dt>Returns</dt><dd>Current game state. </dd></dl> + +</div> +</div> +<a id="a72cd93738171ffc856c3d77df5f967da" name="a72cd93738171ffc856c3d77df5f967da"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a72cd93738171ffc856c3d77df5f967da">◆ </a></span>get_id()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">std::string game_instance::get_id </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Accessor of game instance id. </p> +<dl class="section return"><dt>Returns</dt><dd>id of game instance </dd></dl> + +</div> +</div> +<a id="a5a080dfced3d2d1c697e36160b996a9c" name="a5a080dfced3d2d1c697e36160b996a9c"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a5a080dfced3d2d1c697e36160b996a9c">◆ </a></span>is_finished()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool game_instance::is_finished </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Checks whether game is finished. </p> +<dl class="section return"><dt>Returns</dt><dd>Boolean that states whether game is finished. </dd></dl> + +</div> +</div> +<a id="a77d1f40b8727c74f278efe9168f26831" name="a77d1f40b8727c74f278efe9168f26831"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a77d1f40b8727c74f278efe9168f26831">◆ </a></span>is_full()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool game_instance::is_full </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Checks whether game is already full. The game is full if 6 players have joined already. </p> +<dl class="section return"><dt>Returns</dt><dd>Boolean which states whether game is full. </dd></dl> + +</div> +</div> +<a id="a2c8a8be71f8c3016075cc08768ebbb64" name="a2c8a8be71f8c3016075cc08768ebbb64"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2c8a8be71f8c3016075cc08768ebbb64">◆ </a></span>is_started()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool game_instance::is_started </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Checks whether game is started. </p> +<dl class="section return"><dt>Returns</dt><dd>Boolean that states whether game is started. </dd></dl> + +</div> +</div> +<a id="a1a7e19a4b0907cb0b5f1523edb7e68ca" name="a1a7e19a4b0907cb0b5f1523edb7e68ca"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1a7e19a4b0907cb0b5f1523edb7e68ca">◆ </a></span>play_card()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool game_instance::play_card </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classplayer.html">player</a> *</td> <td class="paramname"><span class="paramname"><em>player</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>card_id</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">std::string &</td> <td class="paramname"><span class="paramname"><em>err</em></span> )</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Attempts to play a card. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">player</td><td>Pointer to player who plays the card. </td></tr> + <tr><td class="paramname">card_id</td><td>Id of the card. </td></tr> + <tr><td class="paramname">err</td><td>Error message which contains possible errors. </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Boolean which states whether card could be played successfully. </dd></dl> + +</div> +</div> +<a id="aee2eedd24991ce59dbcf2ec4f6cae8ac" name="aee2eedd24991ce59dbcf2ec4f6cae8ac"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aee2eedd24991ce59dbcf2ec4f6cae8ac">◆ </a></span>start_game()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool game_instance::start_game </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classplayer.html">player</a> *</td> <td class="paramname"><span class="paramname"><em>player</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">std::string &</td> <td class="paramname"><span class="paramname"><em>err</em></span> )</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Attempts to start the game. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">player</td><td>Player who started the game. </td></tr> + <tr><td class="paramname">err</td><td>Contains error message if something goes wrong while starting the game. </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Boolean that states whether game could be started successfully </dd></dl> + +</div> +</div> +<a id="a1176ce8464586487f9ae5676ca900e10" name="a1176ce8464586487f9ae5676ca900e10"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a1176ce8464586487f9ae5676ca900e10">◆ </a></span>try_add_player()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool game_instance::try_add_player </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classplayer.html">player</a> *</td> <td class="paramname"><span class="paramname"><em>new_player</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">std::string &</td> <td class="paramname"><span class="paramname"><em>err</em></span> )</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Attempts to add player to the game. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">new_player</td><td>Pointer to player that wants to join the game. </td></tr> + <tr><td class="paramname">err</td><td>Contains error message that possibly states what went wrong while joining the game. </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Boolean which states whether player could successfully join the game. </dd></dl> + +</div> +</div> +<a id="a2c6fed45a14273b09a9f202481fa62aa" name="a2c6fed45a14273b09a9f202481fa62aa"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a2c6fed45a14273b09a9f202481fa62aa">◆ </a></span>try_remove_player()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">bool game_instance::try_remove_player </td> + <td>(</td> + <td class="paramtype"><a class="el" href="classplayer.html">player</a> *</td> <td class="paramname"><span class="paramname"><em>player</em></span>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">std::string &</td> <td class="paramname"><span class="paramname"><em>err</em></span> )</td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Attempts to remove player from the game. If the game hasn't started yet, the player can be easily removed from the game. If the game has already started it is finished immediately. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">player</td><td>Pointer to player that leaves the game. </td></tr> + <tr><td class="paramname">err</td><td>Error message which states if the reason why the player couldn't leave the game if something went wrong. </td></tr> + </table> + </dd> +</dl> +<dl class="section return"><dt>Returns</dt><dd>Boolean which states whether the player successfully left the game. </dd></dl> + +</div> +</div> <hr/>The documentation for this class was generated from the following files:<ul> <li>src/server/<a class="el" href="game__instance_8h_source.html">game_instance.h</a></li> <li>src/server/<b>game_instance.cpp</b></li> diff --git a/html/classgame__state-members.html b/html/classgame__state-members.html index 3e88c3be61c52e432de35fa94f35471ddb36907e..5ee07ccf62255be682df7008ab6f103ebcf7cc8b 100644 --- a/html/classgame__state-members.html +++ b/html/classgame__state-members.html @@ -108,26 +108,27 @@ $(function(){ initResizable(false); }); <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282">get_trick_estimate_sum</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15">get_trick_number</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#aa40554d105939c5dce934daaa858c242">get_trick_starting_player</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4">get_trump_color</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">is_estimation_phase</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">is_finished</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">is_full</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a371d6a6d84395b90c15d84549b05d553">is_player_in_game</a>(player *player) const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">is_started</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">play_card</a>(player *player, const std::string &card_id, std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d">remove_player</a>(player *player, std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a745dd23945b6165470c494b036ac4667">set_trick</a>(trick *new_trick)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#ab520d4076c53f70a68bc19f355243a4d">setup_round</a>(std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">start_game</a>(std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>to_json</b>() const (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>unique_serializable</b>() (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>unique_serializable</b>(std::string id) (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d">update_current_player</a>(std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#ad2e967638043670ebae93dd6ec32e91e">wrap_up_round</a>(std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a54873cd18b46555915d150a6d8dd6f83">write_into_json</a>(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>write_into_json</b>(rapidjson::Value &json, rapidjson::MemoryPoolAllocator< rapidjson::CrtAllocator > &allocator) const override (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a2fbc370f93617298719f61514afdb5bc">~game_state</a>() override</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~serializable</b>()=default (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a115a9b1dbb65db44669363b407aa62ac">get_trump_card_value</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4">get_trump_color</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">is_estimation_phase</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">is_finished</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">is_full</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a371d6a6d84395b90c15d84549b05d553">is_player_in_game</a>(player *player) const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">is_started</a>() const</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">play_card</a>(player *player, const std::string &card_id, std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d">remove_player</a>(player *player, std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a745dd23945b6165470c494b036ac4667">set_trick</a>(trick *new_trick)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#ab520d4076c53f70a68bc19f355243a4d">setup_round</a>(std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">start_game</a>(std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>to_json</b>() const (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>unique_serializable</b>() (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> + <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>unique_serializable</b>(std::string id) (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d">update_current_player</a>(std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classgame__state.html#ad2e967638043670ebae93dd6ec32e91e">wrap_up_round</a>(std::string &err)</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a54873cd18b46555915d150a6d8dd6f83">write_into_json</a>(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> + <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>write_into_json</b>(rapidjson::Value &json, rapidjson::MemoryPoolAllocator< rapidjson::CrtAllocator > &allocator) const override (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classgame__state.html#a2fbc370f93617298719f61514afdb5bc">~game_state</a>() override</td><td class="entry"><a class="el" href="classgame__state.html">game_state</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~serializable</b>()=default (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> </table></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> diff --git a/html/classgame__state.html b/html/classgame__state.html index 7e99046801a4c6cd3c7dc3813b78209c50838c9c..812632b91c6ba81ce28845c30fd6d5f8ecba1274 100644 --- a/html/classgame__state.html +++ b/html/classgame__state.html @@ -146,6 +146,9 @@ Public Member Functions</h2></td></tr> <tr class="memitem:abdf6c5116ed643773d676c90a05e6fe4" id="r_abdf6c5116ed643773d676c90a05e6fe4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#abdf6c5116ed643773d676c90a05e6fe4">get_trump_color</a> () const</td></tr> <tr class="memdesc:abdf6c5116ed643773d676c90a05e6fe4"><td class="mdescLeft"> </td><td class="mdescRight">Gets the trump color. <br /></td></tr> <tr class="separator:abdf6c5116ed643773d676c90a05e6fe4"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a115a9b1dbb65db44669363b407aa62ac" id="r_a115a9b1dbb65db44669363b407aa62ac"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a115a9b1dbb65db44669363b407aa62ac">get_trump_card_value</a> () const</td></tr> +<tr class="memdesc:a115a9b1dbb65db44669363b407aa62ac"><td class="mdescLeft"> </td><td class="mdescRight">Gets the value of the trump card to display in GUI. <br /></td></tr> +<tr class="separator:a115a9b1dbb65db44669363b407aa62ac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2d16f420a8aa651685461a5efb8bb600" id="r_a2d16f420a8aa651685461a5efb8bb600"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classplayer.html">player</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2d16f420a8aa651685461a5efb8bb600">get_current_player</a> () const</td></tr> <tr class="memdesc:a2d16f420a8aa651685461a5efb8bb600"><td class="mdescLeft"> </td><td class="mdescRight">Gets the current player. <br /></td></tr> <tr class="separator:a2d16f420a8aa651685461a5efb8bb600"><td class="memSeparator" colspan="2"> </td></tr> @@ -660,6 +663,34 @@ std::string </td><td class="memItemRight" valign="bottom"><b>_id</b></td></ <p>Gets the starting player of the current trick. </p> <dl class="section return"><dt>Returns</dt><dd>The starting player of the current trick. </dd></dl> +</div> +</div> +<a id="a115a9b1dbb65db44669363b407aa62ac" name="a115a9b1dbb65db44669363b407aa62ac"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a115a9b1dbb65db44669363b407aa62ac">◆ </a></span>get_trump_card_value()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">int game_state::get_trump_card_value </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td> const</td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">nodiscard</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Gets the value of the trump card to display in GUI. </p> +<dl class="section return"><dt>Returns</dt><dd>The value of the trum card </dd></dl> + </div> </div> <a id="abdf6c5116ed643773d676c90a05e6fe4" name="abdf6c5116ed643773d676c90a05e6fe4"></a> diff --git a/html/classhand.html b/html/classhand.html index 8900a97ca8e7843577dd3df5c007586bc7f17a5d..df78b153eb4aac31ed25002b94c9cbbcd92a168f 100644 --- a/html/classhand.html +++ b/html/classhand.html @@ -133,12 +133,12 @@ Public Member Functions</h2></td></tr> <tr class="memitem:a0a50cbbb167e6a1d633dd48bc4b695fe" id="r_a0a50cbbb167e6a1d633dd48bc4b695fe"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a0a50cbbb167e6a1d633dd48bc4b695fe">try_get_card</a> (const std::string &card_id, <a class="el" href="classcard.html">card</a> *&hand_card) const</td></tr> <tr class="memdesc:a0a50cbbb167e6a1d633dd48bc4b695fe"><td class="mdescLeft"> </td><td class="mdescRight">Tries to get a specific card from the hand. <br /></td></tr> <tr class="separator:a0a50cbbb167e6a1d633dd48bc4b695fe"><td class="memSeparator" colspan="2"> </td></tr> -<tr class="memitem:ad4749893f36ff1d6dcda3bb18eaedffb" id="r_ad4749893f36ff1d6dcda3bb18eaedffb"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#ad4749893f36ff1d6dcda3bb18eaedffb">add_card</a> (<a class="el" href="classcard.html">card</a> *<a class="el" href="classcard.html">card</a>, std::string &err)</td></tr> -<tr class="memdesc:ad4749893f36ff1d6dcda3bb18eaedffb"><td class="mdescLeft"> </td><td class="mdescRight">Adds a card to the hand. <br /></td></tr> -<tr class="separator:ad4749893f36ff1d6dcda3bb18eaedffb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa466496b7ce0b58dbd63620535430439" id="r_aa466496b7ce0b58dbd63620535430439"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#aa466496b7ce0b58dbd63620535430439">remove_card</a> (std::string card_id, std::string &err)</td></tr> <tr class="memdesc:aa466496b7ce0b58dbd63620535430439"><td class="mdescLeft"> </td><td class="mdescRight">Removes a card from the hand. <br /></td></tr> <tr class="separator:aa466496b7ce0b58dbd63620535430439"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:ad4749893f36ff1d6dcda3bb18eaedffb" id="r_ad4749893f36ff1d6dcda3bb18eaedffb"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#ad4749893f36ff1d6dcda3bb18eaedffb">add_card</a> (<a class="el" href="classcard.html">card</a> *<a class="el" href="classcard.html">card</a>, std::string &err)</td></tr> +<tr class="memdesc:ad4749893f36ff1d6dcda3bb18eaedffb"><td class="mdescLeft"> </td><td class="mdescRight">Adds a card to the hand. <br /></td></tr> +<tr class="separator:ad4749893f36ff1d6dcda3bb18eaedffb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a505a82447d0ae305dadcc9c4aa54071e" id="r_a505a82447d0ae305dadcc9c4aa54071e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a505a82447d0ae305dadcc9c4aa54071e">write_into_json</a> (rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</td></tr> <tr class="memdesc:a505a82447d0ae305dadcc9c4aa54071e"><td class="mdescLeft"> </td><td class="mdescRight">Serializes a hand object into a json object. <br /></td></tr> <tr class="separator:a505a82447d0ae305dadcc9c4aa54071e"><td class="memSeparator" colspan="2"> </td></tr> diff --git a/html/classplayer-members.html b/html/classplayer-members.html index 65c6f6da28a3cb321cfad7f3b5b6464b7fdffc55..f3708c3d4ff3f0c8a28ad72ae427db6f3f863bee 100644 --- a/html/classplayer-members.html +++ b/html/classplayer-members.html @@ -102,21 +102,24 @@ $(function(){ initResizable(false); }); <tr class="even"><td class="entry"><a class="el" href="classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4">get_nof_tricks</a>() const noexcept</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773">get_player_name</a>() const noexcept</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac">get_scores</a>() const noexcept</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#a1f0916939a8caa2e7140d5c89a6aa718">player</a>(const std::string &name)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classplayer.html#aa97dd36228b56912bc5dad63f64e1ccf">player</a>(const std::string &id, const std::string &name)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#aa916eeacf97f00507f412fd91bfe37d4">set_game_id</a>(const std::string &game_id)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#aac1b87de3b686d8ee1049269f6c9f272">has_left_game</a>() const</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classplayer.html#a1f0916939a8caa2e7140d5c89a6aa718">player</a>(const std::string &name)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#aa97dd36228b56912bc5dad63f64e1ccf">player</a>(const std::string &id, const std::string &name)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classplayer.html#aa916eeacf97f00507f412fd91bfe37d4">set_game_id</a>(const std::string &game_id)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#a42f88a13ce2b65360f6ee95281a09173">set_has_left_game</a>(bool has_left_game)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7">set_nof_predicted</a>(int nof_predicted) const</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#a61aa38ceff0c856b36642c4bc0081433">set_nof_tricks</a>(int nof_tricks) const</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classplayer.html#af1d7e67eee27af87c01e43508a731bd4">set_scores</a>(int score)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#a8cc6464ca3284140c92c6983ee62a299">setup_round</a>() const</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>to_json</b>() const (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>unique_serializable</b>() (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>unique_serializable</b>(std::string id) (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#a193bcc63da13e5bc98eb46ed99381302">wrap_up_round</a>()</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc">write_into_json</a>(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>write_into_json</b>(rapidjson::Value &json, rapidjson::MemoryPoolAllocator< rapidjson::CrtAllocator > &allocator) const override (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad">~player</a>() override</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~serializable</b>()=default (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classplayer.html#af8f0b088e697fcb972bfc41302e63877">set_player_name</a>(const std::string &new_name)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#af1d7e67eee27af87c01e43508a731bd4">set_scores</a>(int score)</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classplayer.html#a8cc6464ca3284140c92c6983ee62a299">setup_round</a>() const</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>to_json</b>() const (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>unique_serializable</b>() (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> + <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>unique_serializable</b>(std::string id) (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classplayer.html#a193bcc63da13e5bc98eb46ed99381302">wrap_up_round</a>()</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc">write_into_json</a>(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>write_into_json</b>(rapidjson::Value &json, rapidjson::MemoryPoolAllocator< rapidjson::CrtAllocator > &allocator) const override (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad">~player</a>() override</td><td class="entry"><a class="el" href="classplayer.html">player</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~serializable</b>()=default (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> </table></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> diff --git a/html/classplayer.html b/html/classplayer.html index 4339acdc09a0a7ff3b4dbbedd4b4e52f53e3b0d1..fac74f8325cb2f34499af4788bbc2f5cf4f3e5ee 100644 --- a/html/classplayer.html +++ b/html/classplayer.html @@ -138,6 +138,12 @@ Public Member Functions</h2></td></tr> <tr class="memitem:a61aa38ceff0c856b36642c4bc0081433" id="r_a61aa38ceff0c856b36642c4bc0081433"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a61aa38ceff0c856b36642c4bc0081433">set_nof_tricks</a> (int nof_tricks) const</td></tr> <tr class="memdesc:a61aa38ceff0c856b36642c4bc0081433"><td class="mdescLeft"> </td><td class="mdescRight">Sets the player's number of won tricks to the given input. <br /></td></tr> <tr class="separator:a61aa38ceff0c856b36642c4bc0081433"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:aac1b87de3b686d8ee1049269f6c9f272" id="r_aac1b87de3b686d8ee1049269f6c9f272"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#aac1b87de3b686d8ee1049269f6c9f272">has_left_game</a> () const</td></tr> +<tr class="memdesc:aac1b87de3b686d8ee1049269f6c9f272"><td class="mdescLeft"> </td><td class="mdescRight">State whether player has left the game. <br /></td></tr> +<tr class="separator:aac1b87de3b686d8ee1049269f6c9f272"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a42f88a13ce2b65360f6ee95281a09173" id="r_a42f88a13ce2b65360f6ee95281a09173"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a42f88a13ce2b65360f6ee95281a09173">set_has_left_game</a> (bool <a class="el" href="#aac1b87de3b686d8ee1049269f6c9f272">has_left_game</a>)</td></tr> +<tr class="memdesc:a42f88a13ce2b65360f6ee95281a09173"><td class="mdescLeft"> </td><td class="mdescRight">Sets the players game to left when he leaves the game. <br /></td></tr> +<tr class="separator:a42f88a13ce2b65360f6ee95281a09173"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a40333c302ff51707749c544930fb80aa" id="r_a40333c302ff51707749c544930fb80aa"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a40333c302ff51707749c544930fb80aa">get_nof_predicted</a> () const noexcept</td></tr> <tr class="memdesc:a40333c302ff51707749c544930fb80aa"><td class="mdescLeft"> </td><td class="mdescRight">Gets the number of tricks predicted to be won by the player in the current round. <br /></td></tr> <tr class="separator:a40333c302ff51707749c544930fb80aa"><td class="memSeparator" colspan="2"> </td></tr> @@ -153,6 +159,9 @@ Public Member Functions</h2></td></tr> <tr class="memitem:a42d01dcf4cdbd452fc5dcaf5e6f21773" id="r_a42d01dcf4cdbd452fc5dcaf5e6f21773"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="#a42d01dcf4cdbd452fc5dcaf5e6f21773">get_player_name</a> () const noexcept</td></tr> <tr class="memdesc:a42d01dcf4cdbd452fc5dcaf5e6f21773"><td class="mdescLeft"> </td><td class="mdescRight">Gets the player's name. <br /></td></tr> <tr class="separator:a42d01dcf4cdbd452fc5dcaf5e6f21773"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:af8f0b088e697fcb972bfc41302e63877" id="r_af8f0b088e697fcb972bfc41302e63877"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#af8f0b088e697fcb972bfc41302e63877">set_player_name</a> (const std::string &new_name)</td></tr> +<tr class="memdesc:af8f0b088e697fcb972bfc41302e63877"><td class="mdescLeft"> </td><td class="mdescRight">Sets the player's name to the given input. <br /></td></tr> +<tr class="separator:af8f0b088e697fcb972bfc41302e63877"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab3b087d03dd2c81d893b2ffad459a26f" id="r_ab3b087d03dd2c81d893b2ffad459a26f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab3b087d03dd2c81d893b2ffad459a26f">add_card</a> (<a class="el" href="classcard.html">card</a> *<a class="el" href="classcard.html">card</a>, std::string &err) const</td></tr> <tr class="memdesc:ab3b087d03dd2c81d893b2ffad459a26f"><td class="mdescLeft"> </td><td class="mdescRight">Adds a card to the player's hand. <br /></td></tr> <tr class="separator:ab3b087d03dd2c81d893b2ffad459a26f"><td class="memSeparator" colspan="2"> </td></tr> @@ -513,6 +522,34 @@ std::string </td><td class="memItemRight" valign="bottom"><b>_id</b></td></ <p>Gets the scores of the player. </p> <dl class="section return"><dt>Returns</dt><dd>The scores of the player as a vector. </dd></dl> +</div> +</div> +<a id="aac1b87de3b686d8ee1049269f6c9f272" name="aac1b87de3b686d8ee1049269f6c9f272"></a> +<h2 class="memtitle"><span class="permalink"><a href="#aac1b87de3b686d8ee1049269f6c9f272">◆ </a></span>has_left_game()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname">bool player::has_left_game </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td> const</td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">nodiscard</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>State whether player has left the game. </p> +<dl class="section return"><dt>Returns</dt><dd>Boolean stating whether player has left the game. </dd></dl> + </div> </div> <a id="aa916eeacf97f00507f412fd91bfe37d4" name="aa916eeacf97f00507f412fd91bfe37d4"></a> @@ -538,6 +575,31 @@ std::string </td><td class="memItemRight" valign="bottom"><b>_id</b></td></ </dd> </dl> +</div> +</div> +<a id="a42f88a13ce2b65360f6ee95281a09173" name="a42f88a13ce2b65360f6ee95281a09173"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a42f88a13ce2b65360f6ee95281a09173">◆ </a></span>set_has_left_game()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void player::set_has_left_game </td> + <td>(</td> + <td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>has_left_game</em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sets the players game to left when he leaves the game. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">has_left_game</td><td>Boolean whether player has left game </td></tr> + </table> + </dd> +</dl> + </div> </div> <a id="a1a3ce0ac69cad799641f4d732435c3f7" name="a1a3ce0ac69cad799641f4d732435c3f7"></a> @@ -590,6 +652,32 @@ std::string </td><td class="memItemRight" valign="bottom"><b>_id</b></td></ </dl> <p>This function is used to update the player's won number of tricks in case a player wins a trick. </p> +</div> +</div> +<a id="af8f0b088e697fcb972bfc41302e63877" name="af8f0b088e697fcb972bfc41302e63877"></a> +<h2 class="memtitle"><span class="permalink"><a href="#af8f0b088e697fcb972bfc41302e63877">◆ </a></span>set_player_name()</h2> + +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void player::set_player_name </td> + <td>(</td> + <td class="paramtype">const std::string &</td> <td class="paramname"><span class="paramname"><em>new_name</em></span></td><td>)</td> + <td></td> + </tr> + </table> +</div><div class="memdoc"> + +<p>Sets the player's name to the given input. </p> +<dl class="params"><dt>Parameters</dt><dd> + <table class="params"> + <tr><td class="paramname">new_name</td><td>The new player name.</td></tr> + </table> + </dd> +</dl> +<p>This function is used to change the player's name in case duplicate names appear within one game. </p> + </div> </div> <a id="af1d7e67eee27af87c01e43508a731bd4" name="af1d7e67eee27af87c01e43508a731bd4"></a> diff --git a/html/classtrick-members.html b/html/classtrick-members.html index a4be8121fac0842077d38de6c2f280ff1265faaf..f295c9321a84c3ecfce0fc05cb4b59d28df39958 100644 --- a/html/classtrick-members.html +++ b/html/classtrick-members.html @@ -98,21 +98,22 @@ $(function(){ initResizable(false); }); <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>get_id</b>() const (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"></td></tr> <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#a41f315804ac73454c8e41438da20a9c3">get_trick_color</a>() const</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> <tr class="even"><td class="entry"><a class="el" href="classtrick.html#a69c49e2968abb235a6c7148cb05b0e64">get_trump_color</a>() const</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#a0f8c45882691509564ec42efed0d1aaa">set_trick_color</a>(int color) const</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00">set_up_round</a>(int trump, std::string &err)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>to_json</b>() const (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d">trick</a>()</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#ad55ad2f0462144ee39c0e6d392543a14">trick</a>(const trick &other)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classtrick.html#abb172ad9a476e96a754eea0c33e1eda9">trick</a>(const std::string &id)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#ab756ba7a19c4bf98f0d8456ad0081fc3">trick</a>(const std::string &id, const std::vector< std::pair< card *, player * > > &cards, serializable_value< int > *trick_color, serializable_value< int > *trump_color)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classtrick.html#a3ecb1c5ebe84a300d7388e2846737fa4">trick</a>(int trump)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>unique_serializable</b>() (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>unique_serializable</b>(std::string id) (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#a384560623ffaf776797948cf35197c73">wrap_up_trick</a>(std::string &err) const</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> - <tr class="even"><td class="entry"><a class="el" href="classtrick.html#a97176df194eae794691356cd83292b04">write_into_json</a>(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> - <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>write_into_json</b>(rapidjson::Value &json, rapidjson::MemoryPoolAllocator< rapidjson::CrtAllocator > &allocator) const override (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> - <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~serializable</b>()=default (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> - <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#a22c0b586f1d6c3baeb7bb0e22eb7dfe2">~trick</a>() override</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#a4b93ae88c17db486d975408cd8cfad1b">get_winner</a>() const</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classtrick.html#a0f8c45882691509564ec42efed0d1aaa">set_trick_color</a>(int color) const</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00">set_up_round</a>(int trump, std::string &err)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>to_json</b>() const (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d">trick</a>()</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classtrick.html#ad55ad2f0462144ee39c0e6d392543a14">trick</a>(const trick &other)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#abb172ad9a476e96a754eea0c33e1eda9">trick</a>(const std::string &id)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classtrick.html#ab756ba7a19c4bf98f0d8456ad0081fc3">trick</a>(const std::string &id, const std::vector< std::pair< card *, player * > > &cards, serializable_value< int > *trick_color, serializable_value< int > *trump_color)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#a3ecb1c5ebe84a300d7388e2846737fa4">trick</a>(int trump)</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>unique_serializable</b>() (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> + <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>unique_serializable</b>(std::string id) (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">protected</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classtrick.html#a384560623ffaf776797948cf35197c73">wrap_up_trick</a>(std::string &err) const</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> + <tr class="odd"><td class="entry"><a class="el" href="classtrick.html#a97176df194eae794691356cd83292b04">write_into_json</a>(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> + <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>write_into_json</b>(rapidjson::Value &json, rapidjson::MemoryPoolAllocator< rapidjson::CrtAllocator > &allocator) const override (defined in <a class="el" href="classunique__serializable.html">unique_serializable</a>)</td><td class="entry"><a class="el" href="classunique__serializable.html">unique_serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> + <tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~serializable</b>()=default (defined in <a class="el" href="classserializable.html">serializable</a>)</td><td class="entry"><a class="el" href="classserializable.html">serializable</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr> + <tr class="even"><td class="entry"><a class="el" href="classtrick.html#a22c0b586f1d6c3baeb7bb0e22eb7dfe2">~trick</a>() override</td><td class="entry"><a class="el" href="classtrick.html">trick</a></td><td class="entry"></td></tr> </table></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> diff --git a/html/classtrick.html b/html/classtrick.html index ce546e1533b00dc1d7c8e9e2bf0d2cccf69207d7..57f9c886e98b5bfa72f4bf59c67aaa3165eeb1a2 100644 --- a/html/classtrick.html +++ b/html/classtrick.html @@ -139,6 +139,9 @@ Public Member Functions</h2></td></tr> <tr class="memitem:a69c49e2968abb235a6c7148cb05b0e64" id="r_a69c49e2968abb235a6c7148cb05b0e64"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a69c49e2968abb235a6c7148cb05b0e64">get_trump_color</a> () const</td></tr> <tr class="memdesc:a69c49e2968abb235a6c7148cb05b0e64"><td class="mdescLeft"> </td><td class="mdescRight">Gets the trump color. <br /></td></tr> <tr class="separator:a69c49e2968abb235a6c7148cb05b0e64"><td class="memSeparator" colspan="2"> </td></tr> +<tr class="memitem:a4b93ae88c17db486d975408cd8cfad1b" id="r_a4b93ae88c17db486d975408cd8cfad1b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classplayer.html">player</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4b93ae88c17db486d975408cd8cfad1b">get_winner</a> () const</td></tr> +<tr class="memdesc:a4b93ae88c17db486d975408cd8cfad1b"><td class="mdescLeft"> </td><td class="mdescRight">Gets the winner of the trick. <br /></td></tr> +<tr class="separator:a4b93ae88c17db486d975408cd8cfad1b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae5b769ed0fc2933c1a44b5e481c18b00" id="r_ae5b769ed0fc2933c1a44b5e481c18b00"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae5b769ed0fc2933c1a44b5e481c18b00">set_up_round</a> (int trump, std::string &err)</td></tr> <tr class="memdesc:ae5b769ed0fc2933c1a44b5e481c18b00"><td class="mdescLeft"> </td><td class="mdescRight">Sets up a trick. <br /></td></tr> <tr class="separator:ae5b769ed0fc2933c1a44b5e481c18b00"><td class="memSeparator" colspan="2"> </td></tr> @@ -476,6 +479,35 @@ std::string </td><td class="memItemRight" valign="bottom"><b>_id</b></td></ <p>Gets the trump color. </p> <dl class="section return"><dt>Returns</dt><dd>The trump color. </dd></dl> +</div> +</div> +<a id="a4b93ae88c17db486d975408cd8cfad1b" name="a4b93ae88c17db486d975408cd8cfad1b"></a> +<h2 class="memtitle"><span class="permalink"><a href="#a4b93ae88c17db486d975408cd8cfad1b">◆ </a></span>get_winner()</h2> + +<div class="memitem"> +<div class="memproto"> +<table class="mlabels"> + <tr> + <td class="mlabels-left"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="classplayer.html">player</a> * trick::get_winner </td> + <td>(</td> + <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td> + <td> const</td> + </tr> + </table> + </td> + <td class="mlabels-right"> +<span class="mlabels"><span class="mlabel">nodiscard</span></span> </td> + </tr> +</table> +</div><div class="memdoc"> + +<p>Gets the winner of the trick. </p> +<dl class="section return"><dt>Returns</dt><dd>The winner of the trick.</dd></dl> +<p>This function is used by the client to determine the winner of a trick, and to display the winner after the trick. It uses the same logic as the wrap_up_round function on the server side. </p> + </div> </div> <a id="a0f8c45882691509564ec42efed0d1aaa" name="a0f8c45882691509564ec42efed0d1aaa"></a> diff --git a/html/doxygen_crawl.html b/html/doxygen_crawl.html index 42309a80f3ecfb5df2d6971e262da1ba0ac4b75a..b980ac1c9f2bbb98bb06d0b6324a524bfe3601e0 100644 --- a/html/doxygen_crawl.html +++ b/html/doxygen_crawl.html @@ -174,6 +174,12 @@ <a href="functions.html"/> <a href="functions.html"/> <a href="functions.html"/> +<a href="functions.html"/> +<a href="functions.html"/> +<a href="functions.html"/> +<a href="functions_func.html"/> +<a href="functions_func.html"/> +<a href="functions_func.html"/> <a href="functions_func.html"/> <a href="functions_func.html"/> <a href="functions_func.html"/> @@ -210,10 +216,27 @@ <a href="class_connection_panel.html"/> <a href="class_error_dialog.html"/> <a href="class_game_controller.html"/> +<a href="class_game_controller.html#a023da21da545374ee46fb873149976c4"/> +<a href="class_game_controller.html#a21eea505305d56439efb835e1e148c2f"/> +<a href="class_game_controller.html#a3c350056b82df662c946cb9119f11ced"/> +<a href="class_game_controller.html#a5f1023f2029e5dbb25b795a0606e06a9"/> +<a href="class_game_controller.html#a6a43eb061a9882b3937fc88bb4794324"/> +<a href="class_game_controller.html#a8108659ad09724318c3a251d93bd5869"/> +<a href="class_game_controller.html#a87b164e2094901861e5b47056634facc"/> +<a href="class_game_controller.html#a8889bad76bc35487d3391fb8a5791616"/> +<a href="class_game_controller.html#a8d42b2e41759bfd65cdebad87437369e"/> +<a href="class_game_controller.html#a8f30ab3ff471ac0a5c8b88dc7fea45f4"/> +<a href="class_game_controller.html#a994773f79be8c9e8dc8c19ee2d389103"/> +<a href="class_game_controller.html#abb91c546ab8400c1e2e9f2a2ccc8298f"/> +<a href="class_game_controller.html#abd110563d0f37f06096176c199d22055"/> +<a href="class_game_controller.html#abec8c73ea01e4b7e01b2ca1d932e0c16"/> +<a href="class_game_controller.html#adf043f9026a62f634a873c9f9d292034"/> <a href="class_game_window.html"/> <a href="class_image_panel.html"/> <a href="class_input_field.html"/> <a href="class_main_game_panel_wizard.html"/> +<a href="class_main_game_panel_wizard.html#a6ba532223a22fe5458e3f94a70e2bbf6"/> +<a href="class_main_game_panel_wizard.html#a83517cab2cccba78cce79450de3bb7f3"/> <a href="class_response_listener_thread.html"/> <a href="class_score_board_dialog.html"/> <a href="class_score_dialog.html"/> @@ -244,9 +267,22 @@ <a href="classestimate__tricks__request.html"/> <a href="classfull__state__response.html"/> <a href="classgame__instance.html"/> +<a href="classgame__instance.html#a1176ce8464586487f9ae5676ca900e10"/> +<a href="classgame__instance.html#a1a7e19a4b0907cb0b5f1523edb7e68ca"/> +<a href="classgame__instance.html#a1fa390603341beb15e09e5a4b03465c1"/> +<a href="classgame__instance.html#a2b1d00adf8c933a98698f972827e48b9"/> +<a href="classgame__instance.html#a2c6fed45a14273b09a9f202481fa62aa"/> +<a href="classgame__instance.html#a2c8a8be71f8c3016075cc08768ebbb64"/> +<a href="classgame__instance.html#a5a080dfced3d2d1c697e36160b996a9c"/> +<a href="classgame__instance.html#a72cd93738171ffc856c3d77df5f967da"/> +<a href="classgame__instance.html#a77d1f40b8727c74f278efe9168f26831"/> +<a href="classgame__instance.html#a852c73a12031d7fbd2095530df595c5c"/> +<a href="classgame__instance.html#aee2eedd24991ce59dbcf2ec4f6cae8ac"/> +<a href="classgame__instance.html#af1434756e3041deca68b4f4f84176f05"/> <a href="classgame__instance__manager.html"/> <a href="classgame__state.html"/> <a href="classgame__state.html#a0c10b830e222d726557c3c33685c595a"/> +<a href="classgame__state.html#a115a9b1dbb65db44669363b407aa62ac"/> <a href="classgame__state.html#a2d16f420a8aa651685461a5efb8bb600"/> <a href="classgame__state.html#a2fbc370f93617298719f61514afdb5bc"/> <a href="classgame__state.html#a371d6a6d84395b90c15d84549b05d553"/> @@ -300,6 +336,7 @@ <a href="classplayer.html#a1f0916939a8caa2e7140d5c89a6aa718"/> <a href="classplayer.html#a40333c302ff51707749c544930fb80aa"/> <a href="classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773"/> +<a href="classplayer.html#a42f88a13ce2b65360f6ee95281a09173"/> <a href="classplayer.html#a457c5ab90b0ecd610eead66b41c8333a"/> <a href="classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5"/> <a href="classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4"/> @@ -307,10 +344,12 @@ <a href="classplayer.html#a8cc6464ca3284140c92c6983ee62a299"/> <a href="classplayer.html#aa916eeacf97f00507f412fd91bfe37d4"/> <a href="classplayer.html#aa97dd36228b56912bc5dad63f64e1ccf"/> +<a href="classplayer.html#aac1b87de3b686d8ee1049269f6c9f272"/> <a href="classplayer.html#ab3b087d03dd2c81d893b2ffad459a26f"/> <a href="classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac"/> <a href="classplayer.html#af1d7e67eee27af87c01e43508a731bd4"/> <a href="classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d"/> +<a href="classplayer.html#af8f0b088e697fcb972bfc41302e63877"/> <a href="classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c"/> <a href="classplayer__manager.html"/> <a href="classrequest__handler.html"/> @@ -330,6 +369,7 @@ <a href="classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d"/> <a href="classtrick.html#a3ecb1c5ebe84a300d7388e2846737fa4"/> <a href="classtrick.html#a41f315804ac73454c8e41438da20a9c3"/> +<a href="classtrick.html#a4b93ae88c17db486d975408cd8cfad1b"/> <a href="classtrick.html#a69c49e2968abb235a6c7148cb05b0e64"/> <a href="classtrick.html#a97176df194eae794691356cd83292b04"/> <a href="classtrick.html#ab756ba7a19c4bf98f0d8456ad0081fc3"/> @@ -374,16 +414,22 @@ <a href="index.html#autotoc_md10"/> <a href="index.html#autotoc_md11"/> <a href="index.html#autotoc_md12"/> -<a href="index.html#autotoc_md13"/> <a href="index.html#autotoc_md14"/> -<a href="index.html#autotoc_md15"/> <a href="index.html#autotoc_md16"/> <a href="index.html#autotoc_md17"/> <a href="index.html#autotoc_md18"/> <a href="index.html#autotoc_md19"/> -<a href="index.html#autotoc_md3"/> +<a href="index.html#autotoc_md20"/> +<a href="index.html#autotoc_md21"/> +<a href="index.html#autotoc_md22"/> +<a href="index.html#autotoc_md23"/> +<a href="index.html#autotoc_md24"/> +<a href="index.html#autotoc_md25"/> +<a href="index.html#autotoc_md26"/> +<a href="index.html#autotoc_md27"/> +<a href="index.html#autotoc_md28"/> +<a href="index.html#autotoc_md29"/> <a href="index.html#autotoc_md4"/> -<a href="index.html#autotoc_md5"/> <a href="index.html#autotoc_md6"/> <a href="index.html#autotoc_md7"/> <a href="index.html#autotoc_md8"/> diff --git a/html/functions.html b/html/functions.html index 223ade10eb8b3a9a146d7bc5462613946e34763b..192a84adcdcfa9c50df0af25ac430512d766d4bc 100644 --- a/html/functions.html +++ b/html/functions.html @@ -93,8 +93,15 @@ $(function(){ initResizable(false); }); </ul> +<h3><a id="index_b" name="index_b"></a>- b -</h3><ul> +<li>buildGameState() : <a class="el" href="class_main_game_panel_wizard.html#a83517cab2cccba78cce79450de3bb7f3">MainGamePanelWizard</a></li> +</ul> + + <h3><a id="index_c" name="index_c"></a>- c -</h3><ul> <li>card() : <a class="el" href="classcard.html#a764d65641c619aedf1842a30e54905b7">card</a></li> +<li>closeGameWindow() : <a class="el" href="class_game_controller.html#a21eea505305d56439efb835e1e148c2f">GameController</a></li> +<li>connectToServer() : <a class="el" href="class_game_controller.html#a023da21da545374ee46fb873149976c4">GameController</a></li> </ul> @@ -106,7 +113,8 @@ $(function(){ initResizable(false); }); <h3><a id="index_e" name="index_e"></a>- e -</h3><ul> -<li>estimate_tricks() : <a class="el" href="classgame__state.html#ac4ebff625d83c633c124890537d60354">game_state</a></li> +<li>estimate_tricks() : <a class="el" href="classgame__instance.html#af1434756e3041deca68b4f4f84176f05">game_instance</a>, <a class="el" href="classgame__state.html#ac4ebff625d83c633c124890537d60354">game_state</a></li> +<li>estimateTricks() : <a class="el" href="class_game_controller.html#abd110563d0f37f06096176c199d22055">GameController</a></li> </ul> @@ -117,13 +125,16 @@ $(function(){ initResizable(false); }); <h3><a id="index_g" name="index_g"></a>- g -</h3><ul> +<li>game_instance() : <a class="el" href="classgame__instance.html#a2b1d00adf8c933a98698f972827e48b9">game_instance</a></li> <li>game_state() : <a class="el" href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state</a></li> <li>get_cards() : <a class="el" href="classhand.html#ad104b0376b1a13d987f349dd524ca47f">hand</a></li> <li>get_cards_and_players() : <a class="el" href="classtrick.html#a1d75f9e8fc94fd122adfc39a20089268">trick</a></li> <li>get_color() : <a class="el" href="classcard.html#ab033bc0e71b09d3cf3ac28c2f1fbde18">card</a></li> <li>get_current_player() : <a class="el" href="classgame__state.html#a2d16f420a8aa651685461a5efb8bb600">game_state</a></li> <li>get_game_id() : <a class="el" href="classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c">player</a></li> +<li>get_game_state() : <a class="el" href="classgame__instance.html#a852c73a12031d7fbd2095530df595c5c">game_instance</a></li> <li>get_hand() : <a class="el" href="classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d">player</a></li> +<li>get_id() : <a class="el" href="classgame__instance.html#a72cd93738171ffc856c3d77df5f967da">game_instance</a></li> <li>get_last_trick() : <a class="el" href="classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b">game_state</a></li> <li>get_max_round_number() : <a class="el" href="classgame__state.html#aa75c4da6c0056e48e5040be8127d7473">game_state</a></li> <li>get_nof_cards() : <a class="el" href="classhand.html#adc90d109b7b564a0dbca0b0798c99641">hand</a>, <a class="el" href="classplayer.html#a457c5ab90b0ecd610eead66b41c8333a">player</a></li> @@ -140,29 +151,46 @@ $(function(){ initResizable(false); }); <li>get_trick_estimate_sum() : <a class="el" href="classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282">game_state</a></li> <li>get_trick_number() : <a class="el" href="classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15">game_state</a></li> <li>get_trick_starting_player() : <a class="el" href="classgame__state.html#aa40554d105939c5dce934daaa858c242">game_state</a></li> +<li>get_trump_card_value() : <a class="el" href="classgame__state.html#a115a9b1dbb65db44669363b407aa62ac">game_state</a></li> <li>get_trump_color() : <a class="el" href="classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4">game_state</a>, <a class="el" href="classtrick.html#a69c49e2968abb235a6c7148cb05b0e64">trick</a></li> <li>get_value() : <a class="el" href="classcard.html#a2baf8dfef09ac8c1a67b34c2e67186c3">card</a></li> +<li>get_winner() : <a class="el" href="classtrick.html#a4b93ae88c17db486d975408cd8cfad1b">trick</a></li> +<li>getMainThreadEventHandler() : <a class="el" href="class_game_controller.html#abec8c73ea01e4b7e01b2ca1d932e0c16">GameController</a></li> </ul> <h3><a id="index_h" name="index_h"></a>- h -</h3><ul> <li>hand() : <a class="el" href="classhand.html#ae8d7de2589266f57271ac191dab8cd64">hand</a></li> +<li>has_left_game() : <a class="el" href="classplayer.html#aac1b87de3b686d8ee1049269f6c9f272">player</a></li> </ul> <h3><a id="index_i" name="index_i"></a>- i -</h3><ul> +<li>init() : <a class="el" href="class_game_controller.html#a8889bad76bc35487d3391fb8a5791616">GameController</a></li> <li>is_empty() : <a class="el" href="classdeck.html#a6aef528ff7b9c608863cc77c19b7882d">deck</a></li> <li>is_estimation_phase() : <a class="el" href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">game_state</a></li> -<li>is_finished() : <a class="el" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">game_state</a></li> -<li>is_full() : <a class="el" href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">game_state</a></li> +<li>is_finished() : <a class="el" href="classgame__instance.html#a5a080dfced3d2d1c697e36160b996a9c">game_instance</a>, <a class="el" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">game_state</a></li> +<li>is_full() : <a class="el" href="classgame__instance.html#a77d1f40b8727c74f278efe9168f26831">game_instance</a>, <a class="el" href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">game_state</a></li> <li>is_player_in_game() : <a class="el" href="classgame__state.html#a371d6a6d84395b90c15d84549b05d553">game_state</a></li> -<li>is_started() : <a class="el" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">game_state</a></li> +<li>is_started() : <a class="el" href="classgame__instance.html#a2c8a8be71f8c3016075cc08768ebbb64">game_instance</a>, <a class="el" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">game_state</a></li> +</ul> + + +<h3><a id="index_l" name="index_l"></a>- l -</h3><ul> +<li>leaveGame() : <a class="el" href="class_game_controller.html#a8d42b2e41759bfd65cdebad87437369e">GameController</a></li> +</ul> + + +<h3><a id="index_m" name="index_m"></a>- m -</h3><ul> +<li>MainGamePanelWizard() : <a class="el" href="class_main_game_panel_wizard.html#a6ba532223a22fe5458e3f94a70e2bbf6">MainGamePanelWizard</a></li> </ul> <h3><a id="index_p" name="index_p"></a>- p -</h3><ul> -<li>play_card() : <a class="el" href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">game_state</a></li> +<li>play_card() : <a class="el" href="classgame__instance.html#a1a7e19a4b0907cb0b5f1523edb7e68ca">game_instance</a>, <a class="el" href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">game_state</a></li> +<li>playCard() : <a class="el" href="class_game_controller.html#a87b164e2094901861e5b47056634facc">GameController</a></li> <li>player() : <a class="el" href="classplayer.html#a1f0916939a8caa2e7140d5c89a6aa718">player</a></li> +<li>processEstimateTricks() : <a class="el" href="class_game_controller.html#a5f1023f2029e5dbb25b795a0606e06a9">GameController</a></li> </ul> @@ -174,25 +202,36 @@ $(function(){ initResizable(false); }); <h3><a id="index_s" name="index_s"></a>- s -</h3><ul> <li>set_game_id() : <a class="el" href="classplayer.html#aa916eeacf97f00507f412fd91bfe37d4">player</a></li> +<li>set_has_left_game() : <a class="el" href="classplayer.html#a42f88a13ce2b65360f6ee95281a09173">player</a></li> <li>set_nof_predicted() : <a class="el" href="classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7">player</a></li> <li>set_nof_tricks() : <a class="el" href="classplayer.html#a61aa38ceff0c856b36642c4bc0081433">player</a></li> +<li>set_player_name() : <a class="el" href="classplayer.html#af8f0b088e697fcb972bfc41302e63877">player</a></li> <li>set_scores() : <a class="el" href="classplayer.html#af1d7e67eee27af87c01e43508a731bd4">player</a></li> <li>set_trick() : <a class="el" href="classgame__state.html#a745dd23945b6165470c494b036ac4667">game_state</a></li> <li>set_trick_color() : <a class="el" href="classtrick.html#a0f8c45882691509564ec42efed0d1aaa">trick</a></li> <li>set_up_round() : <a class="el" href="classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00">trick</a></li> <li>setup_round() : <a class="el" href="classdeck.html#a77851e5cb8297849e91a885ed7959de1">deck</a>, <a class="el" href="classgame__state.html#ab520d4076c53f70a68bc19f355243a4d">game_state</a>, <a class="el" href="classplayer.html#a8cc6464ca3284140c92c6983ee62a299">player</a></li> -<li>start_game() : <a class="el" href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">game_state</a></li> +<li>showError() : <a class="el" href="class_game_controller.html#adf043f9026a62f634a873c9f9d292034">GameController</a></li> +<li>showGameOverMessage() : <a class="el" href="class_game_controller.html#abb91c546ab8400c1e2e9f2a2ccc8298f">GameController</a></li> +<li>showNewRoundMessage() : <a class="el" href="class_game_controller.html#a3c350056b82df662c946cb9119f11ced">GameController</a></li> +<li>showStatus() : <a class="el" href="class_game_controller.html#a6a43eb061a9882b3937fc88bb4794324">GameController</a></li> +<li>showTrickOverMessage() : <a class="el" href="class_game_controller.html#a8108659ad09724318c3a251d93bd5869">GameController</a></li> +<li>start_game() : <a class="el" href="classgame__instance.html#aee2eedd24991ce59dbcf2ec4f6cae8ac">game_instance</a>, <a class="el" href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">game_state</a></li> +<li>startGame() : <a class="el" href="class_game_controller.html#a8f30ab3ff471ac0a5c8b88dc7fea45f4">GameController</a></li> </ul> <h3><a id="index_t" name="index_t"></a>- t -</h3><ul> <li>trick() : <a class="el" href="classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d">trick</a></li> +<li>try_add_player() : <a class="el" href="classgame__instance.html#a1176ce8464586487f9ae5676ca900e10">game_instance</a></li> <li>try_get_card() : <a class="el" href="classhand.html#a0a50cbbb167e6a1d633dd48bc4b695fe">hand</a></li> +<li>try_remove_player() : <a class="el" href="classgame__instance.html#a2c6fed45a14273b09a9f202481fa62aa">game_instance</a></li> </ul> <h3><a id="index_u" name="index_u"></a>- u -</h3><ul> <li>update_current_player() : <a class="el" href="classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d">game_state</a></li> +<li>updateGameState() : <a class="el" href="class_game_controller.html#a994773f79be8c9e8dc8c19ee2d389103">GameController</a></li> </ul> @@ -206,6 +245,7 @@ $(function(){ initResizable(false); }); <h3><a id="index__7E" name="index__7E"></a>- ~ -</h3><ul> <li>~card() : <a class="el" href="classcard.html#ac7a5d8d53e8cc33f5c5a03d8ccb806c4">card</a></li> <li>~deck() : <a class="el" href="classdeck.html#a63a688bda08bfef8d2c37d53523b7b12">deck</a></li> +<li>~game_instance() : <a class="el" href="classgame__instance.html#a1fa390603341beb15e09e5a4b03465c1">game_instance</a></li> <li>~game_state() : <a class="el" href="classgame__state.html#a2fbc370f93617298719f61514afdb5bc">game_state</a></li> <li>~hand() : <a class="el" href="classhand.html#af3ffc5e5b46f04b14f12a9fc130b220a">hand</a></li> <li>~player() : <a class="el" href="classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad">player</a></li> diff --git a/html/functions_func.html b/html/functions_func.html index 6c33cf959b9238fb2a43995bf7d50808dcb132a0..039eeca90056bb7b024efea8391b3102d8d5032a 100644 --- a/html/functions_func.html +++ b/html/functions_func.html @@ -93,8 +93,15 @@ $(function(){ initResizable(false); }); </ul> +<h3><a id="index_b" name="index_b"></a>- b -</h3><ul> +<li>buildGameState() : <a class="el" href="class_main_game_panel_wizard.html#a83517cab2cccba78cce79450de3bb7f3">MainGamePanelWizard</a></li> +</ul> + + <h3><a id="index_c" name="index_c"></a>- c -</h3><ul> <li>card() : <a class="el" href="classcard.html#a764d65641c619aedf1842a30e54905b7">card</a></li> +<li>closeGameWindow() : <a class="el" href="class_game_controller.html#a21eea505305d56439efb835e1e148c2f">GameController</a></li> +<li>connectToServer() : <a class="el" href="class_game_controller.html#a023da21da545374ee46fb873149976c4">GameController</a></li> </ul> @@ -106,7 +113,8 @@ $(function(){ initResizable(false); }); <h3><a id="index_e" name="index_e"></a>- e -</h3><ul> -<li>estimate_tricks() : <a class="el" href="classgame__state.html#ac4ebff625d83c633c124890537d60354">game_state</a></li> +<li>estimate_tricks() : <a class="el" href="classgame__instance.html#af1434756e3041deca68b4f4f84176f05">game_instance</a>, <a class="el" href="classgame__state.html#ac4ebff625d83c633c124890537d60354">game_state</a></li> +<li>estimateTricks() : <a class="el" href="class_game_controller.html#abd110563d0f37f06096176c199d22055">GameController</a></li> </ul> @@ -117,13 +125,16 @@ $(function(){ initResizable(false); }); <h3><a id="index_g" name="index_g"></a>- g -</h3><ul> +<li>game_instance() : <a class="el" href="classgame__instance.html#a2b1d00adf8c933a98698f972827e48b9">game_instance</a></li> <li>game_state() : <a class="el" href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state</a></li> <li>get_cards() : <a class="el" href="classhand.html#ad104b0376b1a13d987f349dd524ca47f">hand</a></li> <li>get_cards_and_players() : <a class="el" href="classtrick.html#a1d75f9e8fc94fd122adfc39a20089268">trick</a></li> <li>get_color() : <a class="el" href="classcard.html#ab033bc0e71b09d3cf3ac28c2f1fbde18">card</a></li> <li>get_current_player() : <a class="el" href="classgame__state.html#a2d16f420a8aa651685461a5efb8bb600">game_state</a></li> <li>get_game_id() : <a class="el" href="classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c">player</a></li> +<li>get_game_state() : <a class="el" href="classgame__instance.html#a852c73a12031d7fbd2095530df595c5c">game_instance</a></li> <li>get_hand() : <a class="el" href="classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d">player</a></li> +<li>get_id() : <a class="el" href="classgame__instance.html#a72cd93738171ffc856c3d77df5f967da">game_instance</a></li> <li>get_last_trick() : <a class="el" href="classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b">game_state</a></li> <li>get_max_round_number() : <a class="el" href="classgame__state.html#aa75c4da6c0056e48e5040be8127d7473">game_state</a></li> <li>get_nof_cards() : <a class="el" href="classhand.html#adc90d109b7b564a0dbca0b0798c99641">hand</a>, <a class="el" href="classplayer.html#a457c5ab90b0ecd610eead66b41c8333a">player</a></li> @@ -140,29 +151,46 @@ $(function(){ initResizable(false); }); <li>get_trick_estimate_sum() : <a class="el" href="classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282">game_state</a></li> <li>get_trick_number() : <a class="el" href="classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15">game_state</a></li> <li>get_trick_starting_player() : <a class="el" href="classgame__state.html#aa40554d105939c5dce934daaa858c242">game_state</a></li> +<li>get_trump_card_value() : <a class="el" href="classgame__state.html#a115a9b1dbb65db44669363b407aa62ac">game_state</a></li> <li>get_trump_color() : <a class="el" href="classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4">game_state</a>, <a class="el" href="classtrick.html#a69c49e2968abb235a6c7148cb05b0e64">trick</a></li> <li>get_value() : <a class="el" href="classcard.html#a2baf8dfef09ac8c1a67b34c2e67186c3">card</a></li> +<li>get_winner() : <a class="el" href="classtrick.html#a4b93ae88c17db486d975408cd8cfad1b">trick</a></li> +<li>getMainThreadEventHandler() : <a class="el" href="class_game_controller.html#abec8c73ea01e4b7e01b2ca1d932e0c16">GameController</a></li> </ul> <h3><a id="index_h" name="index_h"></a>- h -</h3><ul> <li>hand() : <a class="el" href="classhand.html#ae8d7de2589266f57271ac191dab8cd64">hand</a></li> +<li>has_left_game() : <a class="el" href="classplayer.html#aac1b87de3b686d8ee1049269f6c9f272">player</a></li> </ul> <h3><a id="index_i" name="index_i"></a>- i -</h3><ul> +<li>init() : <a class="el" href="class_game_controller.html#a8889bad76bc35487d3391fb8a5791616">GameController</a></li> <li>is_empty() : <a class="el" href="classdeck.html#a6aef528ff7b9c608863cc77c19b7882d">deck</a></li> <li>is_estimation_phase() : <a class="el" href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">game_state</a></li> -<li>is_finished() : <a class="el" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">game_state</a></li> -<li>is_full() : <a class="el" href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">game_state</a></li> +<li>is_finished() : <a class="el" href="classgame__instance.html#a5a080dfced3d2d1c697e36160b996a9c">game_instance</a>, <a class="el" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">game_state</a></li> +<li>is_full() : <a class="el" href="classgame__instance.html#a77d1f40b8727c74f278efe9168f26831">game_instance</a>, <a class="el" href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">game_state</a></li> <li>is_player_in_game() : <a class="el" href="classgame__state.html#a371d6a6d84395b90c15d84549b05d553">game_state</a></li> -<li>is_started() : <a class="el" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">game_state</a></li> +<li>is_started() : <a class="el" href="classgame__instance.html#a2c8a8be71f8c3016075cc08768ebbb64">game_instance</a>, <a class="el" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">game_state</a></li> +</ul> + + +<h3><a id="index_l" name="index_l"></a>- l -</h3><ul> +<li>leaveGame() : <a class="el" href="class_game_controller.html#a8d42b2e41759bfd65cdebad87437369e">GameController</a></li> +</ul> + + +<h3><a id="index_m" name="index_m"></a>- m -</h3><ul> +<li>MainGamePanelWizard() : <a class="el" href="class_main_game_panel_wizard.html#a6ba532223a22fe5458e3f94a70e2bbf6">MainGamePanelWizard</a></li> </ul> <h3><a id="index_p" name="index_p"></a>- p -</h3><ul> -<li>play_card() : <a class="el" href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">game_state</a></li> +<li>play_card() : <a class="el" href="classgame__instance.html#a1a7e19a4b0907cb0b5f1523edb7e68ca">game_instance</a>, <a class="el" href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">game_state</a></li> +<li>playCard() : <a class="el" href="class_game_controller.html#a87b164e2094901861e5b47056634facc">GameController</a></li> <li>player() : <a class="el" href="classplayer.html#a1f0916939a8caa2e7140d5c89a6aa718">player</a></li> +<li>processEstimateTricks() : <a class="el" href="class_game_controller.html#a5f1023f2029e5dbb25b795a0606e06a9">GameController</a></li> </ul> @@ -174,25 +202,36 @@ $(function(){ initResizable(false); }); <h3><a id="index_s" name="index_s"></a>- s -</h3><ul> <li>set_game_id() : <a class="el" href="classplayer.html#aa916eeacf97f00507f412fd91bfe37d4">player</a></li> +<li>set_has_left_game() : <a class="el" href="classplayer.html#a42f88a13ce2b65360f6ee95281a09173">player</a></li> <li>set_nof_predicted() : <a class="el" href="classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7">player</a></li> <li>set_nof_tricks() : <a class="el" href="classplayer.html#a61aa38ceff0c856b36642c4bc0081433">player</a></li> +<li>set_player_name() : <a class="el" href="classplayer.html#af8f0b088e697fcb972bfc41302e63877">player</a></li> <li>set_scores() : <a class="el" href="classplayer.html#af1d7e67eee27af87c01e43508a731bd4">player</a></li> <li>set_trick() : <a class="el" href="classgame__state.html#a745dd23945b6165470c494b036ac4667">game_state</a></li> <li>set_trick_color() : <a class="el" href="classtrick.html#a0f8c45882691509564ec42efed0d1aaa">trick</a></li> <li>set_up_round() : <a class="el" href="classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00">trick</a></li> <li>setup_round() : <a class="el" href="classdeck.html#a77851e5cb8297849e91a885ed7959de1">deck</a>, <a class="el" href="classgame__state.html#ab520d4076c53f70a68bc19f355243a4d">game_state</a>, <a class="el" href="classplayer.html#a8cc6464ca3284140c92c6983ee62a299">player</a></li> -<li>start_game() : <a class="el" href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">game_state</a></li> +<li>showError() : <a class="el" href="class_game_controller.html#adf043f9026a62f634a873c9f9d292034">GameController</a></li> +<li>showGameOverMessage() : <a class="el" href="class_game_controller.html#abb91c546ab8400c1e2e9f2a2ccc8298f">GameController</a></li> +<li>showNewRoundMessage() : <a class="el" href="class_game_controller.html#a3c350056b82df662c946cb9119f11ced">GameController</a></li> +<li>showStatus() : <a class="el" href="class_game_controller.html#a6a43eb061a9882b3937fc88bb4794324">GameController</a></li> +<li>showTrickOverMessage() : <a class="el" href="class_game_controller.html#a8108659ad09724318c3a251d93bd5869">GameController</a></li> +<li>start_game() : <a class="el" href="classgame__instance.html#aee2eedd24991ce59dbcf2ec4f6cae8ac">game_instance</a>, <a class="el" href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">game_state</a></li> +<li>startGame() : <a class="el" href="class_game_controller.html#a8f30ab3ff471ac0a5c8b88dc7fea45f4">GameController</a></li> </ul> <h3><a id="index_t" name="index_t"></a>- t -</h3><ul> <li>trick() : <a class="el" href="classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d">trick</a></li> +<li>try_add_player() : <a class="el" href="classgame__instance.html#a1176ce8464586487f9ae5676ca900e10">game_instance</a></li> <li>try_get_card() : <a class="el" href="classhand.html#a0a50cbbb167e6a1d633dd48bc4b695fe">hand</a></li> +<li>try_remove_player() : <a class="el" href="classgame__instance.html#a2c6fed45a14273b09a9f202481fa62aa">game_instance</a></li> </ul> <h3><a id="index_u" name="index_u"></a>- u -</h3><ul> <li>update_current_player() : <a class="el" href="classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d">game_state</a></li> +<li>updateGameState() : <a class="el" href="class_game_controller.html#a994773f79be8c9e8dc8c19ee2d389103">GameController</a></li> </ul> @@ -206,6 +245,7 @@ $(function(){ initResizable(false); }); <h3><a id="index__7E" name="index__7E"></a>- ~ -</h3><ul> <li>~card() : <a class="el" href="classcard.html#ac7a5d8d53e8cc33f5c5a03d8ccb806c4">card</a></li> <li>~deck() : <a class="el" href="classdeck.html#a63a688bda08bfef8d2c37d53523b7b12">deck</a></li> +<li>~game_instance() : <a class="el" href="classgame__instance.html#a1fa390603341beb15e09e5a4b03465c1">game_instance</a></li> <li>~game_state() : <a class="el" href="classgame__state.html#a2fbc370f93617298719f61514afdb5bc">game_state</a></li> <li>~hand() : <a class="el" href="classhand.html#af3ffc5e5b46f04b14f12a9fc130b220a">hand</a></li> <li>~player() : <a class="el" href="classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad">player</a></li> diff --git a/html/game__instance_8h_source.html b/html/game__instance_8h_source.html index aab81c27f00c5dd506324e6c5ae4efb1ac21048a..0e43d148a3c123f78e5710704df0697e8e6dfbd3 100644 --- a/html/game__instance_8h_source.html +++ b/html/game__instance_8h_source.html @@ -92,59 +92,64 @@ $(function(){ initResizable(false); }); <div class="headertitle"><div class="title">game_instance.h</div></div> </div><!--header--> <div class="contents"> -<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">//</span></div> -<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">// Created by Manuel on 25.01.2021.</span></div> -<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">//</span></div> -<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">// The game_instance class is a wrapper around the game_state of an active instance of the game.</span></div> -<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">// This class contains functions to modify the contained game_state.</span></div> -<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div> -<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#ifndef WIZARD_GAME_H</span></div> -<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#define WIZARD_GAME_H</span></div> -<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div> -<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <vector></span></div> -<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <string></span></div> -<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <mutex></span></div> -<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div> -<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include "../common/game_state/player/player.h"</span></div> -<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include "../common/game_state/game_state.h"</span></div> -<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div> +<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef WIZARD_GAME_H</span></div> +<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define WIZARD_GAME_H</span></div> +<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div> +<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include <vector></span></div> +<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include <string></span></div> +<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <mutex></span></div> +<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div> +<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include "../common/game_state/player/player.h"</span></div> +<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include "../common/game_state/game_state.h"</span></div> +<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div> <div class="foldopen" id="foldopen00017" data-start="{" data-end="};"> <div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="classgame__instance.html"> 17</a></span><span class="keyword">class </span><a class="code hl_class" href="classgame__instance.html">game_instance</a> {</div> <div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div> <div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">private</span>:</div> -<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_class" href="classgame__state.html">game_state</a>* _game_state;</div> -<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">inline</span> <span class="keyword">static</span> std::mutex modification_lock;</div> +<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_class" href="classgame__state.html">game_state</a>* _game_state; </div> +<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">inline</span> <span class="keyword">static</span> std::mutex modification_lock; </div> <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">public</span>:</div> -<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_class" href="classgame__instance.html">game_instance</a>();</div> -<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_class" href="classgame__instance.html">~game_instance</a>() {</div> -<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">if</span> (_game_state != <span class="keyword">nullptr</span>) {</div> -<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">delete</span> _game_state;</div> -<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> }</div> -<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> _game_state = <span class="keyword">nullptr</span>;</div> -<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> }</div> -<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> std::string get_id();</div> -<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div> -<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_class" href="classgame__state.html">game_state</a>* get_game_state();</div> -<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div> -<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordtype">bool</span> is_full();</div> -<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">bool</span> is_started();</div> -<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordtype">bool</span> is_finished();</div> -<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div> -<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// game update functions</span></div> -<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordtype">bool</span> start_game(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string& err);</div> -<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordtype">bool</span> try_add_player(<a class="code hl_class" href="classplayer.html">player</a>* new_player, std::string& err);</div> -<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">bool</span> try_remove_player(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string& err);</div> -<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">bool</span> play_card(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, <span class="keyword">const</span> std::string& card_id, std::string& err);</div> -<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordtype">bool</span> estimate_tricks(<a class="code hl_class" href="classplayer.html">player</a> *<a class="code hl_class" href="classplayer.html">player</a>, std::string& err, <span class="keywordtype">int</span> nof_tricks);</div> -<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div> -<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>};</div> +<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <a class="code hl_function" href="classgame__instance.html#a2b1d00adf8c933a98698f972827e48b9">game_instance</a>();</div> +<div class="foldopen" id="foldopen00031" data-start="{" data-end="}"> +<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classgame__instance.html#a1fa390603341beb15e09e5a4b03465c1"> 31</a></span> <a class="code hl_function" href="classgame__instance.html#a1fa390603341beb15e09e5a4b03465c1">~game_instance</a>() {</div> +<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">if</span> (_game_state != <span class="keyword">nullptr</span>) {</div> +<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">delete</span> _game_state;</div> +<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div> +<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> _game_state = <span class="keyword">nullptr</span>;</div> +<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> }</div> </div> -<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div> +<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div> +<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> std::string <a class="code hl_function" href="classgame__instance.html#a72cd93738171ffc856c3d77df5f967da">get_id</a>();</div> +<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_class" href="classgame__state.html">game_state</a>* <a class="code hl_function" href="classgame__instance.html#a852c73a12031d7fbd2095530df595c5c">get_game_state</a>();</div> <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div> -<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_GAME_H</span></div> -<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div> -<div class="ttc" id="aclassgame__instance_html"><div class="ttname"><a href="classgame__instance.html">game_instance</a></div><div class="ttdef"><b>Definition</b> game_instance.h:17</div></div> +<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__instance.html#a77d1f40b8727c74f278efe9168f26831">is_full</a>();</div> +<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__instance.html#a2c8a8be71f8c3016075cc08768ebbb64">is_started</a>();</div> +<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__instance.html#a5a080dfced3d2d1c697e36160b996a9c">is_finished</a>();</div> +<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div> +<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// game update functions</span></div> +<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordtype">bool</span> start_game(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string& err);</div> +<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__instance.html#a1176ce8464586487f9ae5676ca900e10">try_add_player</a>(<a class="code hl_class" href="classplayer.html">player</a>* new_player, std::string& err);</div> +<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__instance.html#a2c6fed45a14273b09a9f202481fa62aa">try_remove_player</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string& err);</div> +<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">bool</span> play_card(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, <span class="keyword">const</span> std::string& card_id, std::string& err);</div> +<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordtype">bool</span> estimate_tricks(<a class="code hl_class" href="classplayer.html">player</a> *<a class="code hl_class" href="classplayer.html">player</a>, std::string& err, <span class="keywordtype">int</span> nof_tricks);</div> +<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div> +<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>};</div> +</div> +<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div> +<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div> +<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_GAME_H</span></div> +<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div> +<div class="ttc" id="aclassgame__instance_html"><div class="ttname"><a href="classgame__instance.html">game_instance</a></div><div class="ttdoc">Class that modifies game state based on content received from client. The game instance functionaliti...</div><div class="ttdef"><b>Definition</b> game_instance.h:17</div></div> +<div class="ttc" id="aclassgame__instance_html_a1176ce8464586487f9ae5676ca900e10"><div class="ttname"><a href="classgame__instance.html#a1176ce8464586487f9ae5676ca900e10">game_instance::try_add_player</a></div><div class="ttdeci">bool try_add_player(player *new_player, std::string &err)</div><div class="ttdoc">Attempts to add player to the game.</div><div class="ttdef"><b>Definition</b> game_instance.cpp:107</div></div> +<div class="ttc" id="aclassgame__instance_html_a1fa390603341beb15e09e5a4b03465c1"><div class="ttname"><a href="classgame__instance.html#a1fa390603341beb15e09e5a4b03465c1">game_instance::~game_instance</a></div><div class="ttdeci">~game_instance()</div><div class="ttdoc">Destructs game instance object.</div><div class="ttdef"><b>Definition</b> game_instance.h:31</div></div> +<div class="ttc" id="aclassgame__instance_html_a2b1d00adf8c933a98698f972827e48b9"><div class="ttname"><a href="classgame__instance.html#a2b1d00adf8c933a98698f972827e48b9">game_instance::game_instance</a></div><div class="ttdeci">game_instance()</div><div class="ttdoc">Constructs a new game instance object.</div><div class="ttdef"><b>Definition</b> game_instance.cpp:13</div></div> +<div class="ttc" id="aclassgame__instance_html_a2c6fed45a14273b09a9f202481fa62aa"><div class="ttname"><a href="classgame__instance.html#a2c6fed45a14273b09a9f202481fa62aa">game_instance::try_remove_player</a></div><div class="ttdeci">bool try_remove_player(player *player, std::string &err)</div><div class="ttdoc">Attempts to remove player from the game. If the game hasn't started yet, the player can be easily rem...</div><div class="ttdef"><b>Definition</b> game_instance.cpp:76</div></div> +<div class="ttc" id="aclassgame__instance_html_a2c8a8be71f8c3016075cc08768ebbb64"><div class="ttname"><a href="classgame__instance.html#a2c8a8be71f8c3016075cc08768ebbb64">game_instance::is_started</a></div><div class="ttdeci">bool is_started()</div><div class="ttdoc">Checks whether game is started.</div><div class="ttdef"><b>Definition</b> game_instance.cpp:29</div></div> +<div class="ttc" id="aclassgame__instance_html_a5a080dfced3d2d1c697e36160b996a9c"><div class="ttname"><a href="classgame__instance.html#a5a080dfced3d2d1c697e36160b996a9c">game_instance::is_finished</a></div><div class="ttdeci">bool is_finished()</div><div class="ttdoc">Checks whether game is finished.</div><div class="ttdef"><b>Definition</b> game_instance.cpp:33</div></div> +<div class="ttc" id="aclassgame__instance_html_a72cd93738171ffc856c3d77df5f967da"><div class="ttname"><a href="classgame__instance.html#a72cd93738171ffc856c3d77df5f967da">game_instance::get_id</a></div><div class="ttdeci">std::string get_id()</div><div class="ttdoc">Accessor of game instance id.</div><div class="ttdef"><b>Definition</b> game_instance.cpp:21</div></div> +<div class="ttc" id="aclassgame__instance_html_a77d1f40b8727c74f278efe9168f26831"><div class="ttname"><a href="classgame__instance.html#a77d1f40b8727c74f278efe9168f26831">game_instance::is_full</a></div><div class="ttdeci">bool is_full()</div><div class="ttdoc">Checks whether game is already full. The game is full if 6 players have joined already.</div><div class="ttdef"><b>Definition</b> game_instance.cpp:25</div></div> +<div class="ttc" id="aclassgame__instance_html_a852c73a12031d7fbd2095530df595c5c"><div class="ttname"><a href="classgame__instance.html#a852c73a12031d7fbd2095530df595c5c">game_instance::get_game_state</a></div><div class="ttdeci">game_state * get_game_state()</div><div class="ttdoc">Accessor of current game state.</div><div class="ttdef"><b>Definition</b> game_instance.cpp:17</div></div> <div class="ttc" id="aclassgame__state_html"><div class="ttname"><a href="classgame__state.html">game_state</a></div><div class="ttdoc">Represents the state of the game.</div><div class="ttdef"><b>Definition</b> game_state.h:27</div></div> <div class="ttc" id="aclassplayer_html"><div class="ttname"><a href="classplayer.html">player</a></div><div class="ttdoc">Represents a player in the game.</div><div class="ttdef"><b>Definition</b> player.h:18</div></div> </div><!-- fragment --></div><!-- contents --> diff --git a/html/game__instance__manager_8h_source.html b/html/game__instance__manager_8h_source.html index f493403a18d8936f8152d761bd0685bafd9fcf92..7c3f09c0c470418a5a062620e2e8da18e314c0cd 100644 --- a/html/game__instance__manager_8h_source.html +++ b/html/game__instance__manager_8h_source.html @@ -145,7 +145,7 @@ $(function(){ initResizable(false); }); <div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div> <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_GAME_INSTANCE_MANAGER_H</span></div> <div class="ttc" id="aclassgame__instance__manager_html"><div class="ttname"><a href="classgame__instance__manager.html">game_instance_manager</a></div><div class="ttdef"><b>Definition</b> game_instance_manager.h:18</div></div> -<div class="ttc" id="aclassgame__instance_html"><div class="ttname"><a href="classgame__instance.html">game_instance</a></div><div class="ttdef"><b>Definition</b> game_instance.h:17</div></div> +<div class="ttc" id="aclassgame__instance_html"><div class="ttname"><a href="classgame__instance.html">game_instance</a></div><div class="ttdoc">Class that modifies game state based on content received from client. The game instance functionaliti...</div><div class="ttdef"><b>Definition</b> game_instance.h:17</div></div> <div class="ttc" id="aclassplayer_html"><div class="ttname"><a href="classplayer.html">player</a></div><div class="ttdoc">Represents a player in the game.</div><div class="ttdef"><b>Definition</b> player.h:18</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> diff --git a/html/game__state_8h_source.html b/html/game__state_8h_source.html index 2a10b4167614f0757e5c9da856f6c7b893df927c..6cf8b0a5255919bcccdaf2bd0f1afe792b7de721 100644 --- a/html/game__state_8h_source.html +++ b/html/game__state_8h_source.html @@ -128,145 +128,150 @@ $(function(){ initResizable(false); }); <div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* _trick_starting_player_idx; </div> <div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* _current_player_idx; </div> <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* _trump_color; </div> -<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* _trick_estimate_sum; </div> -<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div> -<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment">// constructors</span></div> -<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>);</div> -<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div> -<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_function" href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state</a>(</div> -<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">const</span> std::string& <span class="keywordtype">id</span>,</div> -<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">const</span> std::vector<player*>& players,</div> -<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <a class="code hl_class" href="classdeck.html">deck</a>* <a class="code hl_class" href="classdeck.html">deck</a>,</div> -<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_class" href="classtrick.html">trick</a>* current_trick,</div> -<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_class" href="classtrick.html">trick</a>* last_trick,</div> -<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div> -<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<bool></a>* <a class="code hl_function" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">is_started</a>,</div> -<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<bool></a>* <a class="code hl_function" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">is_finished</a>,</div> -<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<bool></a>* <a class="code hl_function" href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">is_estimation_phase</a>,</div> -<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> </div> -<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* round_number,</div> -<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* trick_number,</div> -<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* starting_player_idx,</div> -<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* trick_starting_player_idx,</div> -<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* current_player_idx,</div> -<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* trump_color,</div> -<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* trick_estimate_sum</div> -<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> );</div> -<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div> -<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> -<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment">// private functions (only used by game_state member functions)</span></div> -<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">int</span> get_player_index(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>) <span class="keyword">const</span>;</div> -<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div> -<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> [[nodiscard]] <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> get_number_of_turns() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div> -<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordtype">void</span> determine_trump_color() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div> -<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordtype">bool</span> can_be_played(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, <span class="keyword">const</span> <a class="code hl_class" href="classcard.html">card</a>* <a class="code hl_class" href="classcard.html">card</a>, std::string& err) <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> -<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="preprocessor">#endif</span></div> -<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div> -<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="keyword">public</span>:</div> -<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <a class="code hl_function" href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state</a>();</div> -<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div> -<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_function" href="classgame__state.html#a2fbc370f93617298719f61514afdb5bc">~game_state</a>() <span class="keyword">override</span>;</div> -<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div> -<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment">// accessors</span></div> -<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> [[nodiscard]] <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">is_full</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div> -<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> [[nodiscard]] <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">is_started</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div> -<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> [[nodiscard]] <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">is_finished</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div> -<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> [[nodiscard]] <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">is_estimation_phase</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> </div> -<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a371d6a6d84395b90c15d84549b05d553">is_player_in_game</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>) <span class="keyword">const</span>;</div> -<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div> -<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#ab3ef836a1b3a1e2bc9e429a018c72eca">get_round_number</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div> -<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15">get_trick_number</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> </div> -<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282">get_trick_estimate_sum</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> </div> -<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> [[nodiscard]] <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#aa75c4da6c0056e48e5040be8127d7473">get_max_round_number</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div> -<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4">get_trump_color</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> </div> -<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> [[nodiscard]] <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classgame__state.html#a2d16f420a8aa651685461a5efb8bb600">get_current_player</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div> -<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> [[nodiscard]] <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classgame__state.html#aa40554d105939c5dce934daaa858c242">get_trick_starting_player</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> </div> -<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> [[nodiscard]] <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classgame__state.html#af4c553229260e307ff1f78dd0c74506d">get_starting_player</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div> -<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> [[nodiscard]] <a class="code hl_class" href="classtrick.html">trick</a>* <a class="code hl_function" href="classgame__state.html#a472fd1721c7cc9e3689394f18c767bf9">get_trick</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> </div> -<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> [[nodiscard]] <a class="code hl_class" href="classtrick.html">trick</a>* <a class="code hl_function" href="classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b">get_last_trick</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div> -<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> std::vector<player*>& <a class="code hl_function" href="classgame__state.html#abcaccd551f938f961d12266e34c037d2">get_players</a>();</div> -<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div> -<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgame__state.html#a745dd23945b6165470c494b036ac4667">set_trick</a>(<a class="code hl_class" href="classtrick.html">trick</a>* new_trick);</div> -<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div> -<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> -<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="comment">// server-side state update functions</span></div> -<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d">remove_player</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string& err);</div> -<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> </div> -<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a4a4fde0700a05c589a6b9c4dbcffac18">add_player</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string& err);</div> -<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> </div> -<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">start_game</a>(std::string& err);</div> -<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> </div> -<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a67fdd4b5682715cd2d848031a9911b17">finish_game</a>(std::string& err) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* _trump_card_value; </div> +<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* _trick_estimate_sum; </div> +<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div> +<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">// constructors</span></div> +<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>);</div> +<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div> +<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_function" href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state</a>(</div> +<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">const</span> std::string& <span class="keywordtype">id</span>,</div> +<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">const</span> std::vector<player*>& players,</div> +<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_class" href="classdeck.html">deck</a>* <a class="code hl_class" href="classdeck.html">deck</a>,</div> +<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_class" href="classtrick.html">trick</a>* current_trick,</div> +<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_class" href="classtrick.html">trick</a>* last_trick,</div> +<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div> +<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<bool></a>* <a class="code hl_function" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">is_started</a>,</div> +<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<bool></a>* <a class="code hl_function" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">is_finished</a>,</div> +<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<bool></a>* <a class="code hl_function" href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">is_estimation_phase</a>,</div> +<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div> +<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* round_number,</div> +<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* trick_number,</div> +<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* starting_player_idx,</div> +<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* trick_starting_player_idx,</div> +<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* current_player_idx,</div> +<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* trump_color,</div> +<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* trump_card_value,</div> +<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* trick_estimate_sum</div> +<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> );</div> +<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div> +<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> +<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment">// private functions (only used by game_state member functions)</span></div> +<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordtype">int</span> get_player_index(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div> +<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> [[nodiscard]] <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> get_number_of_turns() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div> +<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keywordtype">void</span> determine_trump_color() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div> +<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordtype">bool</span> can_be_played(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, <span class="keyword">const</span> <a class="code hl_class" href="classcard.html">card</a>* <a class="code hl_class" href="classcard.html">card</a>, std::string& err) <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> +<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor">#endif</span></div> +<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div> +<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="keyword">public</span>:</div> +<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_function" href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state</a>();</div> +<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div> +<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_function" href="classgame__state.html#a2fbc370f93617298719f61514afdb5bc">~game_state</a>() <span class="keyword">override</span>;</div> +<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div> +<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment">// accessors</span></div> +<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> [[nodiscard]] <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">is_full</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div> +<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> [[nodiscard]] <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">is_started</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div> +<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> [[nodiscard]] <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">is_finished</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> </div> +<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> [[nodiscard]] <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">is_estimation_phase</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> </div> +<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a371d6a6d84395b90c15d84549b05d553">is_player_in_game</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> </div> +<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#ab3ef836a1b3a1e2bc9e429a018c72eca">get_round_number</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div> +<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15">get_trick_number</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div> +<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282">get_trick_estimate_sum</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div> +<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> [[nodiscard]] <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#aa75c4da6c0056e48e5040be8127d7473">get_max_round_number</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div> +<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4">get_trump_color</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div> +<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classgame__state.html#a115a9b1dbb65db44669363b407aa62ac">get_trump_card_value</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div> +<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> [[nodiscard]] <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classgame__state.html#a2d16f420a8aa651685461a5efb8bb600">get_current_player</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> </div> +<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> [[nodiscard]] <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classgame__state.html#aa40554d105939c5dce934daaa858c242">get_trick_starting_player</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div> +<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> [[nodiscard]] <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classgame__state.html#af4c553229260e307ff1f78dd0c74506d">get_starting_player</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div> +<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> [[nodiscard]] <a class="code hl_class" href="classtrick.html">trick</a>* <a class="code hl_function" href="classgame__state.html#a472fd1721c7cc9e3689394f18c767bf9">get_trick</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div> +<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> [[nodiscard]] <a class="code hl_class" href="classtrick.html">trick</a>* <a class="code hl_function" href="classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b">get_last_trick</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div> +<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> std::vector<player*>& <a class="code hl_function" href="classgame__state.html#abcaccd551f938f961d12266e34c037d2">get_players</a>();</div> +<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div> +<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgame__state.html#a745dd23945b6165470c494b036ac4667">set_trick</a>(<a class="code hl_class" href="classtrick.html">trick</a>* new_trick);</div> +<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div> +<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> +<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="comment">// server-side state update functions</span></div> +<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d">remove_player</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string& err);</div> +<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div> +<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a4a4fde0700a05c589a6b9c4dbcffac18">add_player</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string& err);</div> +<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> </div> +<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">start_game</a>(std::string& err);</div> <div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> </div> -<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgame__state.html#ab520d4076c53f70a68bc19f355243a4d">setup_round</a>(std::string& err);</div> -<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> </div> -<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgame__state.html#ad2e967638043670ebae93dd6ec32e91e">wrap_up_round</a>(std::string& err);</div> -<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> </div> -<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#ac4ebff625d83c633c124890537d60354">estimate_tricks</a>(<span class="keyword">const</span> <a class="code hl_class" href="classplayer.html">player</a> *<a class="code hl_class" href="classplayer.html">player</a>, std::string &err, <span class="keywordtype">int</span> trick_estimate);</div> -<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> </div> -<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">play_card</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, <span class="keyword">const</span> std::string& card_id, std::string& err);</div> -<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> </div> -<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d">update_current_player</a>(std::string& err);</div> -<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span><span class="preprocessor">#endif</span></div> -<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> </div> -<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span><span class="comment">// serializable interface</span></div> -<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgame__state.html#a54873cd18b46555915d150a6d8dd6f83">write_into_json</a>(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) <span class="keyword">const override</span>;</div> -<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> </div> -<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <span class="keyword">static</span> <a class="code hl_class" href="classgame__state.html">game_state</a>* <a class="code hl_function" href="classgame__state.html#a794d484961c92b5b737586ec5599963f">from_json</a>(<span class="keyword">const</span> rapidjson::Value& json);</div> -<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div> -<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span>};</div> -</div> +<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a67fdd4b5682715cd2d848031a9911b17">finish_game</a>(std::string& err) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> </div> +<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgame__state.html#ab520d4076c53f70a68bc19f355243a4d">setup_round</a>(std::string& err);</div> +<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> </div> +<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgame__state.html#ad2e967638043670ebae93dd6ec32e91e">wrap_up_round</a>(std::string& err);</div> +<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> </div> +<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#ac4ebff625d83c633c124890537d60354">estimate_tricks</a>(<span class="keyword">const</span> <a class="code hl_class" href="classplayer.html">player</a> *<a class="code hl_class" href="classplayer.html">player</a>, std::string &err, <span class="keywordtype">int</span> trick_estimate);</div> +<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> </div> +<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">play_card</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, <span class="keyword">const</span> std::string& card_id, std::string& err);</div> +<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> </div> +<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d">update_current_player</a>(std::string& err);</div> +<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span><span class="preprocessor">#endif</span></div> +<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> </div> +<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span><span class="comment">// serializable interface</span></div> +<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classgame__state.html#a54873cd18b46555915d150a6d8dd6f83">write_into_json</a>(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) <span class="keyword">const override</span>;</div> <div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> </div> -<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_GAME_STATE_H</span></div> +<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <span class="keyword">static</span> <a class="code hl_class" href="classgame__state.html">game_state</a>* <a class="code hl_function" href="classgame__state.html#a794d484961c92b5b737586ec5599963f">from_json</a>(<span class="keyword">const</span> rapidjson::Value& json);</div> +<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> </div> +<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span>};</div> +</div> +<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> </div> +<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_GAME_STATE_H</span></div> <div class="ttc" id="aclasscard_html"><div class="ttname"><a href="classcard.html">card</a></div><div class="ttdoc">Represents a card in the game.</div><div class="ttdef"><b>Definition</b> card.h:15</div></div> <div class="ttc" id="aclassdeck_html"><div class="ttname"><a href="classdeck.html">deck</a></div><div class="ttdoc">Represents the card deck in the game.</div><div class="ttdef"><b>Definition</b> deck.h:28</div></div> <div class="ttc" id="aclassgame__state_html"><div class="ttname"><a href="classgame__state.html">game_state</a></div><div class="ttdoc">Represents the state of the game.</div><div class="ttdef"><b>Definition</b> game_state.h:27</div></div> -<div class="ttc" id="aclassgame__state_html_a0c10b830e222d726557c3c33685c595a"><div class="ttname"><a href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state::game_state</a></div><div class="ttdeci">game_state()</div><div class="ttdoc">Constructs a new game_state object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:54</div></div> -<div class="ttc" id="aclassgame__state_html_a2d16f420a8aa651685461a5efb8bb600"><div class="ttname"><a href="classgame__state.html#a2d16f420a8aa651685461a5efb8bb600">game_state::get_current_player</a></div><div class="ttdeci">player * get_current_player() const</div><div class="ttdoc">Gets the current player.</div><div class="ttdef"><b>Definition</b> game_state.cpp:112</div></div> -<div class="ttc" id="aclassgame__state_html_a2fbc370f93617298719f61514afdb5bc"><div class="ttname"><a href="classgame__state.html#a2fbc370f93617298719f61514afdb5bc">game_state::~game_state</a></div><div class="ttdeci">~game_state() override</div><div class="ttdef"><b>Definition</b> game_state.cpp:75</div></div> -<div class="ttc" id="aclassgame__state_html_a371d6a6d84395b90c15d84549b05d553"><div class="ttname"><a href="classgame__state.html#a371d6a6d84395b90c15d84549b05d553">game_state::is_player_in_game</a></div><div class="ttdeci">bool is_player_in_game(player *player) const</div><div class="ttdoc">Checks if the given player is in the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:191</div></div> -<div class="ttc" id="aclassgame__state_html_a3fce12f31ad0aab82b0d2da90e3e8e15"><div class="ttname"><a href="classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15">game_state::get_trick_number</a></div><div class="ttdeci">int get_trick_number() const</div><div class="ttdoc">Gets the trick number.</div><div class="ttdef"><b>Definition</b> game_state.cpp:176</div></div> -<div class="ttc" id="aclassgame__state_html_a4327f753f1f5341f9fe3774ea3fbc99b"><div class="ttname"><a href="classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b">game_state::get_last_trick</a></div><div class="ttdeci">trick * get_last_trick() const</div><div class="ttdoc">Gets the previous trick.</div><div class="ttdef"><b>Definition</b> game_state.cpp:151</div></div> -<div class="ttc" id="aclassgame__state_html_a472fd1721c7cc9e3689394f18c767bf9"><div class="ttname"><a href="classgame__state.html#a472fd1721c7cc9e3689394f18c767bf9">game_state::get_trick</a></div><div class="ttdeci">trick * get_trick() const</div><div class="ttdoc">Gets the current trick.</div><div class="ttdef"><b>Definition</b> game_state.cpp:146</div></div> -<div class="ttc" id="aclassgame__state_html_a49851709fcec061d36478ed2fdcc3d9d"><div class="ttname"><a href="classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d">game_state::update_current_player</a></div><div class="ttdeci">bool update_current_player(std::string &err)</div><div class="ttdoc">Updates the current player after estimating tricks or playing cards.</div><div class="ttdef"><b>Definition</b> game_state.cpp:308</div></div> -<div class="ttc" id="aclassgame__state_html_a4a4fde0700a05c589a6b9c4dbcffac18"><div class="ttname"><a href="classgame__state.html#a4a4fde0700a05c589a6b9c4dbcffac18">game_state::add_player</a></div><div class="ttdeci">bool add_player(player *player, std::string &err)</div><div class="ttdoc">Adds a player to the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:451</div></div> -<div class="ttc" id="aclassgame__state_html_a54873cd18b46555915d150a6d8dd6f83"><div class="ttname"><a href="classgame__state.html#a54873cd18b46555915d150a6d8dd6f83">game_state::write_into_json</a></div><div class="ttdeci">void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</div><div class="ttdoc">Serializes a game_state object into a json object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:483</div></div> -<div class="ttc" id="aclassgame__state_html_a67fdd4b5682715cd2d848031a9911b17"><div class="ttname"><a href="classgame__state.html#a67fdd4b5682715cd2d848031a9911b17">game_state::finish_game</a></div><div class="ttdeci">bool finish_game(std::string &err) const</div><div class="ttdoc">Finishes a game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:474</div></div> -<div class="ttc" id="aclassgame__state_html_a6c65d95086a88b8d111de5553e1210ec"><div class="ttname"><a href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">game_state::play_card</a></div><div class="ttdeci">bool play_card(player *player, const std::string &card_id, std::string &err)</div><div class="ttdoc">Plays a card.</div><div class="ttdef"><b>Definition</b> game_state.cpp:409</div></div> -<div class="ttc" id="aclassgame__state_html_a6ca6536eaec3404ff9b1ab39b8df4e67"><div class="ttname"><a href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">game_state::start_game</a></div><div class="ttdeci">bool start_game(std::string &err)</div><div class="ttdoc">Starts the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:371</div></div> -<div class="ttc" id="aclassgame__state_html_a734fc594d457aa4e6db5bc7467e6442d"><div class="ttname"><a href="classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d">game_state::remove_player</a></div><div class="ttdeci">bool remove_player(player *player, std::string &err)</div><div class="ttdoc">Removes a player from the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:430</div></div> -<div class="ttc" id="aclassgame__state_html_a745dd23945b6165470c494b036ac4667"><div class="ttname"><a href="classgame__state.html#a745dd23945b6165470c494b036ac4667">game_state::set_trick</a></div><div class="ttdeci">void set_trick(trick *new_trick)</div><div class="ttdoc">Sets the trick to the given trick.</div><div class="ttdef"><b>Definition</b> game_state.cpp:201</div></div> -<div class="ttc" id="aclassgame__state_html_a794d484961c92b5b737586ec5599963f"><div class="ttname"><a href="classgame__state.html#a794d484961c92b5b737586ec5599963f">game_state::from_json</a></div><div class="ttdeci">static game_state * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a game_state object from a json object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:547</div></div> -<div class="ttc" id="aclassgame__state_html_a88d19342ee76acc4660b3e56e8c126eb"><div class="ttname"><a href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">game_state::is_estimation_phase</a></div><div class="ttdeci">bool is_estimation_phase() const</div><div class="ttdoc">Checks if the game is in estimation phase.</div><div class="ttdef"><b>Definition</b> game_state.cpp:120</div></div> -<div class="ttc" id="aclassgame__state_html_a9b83de8a89e3bb506184492d22c3cf45"><div class="ttname"><a href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">game_state::is_finished</a></div><div class="ttdeci">bool is_finished() const</div><div class="ttdoc">Checks if the game is finished.</div><div class="ttdef"><b>Definition</b> game_state.cpp:166</div></div> -<div class="ttc" id="aclassgame__state_html_aa0092c41779f38eba5e921e43b38559c"><div class="ttname"><a href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">game_state::is_started</a></div><div class="ttdeci">bool is_started() const</div><div class="ttdoc">Checks if the game is started.</div><div class="ttdef"><b>Definition</b> game_state.cpp:161</div></div> -<div class="ttc" id="aclassgame__state_html_aa40554d105939c5dce934daaa858c242"><div class="ttname"><a href="classgame__state.html#aa40554d105939c5dce934daaa858c242">game_state::get_trick_starting_player</a></div><div class="ttdeci">player * get_trick_starting_player() const</div><div class="ttdoc">Gets the starting player of the current trick.</div><div class="ttdef"><b>Definition</b> game_state.cpp:130</div></div> -<div class="ttc" id="aclassgame__state_html_aa5263d03c85bce1e9d252e9017cbe282"><div class="ttname"><a href="classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282">game_state::get_trick_estimate_sum</a></div><div class="ttdeci">int get_trick_estimate_sum() const</div><div class="ttdoc">Gets the trick estimate sum.</div><div class="ttdef"><b>Definition</b> game_state.cpp:181</div></div> -<div class="ttc" id="aclassgame__state_html_aa75c4da6c0056e48e5040be8127d7473"><div class="ttname"><a href="classgame__state.html#aa75c4da6c0056e48e5040be8127d7473">game_state::get_max_round_number</a></div><div class="ttdeci">unsigned int get_max_round_number() const</div><div class="ttdoc">Gets the maximum round number.</div><div class="ttdef"><b>Definition</b> game_state.cpp:186</div></div> -<div class="ttc" id="aclassgame__state_html_ab3ef836a1b3a1e2bc9e429a018c72eca"><div class="ttname"><a href="classgame__state.html#ab3ef836a1b3a1e2bc9e429a018c72eca">game_state::get_round_number</a></div><div class="ttdeci">int get_round_number() const</div><div class="ttdoc">Gets the round number.</div><div class="ttdef"><b>Definition</b> game_state.cpp:171</div></div> -<div class="ttc" id="aclassgame__state_html_ab520d4076c53f70a68bc19f355243a4d"><div class="ttname"><a href="classgame__state.html#ab520d4076c53f70a68bc19f355243a4d">game_state::setup_round</a></div><div class="ttdeci">void setup_round(std::string &err)</div><div class="ttdoc">Sets up a round.</div><div class="ttdef"><b>Definition</b> game_state.cpp:349</div></div> -<div class="ttc" id="aclassgame__state_html_abcaccd551f938f961d12266e34c037d2"><div class="ttname"><a href="classgame__state.html#abcaccd551f938f961d12266e34c037d2">game_state::get_players</a></div><div class="ttdeci">std::vector< player * > & get_players()</div><div class="ttdoc">Gets the players that joined the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:196</div></div> -<div class="ttc" id="aclassgame__state_html_abdf6c5116ed643773d676c90a05e6fe4"><div class="ttname"><a href="classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4">game_state::get_trump_color</a></div><div class="ttdeci">int get_trump_color() const</div><div class="ttdoc">Gets the trump color.</div><div class="ttdef"><b>Definition</b> game_state.cpp:125</div></div> -<div class="ttc" id="aclassgame__state_html_ac4ebff625d83c633c124890537d60354"><div class="ttname"><a href="classgame__state.html#ac4ebff625d83c633c124890537d60354">game_state::estimate_tricks</a></div><div class="ttdeci">bool estimate_tricks(const player *player, std::string &err, int trick_estimate)</div><div class="ttdoc">Sets the trick estimates for a player.</div><div class="ttdef"><b>Definition</b> game_state.cpp:387</div></div> -<div class="ttc" id="aclassgame__state_html_ad2e967638043670ebae93dd6ec32e91e"><div class="ttname"><a href="classgame__state.html#ad2e967638043670ebae93dd6ec32e91e">game_state::wrap_up_round</a></div><div class="ttdeci">void wrap_up_round(std::string &err)</div><div class="ttdoc">Wraps up a round.</div><div class="ttdef"><b>Definition</b> game_state.cpp:296</div></div> -<div class="ttc" id="aclassgame__state_html_ae161c283e275a57d71834754d11e9e40"><div class="ttname"><a href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">game_state::is_full</a></div><div class="ttdeci">bool is_full() const</div><div class="ttdoc">Checks if the game is full.</div><div class="ttdef"><b>Definition</b> game_state.cpp:156</div></div> -<div class="ttc" id="aclassgame__state_html_af4c553229260e307ff1f78dd0c74506d"><div class="ttname"><a href="classgame__state.html#af4c553229260e307ff1f78dd0c74506d">game_state::get_starting_player</a></div><div class="ttdeci">player * get_starting_player() const</div><div class="ttdoc">Gets the starting player of the current round.</div><div class="ttdef"><b>Definition</b> game_state.cpp:138</div></div> +<div class="ttc" id="aclassgame__state_html_a0c10b830e222d726557c3c33685c595a"><div class="ttname"><a href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state::game_state</a></div><div class="ttdeci">game_state()</div><div class="ttdoc">Constructs a new game_state object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:56</div></div> +<div class="ttc" id="aclassgame__state_html_a115a9b1dbb65db44669363b407aa62ac"><div class="ttname"><a href="classgame__state.html#a115a9b1dbb65db44669363b407aa62ac">game_state::get_trump_card_value</a></div><div class="ttdeci">int get_trump_card_value() const</div><div class="ttdoc">Gets the value of the trump card to display in GUI.</div><div class="ttdef"><b>Definition</b> game_state.cpp:135</div></div> +<div class="ttc" id="aclassgame__state_html_a2d16f420a8aa651685461a5efb8bb600"><div class="ttname"><a href="classgame__state.html#a2d16f420a8aa651685461a5efb8bb600">game_state::get_current_player</a></div><div class="ttdeci">player * get_current_player() const</div><div class="ttdoc">Gets the current player.</div><div class="ttdef"><b>Definition</b> game_state.cpp:117</div></div> +<div class="ttc" id="aclassgame__state_html_a2fbc370f93617298719f61514afdb5bc"><div class="ttname"><a href="classgame__state.html#a2fbc370f93617298719f61514afdb5bc">game_state::~game_state</a></div><div class="ttdeci">~game_state() override</div><div class="ttdef"><b>Definition</b> game_state.cpp:78</div></div> +<div class="ttc" id="aclassgame__state_html_a371d6a6d84395b90c15d84549b05d553"><div class="ttname"><a href="classgame__state.html#a371d6a6d84395b90c15d84549b05d553">game_state::is_player_in_game</a></div><div class="ttdeci">bool is_player_in_game(player *player) const</div><div class="ttdoc">Checks if the given player is in the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:202</div></div> +<div class="ttc" id="aclassgame__state_html_a3fce12f31ad0aab82b0d2da90e3e8e15"><div class="ttname"><a href="classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15">game_state::get_trick_number</a></div><div class="ttdeci">int get_trick_number() const</div><div class="ttdoc">Gets the trick number.</div><div class="ttdef"><b>Definition</b> game_state.cpp:186</div></div> +<div class="ttc" id="aclassgame__state_html_a4327f753f1f5341f9fe3774ea3fbc99b"><div class="ttname"><a href="classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b">game_state::get_last_trick</a></div><div class="ttdeci">trick * get_last_trick() const</div><div class="ttdoc">Gets the previous trick.</div><div class="ttdef"><b>Definition</b> game_state.cpp:161</div></div> +<div class="ttc" id="aclassgame__state_html_a472fd1721c7cc9e3689394f18c767bf9"><div class="ttname"><a href="classgame__state.html#a472fd1721c7cc9e3689394f18c767bf9">game_state::get_trick</a></div><div class="ttdeci">trick * get_trick() const</div><div class="ttdoc">Gets the current trick.</div><div class="ttdef"><b>Definition</b> game_state.cpp:156</div></div> +<div class="ttc" id="aclassgame__state_html_a49851709fcec061d36478ed2fdcc3d9d"><div class="ttname"><a href="classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d">game_state::update_current_player</a></div><div class="ttdeci">bool update_current_player(std::string &err)</div><div class="ttdoc">Updates the current player after estimating tricks or playing cards.</div><div class="ttdef"><b>Definition</b> game_state.cpp:323</div></div> +<div class="ttc" id="aclassgame__state_html_a4a4fde0700a05c589a6b9c4dbcffac18"><div class="ttname"><a href="classgame__state.html#a4a4fde0700a05c589a6b9c4dbcffac18">game_state::add_player</a></div><div class="ttdeci">bool add_player(player *player, std::string &err)</div><div class="ttdoc">Adds a player to the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:466</div></div> +<div class="ttc" id="aclassgame__state_html_a54873cd18b46555915d150a6d8dd6f83"><div class="ttname"><a href="classgame__state.html#a54873cd18b46555915d150a6d8dd6f83">game_state::write_into_json</a></div><div class="ttdeci">void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</div><div class="ttdoc">Serializes a game_state object into a json object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:518</div></div> +<div class="ttc" id="aclassgame__state_html_a67fdd4b5682715cd2d848031a9911b17"><div class="ttname"><a href="classgame__state.html#a67fdd4b5682715cd2d848031a9911b17">game_state::finish_game</a></div><div class="ttdeci">bool finish_game(std::string &err) const</div><div class="ttdoc">Finishes a game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:510</div></div> +<div class="ttc" id="aclassgame__state_html_a6c65d95086a88b8d111de5553e1210ec"><div class="ttname"><a href="classgame__state.html#a6c65d95086a88b8d111de5553e1210ec">game_state::play_card</a></div><div class="ttdeci">bool play_card(player *player, const std::string &card_id, std::string &err)</div><div class="ttdoc">Plays a card.</div><div class="ttdef"><b>Definition</b> game_state.cpp:424</div></div> +<div class="ttc" id="aclassgame__state_html_a6ca6536eaec3404ff9b1ab39b8df4e67"><div class="ttname"><a href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">game_state::start_game</a></div><div class="ttdeci">bool start_game(std::string &err)</div><div class="ttdoc">Starts the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:386</div></div> +<div class="ttc" id="aclassgame__state_html_a734fc594d457aa4e6db5bc7467e6442d"><div class="ttname"><a href="classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d">game_state::remove_player</a></div><div class="ttdeci">bool remove_player(player *player, std::string &err)</div><div class="ttdoc">Removes a player from the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:445</div></div> +<div class="ttc" id="aclassgame__state_html_a745dd23945b6165470c494b036ac4667"><div class="ttname"><a href="classgame__state.html#a745dd23945b6165470c494b036ac4667">game_state::set_trick</a></div><div class="ttdeci">void set_trick(trick *new_trick)</div><div class="ttdoc">Sets the trick to the given trick.</div><div class="ttdef"><b>Definition</b> game_state.cpp:212</div></div> +<div class="ttc" id="aclassgame__state_html_a794d484961c92b5b737586ec5599963f"><div class="ttname"><a href="classgame__state.html#a794d484961c92b5b737586ec5599963f">game_state::from_json</a></div><div class="ttdeci">static game_state * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a game_state object from a json object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:586</div></div> +<div class="ttc" id="aclassgame__state_html_a88d19342ee76acc4660b3e56e8c126eb"><div class="ttname"><a href="classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb">game_state::is_estimation_phase</a></div><div class="ttdeci">bool is_estimation_phase() const</div><div class="ttdoc">Checks if the game is in estimation phase.</div><div class="ttdef"><b>Definition</b> game_state.cpp:125</div></div> +<div class="ttc" id="aclassgame__state_html_a9b83de8a89e3bb506184492d22c3cf45"><div class="ttname"><a href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">game_state::is_finished</a></div><div class="ttdeci">bool is_finished() const</div><div class="ttdoc">Checks if the game is finished.</div><div class="ttdef"><b>Definition</b> game_state.cpp:176</div></div> +<div class="ttc" id="aclassgame__state_html_aa0092c41779f38eba5e921e43b38559c"><div class="ttname"><a href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">game_state::is_started</a></div><div class="ttdeci">bool is_started() const</div><div class="ttdoc">Checks if the game is started.</div><div class="ttdef"><b>Definition</b> game_state.cpp:171</div></div> +<div class="ttc" id="aclassgame__state_html_aa40554d105939c5dce934daaa858c242"><div class="ttname"><a href="classgame__state.html#aa40554d105939c5dce934daaa858c242">game_state::get_trick_starting_player</a></div><div class="ttdeci">player * get_trick_starting_player() const</div><div class="ttdoc">Gets the starting player of the current trick.</div><div class="ttdef"><b>Definition</b> game_state.cpp:140</div></div> +<div class="ttc" id="aclassgame__state_html_aa5263d03c85bce1e9d252e9017cbe282"><div class="ttname"><a href="classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282">game_state::get_trick_estimate_sum</a></div><div class="ttdeci">int get_trick_estimate_sum() const</div><div class="ttdoc">Gets the trick estimate sum.</div><div class="ttdef"><b>Definition</b> game_state.cpp:191</div></div> +<div class="ttc" id="aclassgame__state_html_aa75c4da6c0056e48e5040be8127d7473"><div class="ttname"><a href="classgame__state.html#aa75c4da6c0056e48e5040be8127d7473">game_state::get_max_round_number</a></div><div class="ttdeci">unsigned int get_max_round_number() const</div><div class="ttdoc">Gets the maximum round number.</div><div class="ttdef"><b>Definition</b> game_state.cpp:196</div></div> +<div class="ttc" id="aclassgame__state_html_ab3ef836a1b3a1e2bc9e429a018c72eca"><div class="ttname"><a href="classgame__state.html#ab3ef836a1b3a1e2bc9e429a018c72eca">game_state::get_round_number</a></div><div class="ttdeci">int get_round_number() const</div><div class="ttdoc">Gets the round number.</div><div class="ttdef"><b>Definition</b> game_state.cpp:181</div></div> +<div class="ttc" id="aclassgame__state_html_ab520d4076c53f70a68bc19f355243a4d"><div class="ttname"><a href="classgame__state.html#ab520d4076c53f70a68bc19f355243a4d">game_state::setup_round</a></div><div class="ttdeci">void setup_round(std::string &err)</div><div class="ttdoc">Sets up a round.</div><div class="ttdef"><b>Definition</b> game_state.cpp:364</div></div> +<div class="ttc" id="aclassgame__state_html_abcaccd551f938f961d12266e34c037d2"><div class="ttname"><a href="classgame__state.html#abcaccd551f938f961d12266e34c037d2">game_state::get_players</a></div><div class="ttdeci">std::vector< player * > & get_players()</div><div class="ttdoc">Gets the players that joined the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:207</div></div> +<div class="ttc" id="aclassgame__state_html_abdf6c5116ed643773d676c90a05e6fe4"><div class="ttname"><a href="classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4">game_state::get_trump_color</a></div><div class="ttdeci">int get_trump_color() const</div><div class="ttdoc">Gets the trump color.</div><div class="ttdef"><b>Definition</b> game_state.cpp:130</div></div> +<div class="ttc" id="aclassgame__state_html_ac4ebff625d83c633c124890537d60354"><div class="ttname"><a href="classgame__state.html#ac4ebff625d83c633c124890537d60354">game_state::estimate_tricks</a></div><div class="ttdeci">bool estimate_tricks(const player *player, std::string &err, int trick_estimate)</div><div class="ttdoc">Sets the trick estimates for a player.</div><div class="ttdef"><b>Definition</b> game_state.cpp:402</div></div> +<div class="ttc" id="aclassgame__state_html_ad2e967638043670ebae93dd6ec32e91e"><div class="ttname"><a href="classgame__state.html#ad2e967638043670ebae93dd6ec32e91e">game_state::wrap_up_round</a></div><div class="ttdeci">void wrap_up_round(std::string &err)</div><div class="ttdoc">Wraps up a round.</div><div class="ttdef"><b>Definition</b> game_state.cpp:311</div></div> +<div class="ttc" id="aclassgame__state_html_ae161c283e275a57d71834754d11e9e40"><div class="ttname"><a href="classgame__state.html#ae161c283e275a57d71834754d11e9e40">game_state::is_full</a></div><div class="ttdeci">bool is_full() const</div><div class="ttdoc">Checks if the game is full.</div><div class="ttdef"><b>Definition</b> game_state.cpp:166</div></div> +<div class="ttc" id="aclassgame__state_html_af4c553229260e307ff1f78dd0c74506d"><div class="ttname"><a href="classgame__state.html#af4c553229260e307ff1f78dd0c74506d">game_state::get_starting_player</a></div><div class="ttdeci">player * get_starting_player() const</div><div class="ttdoc">Gets the starting player of the current round.</div><div class="ttdef"><b>Definition</b> game_state.cpp:148</div></div> <div class="ttc" id="aclassplayer_html"><div class="ttname"><a href="classplayer.html">player</a></div><div class="ttdoc">Represents a player in the game.</div><div class="ttdef"><b>Definition</b> player.h:18</div></div> <div class="ttc" id="aclassserializable__value_html"><div class="ttname"><a href="classserializable__value.html">serializable_value</a></div><div class="ttdef"><b>Definition</b> serializable_value.h:27</div></div> <div class="ttc" id="aclasstrick_html"><div class="ttname"><a href="classtrick.html">trick</a></div><div class="ttdoc">Represents the trick in the game.</div><div class="ttdef"><b>Definition</b> trick.h:28</div></div> diff --git a/html/hand_8h_source.html b/html/hand_8h_source.html index e7505db67d8456f085a8791547d8e4b946129ee7..d3f5278dede3f0433d9b7cf7257d3ebc91cc07b9 100644 --- a/html/hand_8h_source.html +++ b/html/hand_8h_source.html @@ -111,47 +111,49 @@ $(function(){ initResizable(false); }); <div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div> <div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <a class="code hl_class" href="classcard.html">card</a>* remove_card(<a class="code hl_class" href="classcard.html">card</a>* <a class="code hl_class" href="classcard.html">card</a>);</div> <div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div> -<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keyword">public</span>:</div> -<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div> -<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment">// constructors and destructor</span></div> -<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_function" href="classhand.html#ae8d7de2589266f57271ac191dab8cd64">hand</a>();</div> -<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div> -<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_function" href="classhand.html#ae8d7de2589266f57271ac191dab8cd64">hand</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>, <span class="keyword">const</span> std::vector<card*>& cards);</div> -<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div> -<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classhand.html#ae8d7de2589266f57271ac191dab8cd64">hand</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>);</div> -<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div> -<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <a class="code hl_function" href="classhand.html#af3ffc5e5b46f04b14f12a9fc130b220a">~hand</a>() <span class="keyword">override</span>;</div> -<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div> -<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment">// accessors</span></div> -<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> [[nodiscard]] <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classhand.html#adc90d109b7b564a0dbca0b0798c99641">get_nof_cards</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div> -<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> [[nodiscard]] std::vector<card*> <a class="code hl_function" href="classhand.html#ad104b0376b1a13d987f349dd524ca47f">get_cards</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div> -<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classhand.html#a0a50cbbb167e6a1d633dd48bc4b695fe">try_get_card</a>(<span class="keyword">const</span> std::string& card_id, <a class="code hl_class" href="classcard.html">card</a>*& hand_card) <span class="keyword">const</span>;</div> -<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div> -<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> -<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment">// state update functions</span></div> -<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classhand.html#ad4749893f36ff1d6dcda3bb18eaedffb">add_card</a>(<a class="code hl_class" href="classcard.html">card</a>* <a class="code hl_class" href="classcard.html">card</a>, std::string& err);</div> -<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div> -<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">bool</span> remove_card(std::string card_id, std::string& err);</div> -<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor">#endif</span></div> +<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div> +<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keyword">public</span>:</div> +<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div> +<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment">// constructors and destructor</span></div> +<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <a class="code hl_function" href="classhand.html#ae8d7de2589266f57271ac191dab8cd64">hand</a>();</div> +<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div> +<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_function" href="classhand.html#ae8d7de2589266f57271ac191dab8cd64">hand</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>, <span class="keyword">const</span> std::vector<card*>& cards);</div> +<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div> +<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">explicit</span> <a class="code hl_function" href="classhand.html#ae8d7de2589266f57271ac191dab8cd64">hand</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>);</div> +<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div> +<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_function" href="classhand.html#af3ffc5e5b46f04b14f12a9fc130b220a">~hand</a>() <span class="keyword">override</span>;</div> +<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div> +<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment">// accessors</span></div> +<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> [[nodiscard]] <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classhand.html#adc90d109b7b564a0dbca0b0798c99641">get_nof_cards</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div> +<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> [[nodiscard]] std::vector<card*> <a class="code hl_function" href="classhand.html#ad104b0376b1a13d987f349dd524ca47f">get_cards</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div> +<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classhand.html#a0a50cbbb167e6a1d633dd48bc4b695fe">try_get_card</a>(<span class="keyword">const</span> std::string& card_id, <a class="code hl_class" href="classcard.html">card</a>*& hand_card) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div> +<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordtype">bool</span> remove_card(std::string card_id, std::string& err);</div> +<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div> +<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> +<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment">// state update functions</span></div> +<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classhand.html#ad4749893f36ff1d6dcda3bb18eaedffb">add_card</a>(<a class="code hl_class" href="classcard.html">card</a>* <a class="code hl_class" href="classcard.html">card</a>, std::string& err);</div> <div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div> -<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment">// serialization interface</span></div> -<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classhand.html#a505a82447d0ae305dadcc9c4aa54071e">write_into_json</a>(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) <span class="keyword">const override</span>;</div> -<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div> -<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">static</span> <a class="code hl_class" href="classhand.html">hand</a>* <a class="code hl_function" href="classhand.html#aa9cffdf932d80c7304a335074403e785">from_json</a>(<span class="keyword">const</span> rapidjson::Value& json);</div> -<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div> -<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span>};</div> -</div> +<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="preprocessor">#endif</span></div> +<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div> +<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment">// serialization interface</span></div> +<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classhand.html#a505a82447d0ae305dadcc9c4aa54071e">write_into_json</a>(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) <span class="keyword">const override</span>;</div> +<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div> +<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">static</span> <a class="code hl_class" href="classhand.html">hand</a>* <a class="code hl_function" href="classhand.html#aa9cffdf932d80c7304a335074403e785">from_json</a>(<span class="keyword">const</span> rapidjson::Value& json);</div> <div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div> -<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_HAND_H</span></div> +<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span>};</div> +</div> +<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div> +<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_HAND_H</span></div> <div class="ttc" id="aclasscard_html"><div class="ttname"><a href="classcard.html">card</a></div><div class="ttdoc">Represents a card in the game.</div><div class="ttdef"><b>Definition</b> card.h:15</div></div> <div class="ttc" id="aclasshand_html"><div class="ttname"><a href="classhand.html">hand</a></div><div class="ttdoc">Represents a player's hand in the game.</div><div class="ttdef"><b>Definition</b> hand.h:15</div></div> <div class="ttc" id="aclasshand_html_a0a50cbbb167e6a1d633dd48bc4b695fe"><div class="ttname"><a href="classhand.html#a0a50cbbb167e6a1d633dd48bc4b695fe">hand::try_get_card</a></div><div class="ttdeci">bool try_get_card(const std::string &card_id, card *&hand_card) const</div><div class="ttdoc">Tries to get a specific card from the hand.</div><div class="ttdef"><b>Definition</b> hand.cpp:33</div></div> <div class="ttc" id="aclasshand_html_a505a82447d0ae305dadcc9c4aa54071e"><div class="ttname"><a href="classhand.html#a505a82447d0ae305dadcc9c4aa54071e">hand::write_into_json</a></div><div class="ttdeci">void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</div><div class="ttdoc">Serializes a hand object into a json object.</div><div class="ttdef"><b>Definition</b> hand.cpp:83</div></div> <div class="ttc" id="aclasshand_html_aa9cffdf932d80c7304a335074403e785"><div class="ttname"><a href="classhand.html#aa9cffdf932d80c7304a335074403e785">hand::from_json</a></div><div class="ttdeci">static hand * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a hand object from a json object.</div><div class="ttdef"><b>Definition</b> hand.cpp:88</div></div> <div class="ttc" id="aclasshand_html_ad104b0376b1a13d987f349dd524ca47f"><div class="ttname"><a href="classhand.html#ad104b0376b1a13d987f349dd524ca47f">hand::get_cards</a></div><div class="ttdeci">std::vector< card * > get_cards() const</div><div class="ttdoc">Gets the cards in the hand.</div><div class="ttdef"><b>Definition</b> hand.cpp:27</div></div> -<div class="ttc" id="aclasshand_html_ad4749893f36ff1d6dcda3bb18eaedffb"><div class="ttname"><a href="classhand.html#ad4749893f36ff1d6dcda3bb18eaedffb">hand::add_card</a></div><div class="ttdeci">bool add_card(card *card, std::string &err)</div><div class="ttdoc">Adds a card to the hand.</div><div class="ttdef"><b>Definition</b> hand.cpp:64</div></div> +<div class="ttc" id="aclasshand_html_ad4749893f36ff1d6dcda3bb18eaedffb"><div class="ttname"><a href="classhand.html#ad4749893f36ff1d6dcda3bb18eaedffb">hand::add_card</a></div><div class="ttdeci">bool add_card(card *card, std::string &err)</div><div class="ttdoc">Adds a card to the hand.</div><div class="ttdef"><b>Definition</b> hand.cpp:76</div></div> <div class="ttc" id="aclasshand_html_adc90d109b7b564a0dbca0b0798c99641"><div class="ttname"><a href="classhand.html#adc90d109b7b564a0dbca0b0798c99641">hand::get_nof_cards</a></div><div class="ttdeci">unsigned int get_nof_cards() const</div><div class="ttdoc">Gets the number of cards in the hand.</div><div class="ttdef"><b>Definition</b> hand.cpp:23</div></div> <div class="ttc" id="aclasshand_html_ae8d7de2589266f57271ac191dab8cd64"><div class="ttname"><a href="classhand.html#ae8d7de2589266f57271ac191dab8cd64">hand::hand</a></div><div class="ttdeci">hand()</div><div class="ttdoc">Constructs a new hand object.</div><div class="ttdef"><b>Definition</b> hand.cpp:7</div></div> <div class="ttc" id="aclasshand_html_af3ffc5e5b46f04b14f12a9fc130b220a"><div class="ttname"><a href="classhand.html#af3ffc5e5b46f04b14f12a9fc130b220a">hand::~hand</a></div><div class="ttdeci">~hand() override</div><div class="ttdoc">Destructs a hand object.</div><div class="ttdef"><b>Definition</b> hand.cpp:18</div></div> diff --git a/html/hierarchy.html b/html/hierarchy.html index 0418f944e236daaf51de0e69aca3df62b313ea16..802e04d8576792bb124d9e72aa6e5f6ae9ad15c8 100644 --- a/html/hierarchy.html +++ b/html/hierarchy.html @@ -96,9 +96,9 @@ $(function(){ initResizable(false); }); <tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structvector__utils_1_1derived__from.html" target="_self">vector_utils::derived_from< T, B ></a></td><td class="desc"></td></tr> <tr id="row_4_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_4_" class="arrow" onclick="dynsection.toggleFolder('4_')">▼</span><span class="icona"><span class="icon">C</span></span><b>std::exception</b></td><td class="desc"></td></tr> <tr id="row_4_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_wizard_exception.html" target="_self">WizardException</a></td><td class="desc"></td></tr> -<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgame__instance.html" target="_self">game_instance</a></td><td class="desc"></td></tr> +<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgame__instance.html" target="_self">game_instance</a></td><td class="desc">Class that modifies game state based on content received from client. The game instance functionalities are called by the request handler via the game instance manager. It handles the final step of interacting with the game instance (and the actual game logic) </td></tr> <tr id="row_6_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgame__instance__manager.html" target="_self">game_instance_manager</a></td><td class="desc"></td></tr> -<tr id="row_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_game_controller.html" target="_self">GameController</a></td><td class="desc"></td></tr> +<tr id="row_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_game_controller.html" target="_self">GameController</a></td><td class="desc">Controls visualization of the game state and processes client actions </td></tr> <tr id="row_8_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classjson__utils.html" target="_self">json_utils</a></td><td class="desc"></td></tr> <tr id="row_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classplayer__manager.html" target="_self">player_manager</a></td><td class="desc"></td></tr> <tr id="row_10_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrequest__handler.html" target="_self">request_handler</a></td><td class="desc"></td></tr> @@ -138,7 +138,7 @@ $(function(){ initResizable(false); }); <tr id="row_17_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_connection_panel.html" target="_self">ConnectionPanel</a></td><td class="desc"></td></tr> <tr id="row_17_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_image_panel.html" target="_self">ImagePanel</a></td><td class="desc"></td></tr> <tr id="row_17_2_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_input_field.html" target="_self">InputField</a></td><td class="desc"></td></tr> -<tr id="row_17_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_game_panel_wizard.html" target="_self">MainGamePanelWizard</a></td><td class="desc"></td></tr> +<tr id="row_17_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_game_panel_wizard.html" target="_self">MainGamePanelWizard</a></td><td class="desc">Visualizes Game State to user during the card playing phase. The Main Game Panel is shown before the game has started (Lobby) and also while the game is played (outside the trick estimation phase). It ensures that the game state is shown to all players in the GUI, and creates and positions all graphical elements. It also allows interaction of the user with the GUI via button clicks </td></tr> <tr id="row_17_4_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_trick_estimation_panel.html" target="_self">TrickEstimationPanel</a></td><td class="desc"></td></tr> <tr id="row_18_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_18_" class="arrow" onclick="dynsection.toggleFolder('18_')">▼</span><span class="icona"><span class="icon">C</span></span><b>wxThread</b></td><td class="desc"></td></tr> <tr id="row_18_0_" class="odd"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_response_listener_thread.html" target="_self">ResponseListenerThread</a></td><td class="desc"></td></tr> diff --git a/html/index.html b/html/index.html index c8fc840a8103799cf4ff4daf65d3a8f19d99ea60..93adc1c0f1b8e1369100a1b1addea413d91b5268 100644 --- a/html/index.html +++ b/html/index.html @@ -99,16 +99,57 @@ $(function(){ initResizable(false); }); </ul> <hr /> <p>You can read the game's rules <a href="https://www.amigo.games/content/ap/rule/19420--031-2019-Wizard_Manual_002_LAYOUT[1].pdf">here</a>. The implementation features a client/server architecture for multiplayer scenarios. It uses <a href="https://www.wxwidgets.org/">wxWidgets</a> for the GUI, <a href="https://github.com/fpagliughi/sockpp">sockpp</a> for the network interface, <a href="https://rapidjson.org/md_doc_tutorial.html">rapidjson</a> for object serialization, and <a href="https://github.com/google/googletest">googletest</a> for the unit tests.</p> -<h1><a class="anchor" id="autotoc_md3"></a> -1 Overview</h1> -<p>The game and source files is available on GitLab on the main branch. The game was developed based on the provided LAMA example project game. This project consists of a <b>server</b> and a <b>client</b>, each with their own main.cpp file. Each player can run his client and connect to the server in the same local network.</p> +<hr /> <h1><a class="anchor" id="autotoc_md4"></a> +1 Overview</h1> +<p>The game and source files are available on GitLab on the main branch. The game was developed based on the provided LAMA example project game. This project consists of a <b>server</b> and a <b>client</b>, each with their own main.cpp file. Each player can run their own client and connect to the same server in the same local network.</p> +<hr /> +<h1><a class="anchor" id="autotoc_md6"></a> 2 Compile Instructions</h1> -<h1><a class="anchor" id="autotoc_md5"></a> +<p>This project only works on UNIX systems (Linux / macOS). We thus only explain the how to compile the game on these systems. The following description was tested on Ubuntu 24.04 and on macOS Sequoia.</p> +<h2><a class="anchor" id="autotoc_md7"></a> +2.1 Prepare OS Environment</h2> +<p>If your OS does not yet have git installed, install git by running <code>sudo apt-get install git</code> on Ubuntu or by running <code>xcode-select --install</code> on macOS (this installs git as well). The <a class="el" href="class_wizard.html">Wizard</a> repository can then be cloned by running <code>git clone <a href="https://gitlab.ethz.ch/beckermar/wizard.git">https://gitlab.ethz.ch/beckermar/wizard.git</a></code> (clone with HTTPS) or by running <code>git clone git@gitlab.ethz.ch:beckermar/wizard.git</code> (clone with SSH) inside the directory that should contain the game. Cloning the game as a first step also makes provided scripts for preparing the OS environment and for compiling the code available.</p> +<h3><a class="anchor" id="autotoc_md8"></a> +2.1.1 Ubuntu 24.04</h3> +<p>The necessary packages and software can either be installed manually or by running the provided script.</p> +<p>To use the provided script, run <code>bash scripts/prepare_ubuntu.sh</code> inside the <b>wizard</b> directory.</p> +<p>To manually prepare Ubuntu, execute the following commands:</p><ol type="1"> +<li><code>sudo apt-get update</code> (update package list)</li> +<li><code>sudo apt-get install build-essential</code> (install software to build from source)</li> +<li><code>sudo apt-get install libwxgtk3.2-dev</code> (install wxwidgets, use libwxgtk3.0-gtk3-dev on Ubuntu 20.04 / 22.04)</li> +<li><code>sudo apt-get install cmake</code> (install cmake)</li> +<li><code>sudo reboot</code> (reboot system)</li> +</ol> +<h3><a class="anchor" id="autotoc_md9"></a> +2.1.2 macOS Sequoia</h3> +<p>The necessary packages and software can either be installed manually or by running the provided script.</p> +<p>To use the provided script, run <code>zsh scripts/prepare_macos.sh</code> inside the <b>wizard</b> directory.</p> +<p>To manually prepare macOS, execute the following commands:</p><ol type="1"> +<li><code>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"</code> (install homebrew)</li> +<li><code>brew install cmake</code> (install cmake)</li> +<li><code>brew install wxwidgets</code> (install wxwidgets)</li> +</ol> +<h2><a class="anchor" id="autotoc_md10"></a> +2.2 Compile Code</h2> +<p>Compiling the code creates executables for the client (Wizard-client) and for the server (Wizard-server).</p> +<h3><a class="anchor" id="autotoc_md11"></a> +2.2.1 Ubuntu 24.04</h3> +<p>Compiling the code can be done by running the provided script.</p> +<p>To use the provided script, run <code>bash scripts/compile_ubuntu.sh</code> inside the <b>wizard</b> directory.</p> +<h3><a class="anchor" id="autotoc_md12"></a> +2.2.1 macOS Sequoia</h3> +<p>Compiling the code can be done by running the provided script.</p> +<p>To use the provided script, run <code>zsh scripts/compile_macos.sh</code> inside the <b>wizard</b> directory.</p> +<hr /> +<h1><a class="anchor" id="autotoc_md14"></a> 3 Run the Game</h1> -<h1><a class="anchor" id="autotoc_md6"></a> +<p>After compiling the code, navigate into the <b>cmake-build-debug</b> directory (if not yet there). To start a server, run <code>./Wizard-server</code>. In new consoles, you can now start as many clients as you wish by running <code>./Wizard-client</code>.</p> +<hr /> +<h1><a class="anchor" id="autotoc_md16"></a> 4 Play the Game</h1> -<h2><a class="anchor" id="autotoc_md7"></a> +<p>Enjoy the game!</p> +<h2><a class="anchor" id="autotoc_md17"></a> 4.1 Connection Panel</h2> <p>The client renders the GUI that is presented to the player, whereas the server is a console application without a user interface. Every action a player performs in the client application (for example playing a card) is sent as a formatted message to the server application, which processes the request. <br /> </p><ul> @@ -116,11 +157,11 @@ $(function(){ initResizable(false); }); </li> <li>If the <b>move was invalid</b>, the game state will not be updated and only the requesting player will get a response containing the error message.</li> </ul> -<h2><a class="anchor" id="autotoc_md8"></a> +<h2><a class="anchor" id="autotoc_md18"></a> Network Interface</h2> <p>Everything that is passed between client and server are objects of type <code><a class="el" href="classclient__request.html">client_request</a></code> and <code><a class="el" href="classserver__response.html">server_response</a></code>. Since the underlying network protocol works with TCP, these <code><a class="el" href="classclient__request.html">client_request</a></code> and <code><a class="el" href="classserver__response.html">server_response</a></code> objects are transformed into a <b><a href="https://wiki.selfhtml.org/wiki/JSON">JSON</a> string</b>, which can then be sent over the network. The receiving end reads the JSON string and constructs an object of type <code><a class="el" href="classclient__request.html">client_request</a></code> resp. <code><a class="el" href="classserver__response.html">server_response</a></code> that reflects the exact parameters that are specified in the JSON string. This process is known as <b>serialization</b> (object to string) and <b>deserialization</b> (string to object). If you want to read more about serialization, <a href="https://en.wikipedia.org/wiki/Serialization">read me on Wikipedia</a>.</p> <p><img src="./docs/img/client-server-diagram.png?raw=true" alt="client-server-diagram" class="inline"/></p> -<h3><a class="anchor" id="autotoc_md9"></a> +<h3><a class="anchor" id="autotoc_md19"></a> Serialization & Deserialization of messages</h3> <p>Both, the <code><a class="el" href="classclient__request.html">client_request</a></code> and <code><a class="el" href="classserver__response.html">server_response</a></code> base classes, implement the abstract class <code>serializable</code> with its <code>write_into_json(...)</code> function. It allows to serialize the object instance into a JSON string. Additionally, they have a static function <code>from_json(...)</code>, which allows creating an object instance from a JSON string.</p> <div class="fragment"><div class="line"><span class="comment">// All request types of your imlementation</span></div> @@ -160,7 +201,7 @@ Serialization & Deserialization of messages</h3> <div class="line">};</div> <div class="ttc" id="aclassclient__request_html"><div class="ttname"><a href="classclient__request.html">client_request</a></div><div class="ttdef"><b>Definition</b> client_request.h:30</div></div> <div class="ttc" id="aclassserializable_html"><div class="ttname"><a href="classserializable.html">serializable</a></div><div class="ttdef"><b>Definition</b> serializable.h:11</div></div> -</div><!-- fragment --><h4><a class="anchor" id="autotoc_md10"></a> +</div><!-- fragment --><h4><a class="anchor" id="autotoc_md20"></a> Serialization</h4> <p>When you implement your own specializations of <code><a class="el" href="classclient__request.html">client_request</a></code> (and <code><a class="el" href="classserver__response.html">server_response</a></code>, if necessary) you will have to implement the <code>write_into_json(...)</code> functions yourself. Your subclass always has to call the <code>write_into_json(...)</code> function of its base-class, such that the parameters of the base-class are written into the JSON document:</p> <p>Here is the <b>base-class</b> implementation: </p><div class="fragment"><div class="line"><span class="comment">// Implementation in the base-class client_request</span></div> @@ -189,7 +230,7 @@ Serialization</h4> <div class="line"> rapidjson::Value card_id_val(_card_id.c_str(), allocator);</div> <div class="line"> json.AddMember(<span class="stringliteral">"card_id"</span>, card_id_val,allocator);</div> <div class="line">}</div> -</div><!-- fragment --><h4><a class="anchor" id="autotoc_md11"></a> +</div><!-- fragment --><h4><a class="anchor" id="autotoc_md21"></a> Deserialization</h4> <p>The deserialization of <code><a class="el" href="classclient__request.html">client_request</a></code> JSONs always goes through the <code>from_json(...)</code> function of the <code><a class="el" href="classclient__request.html">client_request</a></code> class. In this function, the "type" field, stored in the JSON, is inspected to determine, which subclass should be called to perform the deserialization:</p> <div class="fragment"><div class="line"><span class="keywordflow">if</span> (json.HasMember(<span class="stringliteral">"type"</span>) && json[<span class="stringliteral">"type"</span>].IsString()) {</div> @@ -248,22 +289,22 @@ Deserialization</h4> <div class="ttc" id="aclassplay__card__request_html"><div class="ttname"><a href="classplay__card__request.html">play_card_request</a></div><div class="ttdef"><b>Definition</b> play_card_request.h:13</div></div> <div class="ttc" id="astructclient__request_1_1base__class__properties_html"><div class="ttname"><a href="structclient__request_1_1base__class__properties.html">client_request::base_class_properties</a></div><div class="ttdef"><b>Definition</b> client_request.h:33</div></div> </div><!-- fragment --><p>There are plenty of examples of subclasses in the network/requests folder, where you can see how the serialization/deserialization scheme works.</p> -<h3><a class="anchor" id="autotoc_md12"></a> +<h3><a class="anchor" id="autotoc_md22"></a> 4.2.2 Sending messages</h3> -<h3><a class="anchor" id="autotoc_md13"></a> +<h3><a class="anchor" id="autotoc_md23"></a> Client -> Server:</h3> <p>All you have to do is use the static class <code><a class="el" href="class_client_network_manager.html">ClientNetworkManager</a></code> on the client side and then invoke its <code>sendRequest(const <a class="el" href="classclient__request.html">client_request</a>& request)</code> function with the <code><a class="el" href="classclient__request.html">client_request</a></code> that you want to send. The server's response will arrive as an object of type <code><a class="el" href="classrequest__response.html">request_response</a></code> and the <code><a class="el" href="class_client_network_manager.html">ClientNetworkManager</a></code> will invoke the <code>Process()</code> function of that <code><a class="el" href="classrequest__response.html">request_response</a></code> object automatically.</p> -<h3><a class="anchor" id="autotoc_md14"></a> +<h3><a class="anchor" id="autotoc_md24"></a> Server -> Client:</h3> <p>All messages arriving at the server are being deserialized and then passed on to the <code>handle_request(client_request* req)</code> function of the <code><a class="el" href="classrequest__handler.html">request_handler</a></code> singleton class. This function returns a pointer to an object of type <code><a class="el" href="classrequest__response.html">request_response</a></code> (a subclass of <code><a class="el" href="classserver__response.html">server_response</a></code>), which is then automatically sent back to the requesting client. In your game implementation you should extend the <code>handle_request(client_request* req)</code> function of the <code><a class="el" href="classrequest__handler.html">request_handler</a></code>, such that it can handle the <code><a class="el" href="classclient__request.html">client_request</a></code> that you add to your game and return an object of type <code><a class="el" href="classrequest__response.html">request_response</a></code> with all parameters you want to send.</p> -<p>If the <code><a class="el" href="classclient__request.html">client_request</a></code> causes an update of the <a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a> you should also update all other players of that game about the <a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a> change. This happens in the <code><a class="el" href="classgame__instance.html">game_instance</a></code> class, here examplified at the case where a <code><a class="el" href="classstart__game__request.html">start_game_request</a></code> calls the <code>start_game(...)</code> function on the respective <code><a class="el" href="classgame__instance.html">game_instance</a></code> on the server side:</p> -<div class="fragment"><div class="line"><span class="keywordtype">bool</span> game_instance::start_game(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string &err) {</div> +<p>If the <code><a class="el" href="classclient__request.html">client_request</a></code> causes an update of the <a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a> you should also update all other players of that game about the <a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a> change. This happens in the <code><a class="el" href="classgame__instance.html" title="Class that modifies game state based on content received from client. The game instance functionaliti...">game_instance</a></code> class, here examplified at the case where a <code><a class="el" href="classstart__game__request.html">start_game_request</a></code> calls the <code>start_game(...)</code> function on the respective <code><a class="el" href="classgame__instance.html" title="Class that modifies game state based on content received from client. The game instance functionaliti...">game_instance</a></code> on the server side:</p> +<div class="fragment"><div class="line"><span class="keywordtype">bool</span> <a class="code hl_function" href="classgame__instance.html#aee2eedd24991ce59dbcf2ec4f6cae8ac">game_instance::start_game</a>(<a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_class" href="classplayer.html">player</a>, std::string &err) {</div> <div class="line"> modification_lock.lock(); <span class="comment">// make sure only one request can modify the game_state at a time</span></div> <div class="line"> </div> <div class="line"> <span class="comment">// Try to start the game</span></div> <div class="line"> <span class="keywordflow">if</span> (_game_state-><a class="code hl_function" href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">start_game</a>(err)) { </div> <div class="line"> <span class="comment">// create a full_state_response (subclass of server_response) with the full game_state inside</span></div> -<div class="line"> <a class="code hl_class" href="classfull__state__response.html">full_state_response</a> state_update_msg = <a class="code hl_class" href="classfull__state__response.html">full_state_response</a>(this->get_id(), *_game_state);</div> +<div class="line"> <a class="code hl_class" href="classfull__state__response.html">full_state_response</a> state_update_msg = <a class="code hl_class" href="classfull__state__response.html">full_state_response</a>(this-><a class="code hl_function" href="classgame__instance.html#a72cd93738171ffc856c3d77df5f967da">get_id</a>(), *_game_state);</div> <div class="line"> <span class="comment">// BROADCAST new game_state to all other players</span></div> <div class="line"> server_network_manager::broadcast_message(state_update_msg, _game_state-><a class="code hl_function" href="classgame__state.html#abcaccd551f938f961d12266e34c037d2">get_players</a>(), <a class="code hl_class" href="classplayer.html">player</a>);</div> <div class="line"> </div> @@ -274,10 +315,12 @@ Server -> Client:</h3> <div class="line"> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> <div class="line">}</div> <div class="ttc" id="aclassfull__state__response_html"><div class="ttname"><a href="classfull__state__response.html">full_state_response</a></div><div class="ttdef"><b>Definition</b> full_state_response.h:11</div></div> -<div class="ttc" id="aclassgame__state_html_a6ca6536eaec3404ff9b1ab39b8df4e67"><div class="ttname"><a href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">game_state::start_game</a></div><div class="ttdeci">bool start_game(std::string &err)</div><div class="ttdoc">Starts the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:371</div></div> -<div class="ttc" id="aclassgame__state_html_abcaccd551f938f961d12266e34c037d2"><div class="ttname"><a href="classgame__state.html#abcaccd551f938f961d12266e34c037d2">game_state::get_players</a></div><div class="ttdeci">std::vector< player * > & get_players()</div><div class="ttdoc">Gets the players that joined the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:196</div></div> +<div class="ttc" id="aclassgame__instance_html_a72cd93738171ffc856c3d77df5f967da"><div class="ttname"><a href="classgame__instance.html#a72cd93738171ffc856c3d77df5f967da">game_instance::get_id</a></div><div class="ttdeci">std::string get_id()</div><div class="ttdoc">Accessor of game instance id.</div><div class="ttdef"><b>Definition</b> game_instance.cpp:21</div></div> +<div class="ttc" id="aclassgame__instance_html_aee2eedd24991ce59dbcf2ec4f6cae8ac"><div class="ttname"><a href="classgame__instance.html#aee2eedd24991ce59dbcf2ec4f6cae8ac">game_instance::start_game</a></div><div class="ttdeci">bool start_game(player *player, std::string &err)</div><div class="ttdoc">Attempts to start the game.</div><div class="ttdef"><b>Definition</b> game_instance.cpp:63</div></div> +<div class="ttc" id="aclassgame__state_html_a6ca6536eaec3404ff9b1ab39b8df4e67"><div class="ttname"><a href="classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67">game_state::start_game</a></div><div class="ttdeci">bool start_game(std::string &err)</div><div class="ttdoc">Starts the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:386</div></div> +<div class="ttc" id="aclassgame__state_html_abcaccd551f938f961d12266e34c037d2"><div class="ttname"><a href="classgame__state.html#abcaccd551f938f961d12266e34c037d2">game_state::get_players</a></div><div class="ttdeci">std::vector< player * > & get_players()</div><div class="ttdoc">Gets the players that joined the game.</div><div class="ttdef"><b>Definition</b> game_state.cpp:207</div></div> <div class="ttc" id="aclassplayer_html"><div class="ttname"><a href="classplayer.html">player</a></div><div class="ttdoc">Represents a player in the game.</div><div class="ttdef"><b>Definition</b> player.h:18</div></div> -</div><!-- fragment --><h3><a class="anchor" id="autotoc_md15"></a> +</div><!-- fragment --><h3><a class="anchor" id="autotoc_md25"></a> 4.2.3 Debugging Messages</h3> <p>By default, the server (specifically, the <a class="el" href="classserver__network__manager.html">server_network_manager</a>) will print every valid message that it receives to the console. In order for this to work in your project as well, you have to make sure that your CMake file contains a line, where the preprocessor variable PRINT_NETWORK_MESSAGES is defined for your server executable.</p> <div class="fragment"><div class="line">target_compile_definitions(Wizard-server PRIVATE PRINT_NETWORK_MESSAGES=1)</div> @@ -296,8 +339,8 @@ Server -> Client:</h3> <div class="line"><span class="comment">// print serialization to the console.</span></div> <div class="line">std::cout << json_utils::to_string(req_json) << std::endl;</div> <div class="ttc" id="aclassjoin__game__request_html"><div class="ttname"><a href="classjoin__game__request.html">join_game_request</a></div><div class="ttdef"><b>Definition</b> join_game_request.h:13</div></div> -<div class="ttc" id="aclassplayer_html_a42d01dcf4cdbd452fc5dcaf5e6f21773"><div class="ttname"><a href="classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773">player::get_player_name</a></div><div class="ttdeci">std::string get_player_name() const noexcept</div><div class="ttdoc">Gets the player's name.</div><div class="ttdef"><b>Definition</b> player.cpp:104</div></div> -</div><!-- fragment --><h2><a class="anchor" id="autotoc_md16"></a> +<div class="ttc" id="aclassplayer_html_a42d01dcf4cdbd452fc5dcaf5e6f21773"><div class="ttname"><a href="classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773">player::get_player_name</a></div><div class="ttdeci">std::string get_player_name() const noexcept</div><div class="ttdoc">Gets the player's name.</div><div class="ttdef"><b>Definition</b> player.cpp:119</div></div> +</div><!-- fragment --><h2><a class="anchor" id="autotoc_md26"></a> 4.3 Game State</h2> <p>The <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> class stores all parameters that are required to represent the game on the client (resp. server) side. In order to synchronize this <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> among all players, the <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> can also be <b>serialized</b> and <b>deserialized</b>. If a <code><a class="el" href="classclient__request.html">client_request</a></code> was successfully executed on the server, then the <code><a class="el" href="classrequest__response.html">request_response</a></code> that is sent back to the client contains a serialized version of the updated <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code>. All other players receive the updated <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> at the same time through a <code><a class="el" href="classfull__state__response.html">full_state_response</a></code>.</p> <p>To serialize the <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code>, the same <code>write_into_json(...)</code> function is used as for the <code><a class="el" href="classclient__request.html">client_request</a></code>.</p> @@ -335,15 +378,15 @@ Server -> Client:</h3> <div class="line"> <span class="keyword">static</span> <a class="code hl_class" href="classgame__state.html">game_state</a>* <a class="code hl_function" href="classgame__state.html#a794d484961c92b5b737586ec5599963f">from_json</a>(<span class="keyword">const</span> rapidjson::Value& json);</div> <div class="line">};</div> <div class="ttc" id="aclassgame__state_html"><div class="ttname"><a href="classgame__state.html">game_state</a></div><div class="ttdoc">Represents the state of the game.</div><div class="ttdef"><b>Definition</b> game_state.h:27</div></div> -<div class="ttc" id="aclassgame__state_html_a0c10b830e222d726557c3c33685c595a"><div class="ttname"><a href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state::game_state</a></div><div class="ttdeci">game_state()</div><div class="ttdoc">Constructs a new game_state object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:54</div></div> -<div class="ttc" id="aclassgame__state_html_a54873cd18b46555915d150a6d8dd6f83"><div class="ttname"><a href="classgame__state.html#a54873cd18b46555915d150a6d8dd6f83">game_state::write_into_json</a></div><div class="ttdeci">void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</div><div class="ttdoc">Serializes a game_state object into a json object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:483</div></div> -<div class="ttc" id="aclassgame__state_html_a794d484961c92b5b737586ec5599963f"><div class="ttname"><a href="classgame__state.html#a794d484961c92b5b737586ec5599963f">game_state::from_json</a></div><div class="ttdeci">static game_state * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a game_state object from a json object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:547</div></div> -<div class="ttc" id="aclassgame__state_html_a9b83de8a89e3bb506184492d22c3cf45"><div class="ttname"><a href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">game_state::is_finished</a></div><div class="ttdeci">bool is_finished() const</div><div class="ttdoc">Checks if the game is finished.</div><div class="ttdef"><b>Definition</b> game_state.cpp:166</div></div> -<div class="ttc" id="aclassgame__state_html_aa0092c41779f38eba5e921e43b38559c"><div class="ttname"><a href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">game_state::is_started</a></div><div class="ttdeci">bool is_started() const</div><div class="ttdoc">Checks if the game is started.</div><div class="ttdef"><b>Definition</b> game_state.cpp:161</div></div> +<div class="ttc" id="aclassgame__state_html_a0c10b830e222d726557c3c33685c595a"><div class="ttname"><a href="classgame__state.html#a0c10b830e222d726557c3c33685c595a">game_state::game_state</a></div><div class="ttdeci">game_state()</div><div class="ttdoc">Constructs a new game_state object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:56</div></div> +<div class="ttc" id="aclassgame__state_html_a54873cd18b46555915d150a6d8dd6f83"><div class="ttname"><a href="classgame__state.html#a54873cd18b46555915d150a6d8dd6f83">game_state::write_into_json</a></div><div class="ttdeci">void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</div><div class="ttdoc">Serializes a game_state object into a json object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:518</div></div> +<div class="ttc" id="aclassgame__state_html_a794d484961c92b5b737586ec5599963f"><div class="ttname"><a href="classgame__state.html#a794d484961c92b5b737586ec5599963f">game_state::from_json</a></div><div class="ttdeci">static game_state * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a game_state object from a json object.</div><div class="ttdef"><b>Definition</b> game_state.cpp:586</div></div> +<div class="ttc" id="aclassgame__state_html_a9b83de8a89e3bb506184492d22c3cf45"><div class="ttname"><a href="classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45">game_state::is_finished</a></div><div class="ttdeci">bool is_finished() const</div><div class="ttdoc">Checks if the game is finished.</div><div class="ttdef"><b>Definition</b> game_state.cpp:176</div></div> +<div class="ttc" id="aclassgame__state_html_aa0092c41779f38eba5e921e43b38559c"><div class="ttname"><a href="classgame__state.html#aa0092c41779f38eba5e921e43b38559c">game_state::is_started</a></div><div class="ttdeci">bool is_started() const</div><div class="ttdoc">Checks if the game is started.</div><div class="ttdef"><b>Definition</b> game_state.cpp:171</div></div> <div class="ttc" id="aclassserializable__value_html"><div class="ttname"><a href="classserializable__value.html">serializable_value</a></div><div class="ttdef"><b>Definition</b> serializable_value.h:27</div></div> <div class="ttc" id="aclassunique__serializable_html"><div class="ttname"><a href="classunique__serializable.html">unique_serializable</a></div><div class="ttdef"><b>Definition</b> unique_serializable.h:12</div></div> </div><!-- fragment --><p>The <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> inherits from <code><a class="el" href="classunique__serializable.html">unique_serializable</a></code>, which essentially requires the <code>write_into_json()</code> function and adds a unique <code>id</code> to the object, such that it can be uniquely identified. Similarly, each parameter nested inside the <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> (e.g. players, draw_pile, etc.) also inherit from <code><a class="el" href="classunique__serializable.html">unique_serializable</a></code> and therefore have their own <code>id</code> and serialization, resp. deserialization functions.</p> -<p>On the client side, the new <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> is then passed to the <code>updateGameState(game_state*)</code> function of the <code><a class="el" href="class_game_controller.html">GameController</a></code> class, which performs a redraw of the GUI.</p> +<p>On the client side, the new <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> is then passed to the <code>updateGameState(game_state*)</code> function of the <code><a class="el" href="class_game_controller.html" title="Controls visualization of the game state and processes client actions.">GameController</a></code> class, which performs a redraw of the GUI.</p> <p>Since you will have to add your own properties to the <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> class (and probably create other classes that inherit from <code><a class="el" href="classunique__serializable.html">unique_serializable</a></code> to add to your <a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a>), we want to shortly elaborate how the serialization and deserialization works for subclasses of <code><a class="el" href="classunique__serializable.html">unique_serializable</a></code>. It's very similar to the <code><a class="el" href="classclient__request.html">client_request</a></code> class discussed earlier. Here is how the <code>write_into_json(...)</code> function is implemented in the <code><a class="el" href="classgame__state.html" title="Represents the state of the game.">game_state</a></code> class of <a class="el" href="class_wizard.html">Wizard</a>. <b>Don't be shocked by the lengthy code. It's only a lot of repetition for each class property</b> :</p> <div class="fragment"><div class="line"><span class="keywordtype">void</span> <a class="code hl_function" href="classgame__state.html#a54873cd18b46555915d150a6d8dd6f83">game_state::write_into_json</a>(rapidjson::Value &json,</div> <div class="line"> rapidjson::MemoryPoolAllocator<rapidjson::CrtAllocator> &allocator)<span class="keyword"> const </span>{</div> @@ -432,7 +475,7 @@ Server -> Client:</h3> <div class="line"> <span class="keywordflow">throw</span> <a class="code hl_class" href="class_wizard_exception.html">WizardException</a>(<span class="stringliteral">"Failed to deserialize game_state. Required entries were missing."</span>);</div> <div class="line"> }</div> <div class="line">}</div> -<div class="ttc" id="aclassplayer_html_a5955c5f26db6a08862ccfb443fbe99c5"><div class="ttname"><a href="classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5">player::from_json</a></div><div class="ttdeci">static player * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a player object from a json object.</div><div class="ttdef"><b>Definition</b> player.cpp:177</div></div> +<div class="ttc" id="aclassplayer_html_a5955c5f26db6a08862ccfb443fbe99c5"><div class="ttname"><a href="classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5">player::from_json</a></div><div class="ttdeci">static player * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a player object from a json object.</div><div class="ttdef"><b>Definition</b> player.cpp:202</div></div> </div><!-- fragment --><p>A similar scheme is applied in all other objects that inherit from <code><a class="el" href="classunique__serializable.html">unique_serializable</a></code>. Namely, these are:</p><ul> <li><code>player</code></li> <li><code>hand</code></li> @@ -441,10 +484,10 @@ Server -> Client:</h3> <li><code>discard_pile</code></li> <li><code><a class="el" href="classserializable__value.html">serializable_value</a></code></li> </ul> -<h2><a class="anchor" id="autotoc_md17"></a> +<h2><a class="anchor" id="autotoc_md27"></a> 4.4 GUI with wxWidgets</h2> <p>The GUI of the example project was built using the cross-platform GUI library <a href="https://www.wxwidgets.org/">wxWidgets</a>. In order to build a project using wxWidget elements, you will first need to install wxWidgets on your system (see Section 1.1 above).</p> -<h3><a class="anchor" id="autotoc_md18"></a> +<h3><a class="anchor" id="autotoc_md28"></a> 4.4.1 Structure & Important Classes</h3> <p>Here is a list of the most important elements that you will need to create your GUI. This is just meant as an overview, you will need to look up their correct usage in wxWidget's <a href="https://docs.wxwidgets.org/3.0/index.html">documentation</a>.</p> <ul> @@ -469,7 +512,7 @@ Server -> Client:</h3> </ul> </li> </ul> -<h3><a class="anchor" id="autotoc_md19"></a> +<h3><a class="anchor" id="autotoc_md29"></a> 4.4.2 Events</h3> <p>Like in most GUI environments, objects in wxWidgets trigger <b>events</b> when they are interacted with by the user. For instance, a button will trigger a <code>wxEVT_BUTTON</code> event when clicked. Similarly, a panel will trigger a <code>wxEVT_LEFT_UP</code> event when clicked. There are many other events that can be triggered - for example when a keyboard key is pressed, when a window is resized, or when the cursor moves over an element.</p> <p>In order to make the GUI interactive, we must specify the effect of an event. The easiest way is to <b>bind</b> an event to a lambda function. A lambda function is an unnamed function that can be used as an r-value. In C++, lambda functions have the following syntax:</p> diff --git a/html/menudata.js b/html/menudata.js index d22662729ebb41dc1d7f168509e01b6d29013de1..20e4f50b2bc8a54d5a0ded27599217b1cdf28b24 100644 --- a/html/menudata.js +++ b/html/menudata.js @@ -31,6 +31,7 @@ var menudata={children:[ {text:"Class Members",url:"functions.html",children:[ {text:"All",url:"functions.html",children:[ {text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions.html#index_b"}, {text:"c",url:"functions.html#index_c"}, {text:"d",url:"functions.html#index_d"}, {text:"e",url:"functions.html#index_e"}, @@ -38,6 +39,8 @@ var menudata={children:[ {text:"g",url:"functions.html#index_g"}, {text:"h",url:"functions.html#index_h"}, {text:"i",url:"functions.html#index_i"}, +{text:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, {text:"p",url:"functions.html#index_p"}, {text:"r",url:"functions.html#index_r"}, {text:"s",url:"functions.html#index_s"}, @@ -47,6 +50,7 @@ var menudata={children:[ {text:"~",url:"functions.html#index__7E"}]}, {text:"Functions",url:"functions_func.html",children:[ {text:"a",url:"functions_func.html#index_a"}, +{text:"b",url:"functions_func.html#index_b"}, {text:"c",url:"functions_func.html#index_c"}, {text:"d",url:"functions_func.html#index_d"}, {text:"e",url:"functions_func.html#index_e"}, @@ -54,6 +58,8 @@ var menudata={children:[ {text:"g",url:"functions_func.html#index_g"}, {text:"h",url:"functions_func.html#index_h"}, {text:"i",url:"functions_func.html#index_i"}, +{text:"l",url:"functions_func.html#index_l"}, +{text:"m",url:"functions_func.html#index_m"}, {text:"p",url:"functions_func.html#index_p"}, {text:"r",url:"functions_func.html#index_r"}, {text:"s",url:"functions_func.html#index_s"}, diff --git a/html/player_8h_source.html b/html/player_8h_source.html index 76290682a5987b91cbe41b0086ee4ea77e725d4e..32caebb4552ce19c4d8376d52755c983266bdeba 100644 --- a/html/player_8h_source.html +++ b/html/player_8h_source.html @@ -110,90 +110,102 @@ $(function(){ initResizable(false); }); <div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* _nof_tricks; </div> <div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* _nof_predicted; </div> <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> std::vector<serializable_value<int>*> _scores; </div> -<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_class" href="classhand.html">hand</a>* _hand; </div> -<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div> -<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> -<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> std::string _game_id; </div> -<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#endif</span></div> -<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div> -<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <a class="code hl_class" href="classplayer.html">player</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>,</div> -<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<std::string></a>* name,</div> -<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* nof_tricks,</div> -<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* nof_predicted,</div> -<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">const</span> std::vector<<a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>*>& scores,</div> -<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_class" href="classhand.html">hand</a>* <a class="code hl_class" href="classhand.html">hand</a>);</div> -<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div> -<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="keyword">public</span>:</div> -<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div> -<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment">// constructors</span></div> -<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classplayer.html">player</a>(<span class="keyword">const</span> std::string& name);</div> -<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div> -<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <a class="code hl_function" href="classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad">~player</a>() <span class="keyword">override</span>;</div> -<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div> -<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> -<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_class" href="classplayer.html">player</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>, <span class="keyword">const</span> std::string& name);</div> -<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div> -<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> std::string <a class="code hl_function" href="classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c">get_game_id</a>();</div> -<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div> -<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#aa916eeacf97f00507f412fd91bfe37d4">set_game_id</a>(<span class="keyword">const</span> std::string& game_id);</div> -<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor">#endif</span></div> -<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div> -<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment">// accessors</span></div> -<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> [[nodiscard]] std::vector<serializable_value<int>*> <a class="code hl_function" href="classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac">get_scores</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> -<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div> -<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#af1d7e67eee27af87c01e43508a731bd4">set_scores</a>(<span class="keywordtype">int</span> score);</div> -<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div> -<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4">get_nof_tricks</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> -<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div> -<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a61aa38ceff0c856b36642c4bc0081433">set_nof_tricks</a>(<span class="keywordtype">int</span> nof_tricks) <span class="keyword">const</span>;</div> -<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div> -<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classplayer.html#a40333c302ff51707749c544930fb80aa">get_nof_predicted</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> -<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div> -<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7">set_nof_predicted</a>(<span class="keywordtype">int</span> nof_predicted) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<bool></a>* _has_left_game; </div> +<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_class" href="classhand.html">hand</a>* _hand; </div> +<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div> +<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> +<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> std::string _game_id; </div> +<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="preprocessor">#endif</span></div> +<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div> +<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <a class="code hl_class" href="classplayer.html">player</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>,</div> +<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<std::string></a>* name,</div> +<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* nof_tricks,</div> +<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>* nof_predicted,</div> +<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">const</span> std::vector<<a class="code hl_class" href="classserializable__value.html">serializable_value<int></a>*>& scores,</div> +<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_class" href="classserializable__value.html">serializable_value<bool></a>* <a class="code hl_function" href="classplayer.html#aac1b87de3b686d8ee1049269f6c9f272">has_left_game</a>,</div> +<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <a class="code hl_class" href="classhand.html">hand</a>* <a class="code hl_class" href="classhand.html">hand</a>);</div> +<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div> +<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="keyword">public</span>:</div> +<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div> +<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment">// constructors</span></div> +<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classplayer.html">player</a>(<span class="keyword">const</span> std::string& name);</div> +<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div> +<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <a class="code hl_function" href="classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad">~player</a>() <span class="keyword">override</span>;</div> +<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div> +<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> +<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <a class="code hl_class" href="classplayer.html">player</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span>, <span class="keyword">const</span> std::string& name);</div> +<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div> +<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> std::string <a class="code hl_function" href="classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c">get_game_id</a>();</div> +<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div> +<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#aa916eeacf97f00507f412fd91bfe37d4">set_game_id</a>(<span class="keyword">const</span> std::string& game_id);</div> +<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor">#endif</span></div> +<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div> +<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="comment">// accessors</span></div> +<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> [[nodiscard]] std::vector<serializable_value<int>*> <a class="code hl_function" href="classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac">get_scores</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> +<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div> +<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#af1d7e67eee27af87c01e43508a731bd4">set_scores</a>(<span class="keywordtype">int</span> score);</div> +<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div> +<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4">get_nof_tricks</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> +<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div> +<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a61aa38ceff0c856b36642c4bc0081433">set_nof_tricks</a>(<span class="keywordtype">int</span> nof_tricks) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div> +<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> [[nodiscard]] <span class="keywordtype">bool</span> <a class="code hl_function" href="classplayer.html#aac1b87de3b686d8ee1049269f6c9f272">has_left_game</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div> +<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a42f88a13ce2b65360f6ee95281a09173">set_has_left_game</a>(<span class="keywordtype">bool</span> <a class="code hl_function" href="classplayer.html#aac1b87de3b686d8ee1049269f6c9f272">has_left_game</a>);</div> <div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div> -<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> [[nodiscard]] <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classplayer.html#a457c5ab90b0ecd610eead66b41c8333a">get_nof_cards</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> +<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classplayer.html#a40333c302ff51707749c544930fb80aa">get_nof_predicted</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> <div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div> -<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> [[nodiscard]] <a class="code hl_class" href="classhand.html">hand</a>* <a class="code hl_function" href="classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d">get_hand</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> -<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div> -<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> [[nodiscard]] std::string <a class="code hl_function" href="classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773">get_player_name</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> -<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div> -<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> -<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment">// state update functions</span></div> -<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classplayer.html#ab3b087d03dd2c81d893b2ffad459a26f">add_card</a>(<a class="code hl_class" href="classcard.html">card</a>* <a class="code hl_class" href="classcard.html">card</a>, std::string& err) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7">set_nof_predicted</a>(<span class="keywordtype">int</span> nof_predicted) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div> +<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> [[nodiscard]] <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_function" href="classplayer.html#a457c5ab90b0ecd610eead66b41c8333a">get_nof_cards</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> +<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div> +<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div> +<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> [[nodiscard]] <a class="code hl_class" href="classhand.html">hand</a>* <a class="code hl_function" href="classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d">get_hand</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> <div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> </div> -<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a8cc6464ca3284140c92c6983ee62a299">setup_round</a>() <span class="keyword">const</span>;</div> -<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div> -<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a193bcc63da13e5bc98eb46ed99381302">wrap_up_round</a>();</div> -<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="preprocessor">#endif</span></div> -<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div> -<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="comment">// serialization interface</span></div> -<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc">write_into_json</a>(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) <span class="keyword">const override</span>;</div> +<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> [[nodiscard]] std::string <a class="code hl_function" href="classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773">get_player_name</a>() <span class="keyword">const</span> <span class="keyword">noexcept</span>;</div> +<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div> +<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#af8f0b088e697fcb972bfc41302e63877">set_player_name</a>(<span class="keyword">const</span> std::string& new_name);</div> +<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div> +<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> +<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="comment">// state update functions</span></div> +<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classplayer.html#ab3b087d03dd2c81d893b2ffad459a26f">add_card</a>(<a class="code hl_class" href="classcard.html">card</a>* <a class="code hl_class" href="classcard.html">card</a>, std::string& err) <span class="keyword">const</span>;</div> <div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div> -<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">static</span> <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5">from_json</a>(<span class="keyword">const</span> rapidjson::Value& json);</div> -<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>};</div> -</div> +<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a8cc6464ca3284140c92c6983ee62a299">setup_round</a>() <span class="keyword">const</span>;</div> <div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div> -<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_PLAYER_H</span></div> +<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a193bcc63da13e5bc98eb46ed99381302">wrap_up_round</a>();</div> +<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="preprocessor">#endif</span></div> +<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div> +<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="comment">// serialization interface</span></div> +<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc">write_into_json</a>(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) <span class="keyword">const override</span>;</div> +<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div> +<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">static</span> <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5">from_json</a>(<span class="keyword">const</span> rapidjson::Value& json);</div> +<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span>};</div> +</div> +<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> </div> +<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_PLAYER_H</span></div> <div class="ttc" id="aclasscard_html"><div class="ttname"><a href="classcard.html">card</a></div><div class="ttdoc">Represents a card in the game.</div><div class="ttdef"><b>Definition</b> card.h:15</div></div> <div class="ttc" id="aclasshand_html"><div class="ttname"><a href="classhand.html">hand</a></div><div class="ttdoc">Represents a player's hand in the game.</div><div class="ttdef"><b>Definition</b> hand.h:15</div></div> <div class="ttc" id="aclassplayer_html"><div class="ttname"><a href="classplayer.html">player</a></div><div class="ttdoc">Represents a player in the game.</div><div class="ttdef"><b>Definition</b> player.h:18</div></div> -<div class="ttc" id="aclassplayer_html_a0a62c0208584465db2daa1ac6e15b1ad"><div class="ttname"><a href="classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad">player::~player</a></div><div class="ttdeci">~player() override</div><div class="ttdoc">Destructs a player object.</div><div class="ttdef"><b>Definition</b> player.cpp:29</div></div> -<div class="ttc" id="aclassplayer_html_a0cf13abfdb6b837faa88eda064bf51dc"><div class="ttname"><a href="classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc">player::write_into_json</a></div><div class="ttdeci">void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</div><div class="ttdoc">Serializes a player object into a json object.</div><div class="ttdef"><b>Definition</b> player.cpp:152</div></div> -<div class="ttc" id="aclassplayer_html_a193bcc63da13e5bc98eb46ed99381302"><div class="ttname"><a href="classplayer.html#a193bcc63da13e5bc98eb46ed99381302">player::wrap_up_round</a></div><div class="ttdeci">void wrap_up_round()</div><div class="ttdoc">Calculates the new score of the player.</div><div class="ttdef"><b>Definition</b> player.cpp:132</div></div> -<div class="ttc" id="aclassplayer_html_a1a3ce0ac69cad799641f4d732435c3f7"><div class="ttname"><a href="classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7">player::set_nof_predicted</a></div><div class="ttdeci">void set_nof_predicted(int nof_predicted) const</div><div class="ttdoc">Sets the player's number of predicted tricks to the given input.</div><div class="ttdef"><b>Definition</b> player.cpp:97</div></div> -<div class="ttc" id="aclassplayer_html_a40333c302ff51707749c544930fb80aa"><div class="ttname"><a href="classplayer.html#a40333c302ff51707749c544930fb80aa">player::get_nof_predicted</a></div><div class="ttdeci">int get_nof_predicted() const noexcept</div><div class="ttdoc">Gets the number of tricks predicted to be won by the player in the current round.</div><div class="ttdef"><b>Definition</b> player.cpp:92</div></div> -<div class="ttc" id="aclassplayer_html_a42d01dcf4cdbd452fc5dcaf5e6f21773"><div class="ttname"><a href="classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773">player::get_player_name</a></div><div class="ttdeci">std::string get_player_name() const noexcept</div><div class="ttdoc">Gets the player's name.</div><div class="ttdef"><b>Definition</b> player.cpp:104</div></div> -<div class="ttc" id="aclassplayer_html_a457c5ab90b0ecd610eead66b41c8333a"><div class="ttname"><a href="classplayer.html#a457c5ab90b0ecd610eead66b41c8333a">player::get_nof_cards</a></div><div class="ttdeci">unsigned int get_nof_cards() const noexcept</div><div class="ttdoc">Gets the number of cards in the player's hand.</div><div class="ttdef"><b>Definition</b> player.cpp:114</div></div> -<div class="ttc" id="aclassplayer_html_a5955c5f26db6a08862ccfb443fbe99c5"><div class="ttname"><a href="classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5">player::from_json</a></div><div class="ttdeci">static player * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a player object from a json object.</div><div class="ttdef"><b>Definition</b> player.cpp:177</div></div> -<div class="ttc" id="aclassplayer_html_a5e3d1374aee685b08a29d0ac7cec3df4"><div class="ttname"><a href="classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4">player::get_nof_tricks</a></div><div class="ttdeci">int get_nof_tricks() const noexcept</div><div class="ttdoc">Gets the number of tricks won by the player in the current round.</div><div class="ttdef"><b>Definition</b> player.cpp:80</div></div> -<div class="ttc" id="aclassplayer_html_a61aa38ceff0c856b36642c4bc0081433"><div class="ttname"><a href="classplayer.html#a61aa38ceff0c856b36642c4bc0081433">player::set_nof_tricks</a></div><div class="ttdeci">void set_nof_tricks(int nof_tricks) const</div><div class="ttdoc">Sets the player's number of won tricks to the given input.</div><div class="ttdef"><b>Definition</b> player.cpp:85</div></div> -<div class="ttc" id="aclassplayer_html_a8cc6464ca3284140c92c6983ee62a299"><div class="ttname"><a href="classplayer.html#a8cc6464ca3284140c92c6983ee62a299">player::setup_round</a></div><div class="ttdeci">void setup_round() const</div><div class="ttdoc">Sets up the player for the next round.</div><div class="ttdef"><b>Definition</b> player.cpp:126</div></div> -<div class="ttc" id="aclassplayer_html_aa916eeacf97f00507f412fd91bfe37d4"><div class="ttname"><a href="classplayer.html#aa916eeacf97f00507f412fd91bfe37d4">player::set_game_id</a></div><div class="ttdeci">void set_game_id(const std::string &game_id)</div><div class="ttdoc">Sets the game id of the player.</div><div class="ttdef"><b>Definition</b> player.cpp:61</div></div> -<div class="ttc" id="aclassplayer_html_ab3b087d03dd2c81d893b2ffad459a26f"><div class="ttname"><a href="classplayer.html#ab3b087d03dd2c81d893b2ffad459a26f">player::add_card</a></div><div class="ttdeci">bool add_card(card *card, std::string &err) const</div><div class="ttdoc">Adds a card to the player's hand.</div><div class="ttdef"><b>Definition</b> player.cpp:121</div></div> -<div class="ttc" id="aclassplayer_html_aef5c25a02a2fdbdb4d8270582faf5dac"><div class="ttname"><a href="classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac">player::get_scores</a></div><div class="ttdeci">std::vector< serializable_value< int > * > get_scores() const noexcept</div><div class="ttdoc">Gets the scores of the player.</div><div class="ttdef"><b>Definition</b> player.cpp:68</div></div> -<div class="ttc" id="aclassplayer_html_af1d7e67eee27af87c01e43508a731bd4"><div class="ttname"><a href="classplayer.html#af1d7e67eee27af87c01e43508a731bd4">player::set_scores</a></div><div class="ttdeci">void set_scores(int score)</div><div class="ttdoc">Sets the player's scores to the given scores.</div><div class="ttdef"><b>Definition</b> player.cpp:73</div></div> -<div class="ttc" id="aclassplayer_html_af333dcbf7123726c9bda3ab94ba9ee6d"><div class="ttname"><a href="classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d">player::get_hand</a></div><div class="ttdeci">hand * get_hand() const noexcept</div><div class="ttdoc">Gets the player's hand.</div><div class="ttdef"><b>Definition</b> player.cpp:109</div></div> -<div class="ttc" id="aclassplayer_html_afeb6c5483a59042fcc4a3a2aed6a6a2c"><div class="ttname"><a href="classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c">player::get_game_id</a></div><div class="ttdeci">std::string get_game_id()</div><div class="ttdoc">Gets the game id of the game the player has joint.</div><div class="ttdef"><b>Definition</b> player.cpp:56</div></div> +<div class="ttc" id="aclassplayer_html_a0a62c0208584465db2daa1ac6e15b1ad"><div class="ttname"><a href="classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad">player::~player</a></div><div class="ttdeci">~player() override</div><div class="ttdoc">Destructs a player object.</div><div class="ttdef"><b>Definition</b> player.cpp:31</div></div> +<div class="ttc" id="aclassplayer_html_a0cf13abfdb6b837faa88eda064bf51dc"><div class="ttname"><a href="classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc">player::write_into_json</a></div><div class="ttdeci">void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</div><div class="ttdoc">Serializes a player object into a json object.</div><div class="ttdef"><b>Definition</b> player.cpp:173</div></div> +<div class="ttc" id="aclassplayer_html_a193bcc63da13e5bc98eb46ed99381302"><div class="ttname"><a href="classplayer.html#a193bcc63da13e5bc98eb46ed99381302">player::wrap_up_round</a></div><div class="ttdeci">void wrap_up_round()</div><div class="ttdoc">Calculates the new score of the player.</div><div class="ttdef"><b>Definition</b> player.cpp:153</div></div> +<div class="ttc" id="aclassplayer_html_a1a3ce0ac69cad799641f4d732435c3f7"><div class="ttname"><a href="classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7">player::set_nof_predicted</a></div><div class="ttdeci">void set_nof_predicted(int nof_predicted) const</div><div class="ttdoc">Sets the player's number of predicted tricks to the given input.</div><div class="ttdef"><b>Definition</b> player.cpp:112</div></div> +<div class="ttc" id="aclassplayer_html_a40333c302ff51707749c544930fb80aa"><div class="ttname"><a href="classplayer.html#a40333c302ff51707749c544930fb80aa">player::get_nof_predicted</a></div><div class="ttdeci">int get_nof_predicted() const noexcept</div><div class="ttdoc">Gets the number of tricks predicted to be won by the player in the current round.</div><div class="ttdef"><b>Definition</b> player.cpp:107</div></div> +<div class="ttc" id="aclassplayer_html_a42d01dcf4cdbd452fc5dcaf5e6f21773"><div class="ttname"><a href="classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773">player::get_player_name</a></div><div class="ttdeci">std::string get_player_name() const noexcept</div><div class="ttdoc">Gets the player's name.</div><div class="ttdef"><b>Definition</b> player.cpp:119</div></div> +<div class="ttc" id="aclassplayer_html_a42f88a13ce2b65360f6ee95281a09173"><div class="ttname"><a href="classplayer.html#a42f88a13ce2b65360f6ee95281a09173">player::set_has_left_game</a></div><div class="ttdeci">void set_has_left_game(bool has_left_game)</div><div class="ttdoc">Sets the players game to left when he leaves the game.</div><div class="ttdef"><b>Definition</b> player.cpp:100</div></div> +<div class="ttc" id="aclassplayer_html_a457c5ab90b0ecd610eead66b41c8333a"><div class="ttname"><a href="classplayer.html#a457c5ab90b0ecd610eead66b41c8333a">player::get_nof_cards</a></div><div class="ttdeci">unsigned int get_nof_cards() const noexcept</div><div class="ttdoc">Gets the number of cards in the player's hand.</div><div class="ttdef"><b>Definition</b> player.cpp:135</div></div> +<div class="ttc" id="aclassplayer_html_a5955c5f26db6a08862ccfb443fbe99c5"><div class="ttname"><a href="classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5">player::from_json</a></div><div class="ttdeci">static player * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a player object from a json object.</div><div class="ttdef"><b>Definition</b> player.cpp:202</div></div> +<div class="ttc" id="aclassplayer_html_a5e3d1374aee685b08a29d0ac7cec3df4"><div class="ttname"><a href="classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4">player::get_nof_tricks</a></div><div class="ttdeci">int get_nof_tricks() const noexcept</div><div class="ttdoc">Gets the number of tricks won by the player in the current round.</div><div class="ttdef"><b>Definition</b> player.cpp:85</div></div> +<div class="ttc" id="aclassplayer_html_a61aa38ceff0c856b36642c4bc0081433"><div class="ttname"><a href="classplayer.html#a61aa38ceff0c856b36642c4bc0081433">player::set_nof_tricks</a></div><div class="ttdeci">void set_nof_tricks(int nof_tricks) const</div><div class="ttdoc">Sets the player's number of won tricks to the given input.</div><div class="ttdef"><b>Definition</b> player.cpp:90</div></div> +<div class="ttc" id="aclassplayer_html_a8cc6464ca3284140c92c6983ee62a299"><div class="ttname"><a href="classplayer.html#a8cc6464ca3284140c92c6983ee62a299">player::setup_round</a></div><div class="ttdeci">void setup_round() const</div><div class="ttdoc">Sets up the player for the next round.</div><div class="ttdef"><b>Definition</b> player.cpp:147</div></div> +<div class="ttc" id="aclassplayer_html_aa916eeacf97f00507f412fd91bfe37d4"><div class="ttname"><a href="classplayer.html#aa916eeacf97f00507f412fd91bfe37d4">player::set_game_id</a></div><div class="ttdeci">void set_game_id(const std::string &game_id)</div><div class="ttdoc">Sets the game id of the player.</div><div class="ttdef"><b>Definition</b> player.cpp:66</div></div> +<div class="ttc" id="aclassplayer_html_aac1b87de3b686d8ee1049269f6c9f272"><div class="ttname"><a href="classplayer.html#aac1b87de3b686d8ee1049269f6c9f272">player::has_left_game</a></div><div class="ttdeci">bool has_left_game() const</div><div class="ttdoc">State whether player has left the game.</div><div class="ttdef"><b>Definition</b> player.cpp:95</div></div> +<div class="ttc" id="aclassplayer_html_ab3b087d03dd2c81d893b2ffad459a26f"><div class="ttname"><a href="classplayer.html#ab3b087d03dd2c81d893b2ffad459a26f">player::add_card</a></div><div class="ttdeci">bool add_card(card *card, std::string &err) const</div><div class="ttdoc">Adds a card to the player's hand.</div><div class="ttdef"><b>Definition</b> player.cpp:142</div></div> +<div class="ttc" id="aclassplayer_html_aef5c25a02a2fdbdb4d8270582faf5dac"><div class="ttname"><a href="classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac">player::get_scores</a></div><div class="ttdeci">std::vector< serializable_value< int > * > get_scores() const noexcept</div><div class="ttdoc">Gets the scores of the player.</div><div class="ttdef"><b>Definition</b> player.cpp:73</div></div> +<div class="ttc" id="aclassplayer_html_af1d7e67eee27af87c01e43508a731bd4"><div class="ttname"><a href="classplayer.html#af1d7e67eee27af87c01e43508a731bd4">player::set_scores</a></div><div class="ttdeci">void set_scores(int score)</div><div class="ttdoc">Sets the player's scores to the given scores.</div><div class="ttdef"><b>Definition</b> player.cpp:78</div></div> +<div class="ttc" id="aclassplayer_html_af333dcbf7123726c9bda3ab94ba9ee6d"><div class="ttname"><a href="classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d">player::get_hand</a></div><div class="ttdeci">hand * get_hand() const noexcept</div><div class="ttdoc">Gets the player's hand.</div><div class="ttdef"><b>Definition</b> player.cpp:130</div></div> +<div class="ttc" id="aclassplayer_html_af8f0b088e697fcb972bfc41302e63877"><div class="ttname"><a href="classplayer.html#af8f0b088e697fcb972bfc41302e63877">player::set_player_name</a></div><div class="ttdeci">void set_player_name(const std::string &new_name)</div><div class="ttdoc">Sets the player's name to the given input.</div><div class="ttdef"><b>Definition</b> player.cpp:124</div></div> +<div class="ttc" id="aclassplayer_html_afeb6c5483a59042fcc4a3a2aed6a6a2c"><div class="ttname"><a href="classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c">player::get_game_id</a></div><div class="ttdeci">std::string get_game_id()</div><div class="ttdoc">Gets the game id of the game the player has joint.</div><div class="ttdef"><b>Definition</b> player.cpp:61</div></div> <div class="ttc" id="aclassserializable__value_html"><div class="ttname"><a href="classserializable__value.html">serializable_value</a></div><div class="ttdef"><b>Definition</b> serializable_value.h:27</div></div> <div class="ttc" id="aclassunique__serializable_html"><div class="ttname"><a href="classunique__serializable.html">unique_serializable</a></div><div class="ttdef"><b>Definition</b> unique_serializable.h:12</div></div> </div><!-- fragment --></div><!-- contents --> diff --git a/html/search/all_0.js b/html/search/all_0.js index 98574566303e80ca2958a8fcd0c6175badf6403c..1df1341a8fe9c923c810c9c601229e9b144bbcd2 100644 --- a/html/search/all_0.js +++ b/html/search/all_0.js @@ -1,6 +1,4 @@ var searchData= [ - ['1_20connection_20panel_0',['4.1 Connection Panel',['../index.html#autotoc_md7',1,'']]], - ['1_20overview_1',['1 Overview',['../index.html#autotoc_md3',1,'']]], - ['1_20structure_20important_20classes_2',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md18',1,'']]] + ['04_0',['04',['../index.html#autotoc_md8',1,'2.1.1 Ubuntu 24.04'],['../index.html#autotoc_md11',1,'2.2.1 Ubuntu 24.04']]] ]; diff --git a/html/search/all_1.js b/html/search/all_1.js index 20bd4893cac05df4b680cab763ef80dda908e5d2..246207d8a3f3f7162631a518d4308e2b7daf6a29 100644 --- a/html/search/all_1.js +++ b/html/search/all_1.js @@ -1,8 +1,11 @@ var searchData= [ - ['2_202_20sending_20messages_0',['4.2.2 Sending messages',['../index.html#autotoc_md12',1,'']]], - ['2_203_20debugging_20messages_1',['4.2.3 Debugging Messages',['../index.html#autotoc_md15',1,'']]], - ['2_20compile_20instructions_2',['2 Compile Instructions',['../index.html#autotoc_md4',1,'']]], - ['2_20events_3',['4.4.2 Events',['../index.html#autotoc_md19',1,'']]], - ['2_20sending_20messages_4',['4.2.2 Sending messages',['../index.html#autotoc_md12',1,'']]] + ['1_201_20ubuntu_2024_2004_0',['2.1.1 Ubuntu 24.04',['../index.html#autotoc_md8',1,'']]], + ['1_202_20macos_20sequoia_1',['2.1.2 macOS Sequoia',['../index.html#autotoc_md9',1,'']]], + ['1_20connection_20panel_2',['4.1 Connection Panel',['../index.html#autotoc_md17',1,'']]], + ['1_20macos_20sequoia_3',['2.2.1 macOS Sequoia',['../index.html#autotoc_md12',1,'']]], + ['1_20overview_4',['1 Overview',['../index.html#autotoc_md4',1,'']]], + ['1_20prepare_20os_20environment_5',['2.1 Prepare OS Environment',['../index.html#autotoc_md7',1,'']]], + ['1_20structure_20important_20classes_6',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md28',1,'']]], + ['1_20ubuntu_2024_2004_7',['1 Ubuntu 24 04',['../index.html#autotoc_md8',1,'2.1.1 Ubuntu 24.04'],['../index.html#autotoc_md11',1,'2.2.1 Ubuntu 24.04']]] ]; diff --git a/html/search/all_10.js b/html/search/all_10.js index 77044c7f43ebbc1d3c76b4a4781bc17f3482f513..f32c61b2b751a4ca1a23c24c058739098b02bda3 100644 --- a/html/search/all_10.js +++ b/html/search/all_10.js @@ -1,4 +1,7 @@ var searchData= [ - ['network_20interface_0',['Network Interface',['../index.html#autotoc_md8',1,'']]] + ['macos_20sequoia_0',['macOS Sequoia',['../index.html#autotoc_md9',1,'2.1.2 macOS Sequoia'],['../index.html#autotoc_md12',1,'2.2.1 macOS Sequoia']]], + ['maingamepanelwizard_1',['MainGamePanelWizard',['../class_main_game_panel_wizard.html',1,'MainGamePanelWizard'],['../class_main_game_panel_wizard.html#a6ba532223a22fe5458e3f94a70e2bbf6',1,'MainGamePanelWizard::MainGamePanelWizard()']]], + ['messages_2',['4.2.3 Debugging Messages',['../index.html#autotoc_md25',1,'']]], + ['messages_3',['messages',['../index.html#autotoc_md22',1,'4.2.2 Sending messages'],['../index.html#autotoc_md19',1,'Serialization & Deserialization of messages']]] ]; diff --git a/html/search/all_11.js b/html/search/all_11.js index d5b4548c1a6d13118769da3b2b81e0a85384b532..b957cee4f856db834dfbd7c7cd21f57cca148ba7 100644 --- a/html/search/all_11.js +++ b/html/search/all_11.js @@ -1,5 +1,4 @@ var searchData= [ - ['of_20messages_0',['Serialization & Deserialization of messages',['../index.html#autotoc_md9',1,'']]], - ['overview_1',['1 Overview',['../index.html#autotoc_md3',1,'']]] + ['network_20interface_0',['Network Interface',['../index.html#autotoc_md18',1,'']]] ]; diff --git a/html/search/all_12.js b/html/search/all_12.js index bea4e140cf1a6f87143eed39a2c213eb5f990a0c..8c068e9b43e47cd2d1f7ea46477058fabf9bfd92 100644 --- a/html/search/all_12.js +++ b/html/search/all_12.js @@ -1,10 +1,6 @@ var searchData= [ - ['panel_0',['4.1 Connection Panel',['../index.html#autotoc_md7',1,'']]], - ['play_20the_20game_1',['4 Play the Game',['../index.html#autotoc_md6',1,'']]], - ['play_5fcard_2',['play_card',['../classgame__state.html#a6c65d95086a88b8d111de5553e1210ec',1,'game_state']]], - ['play_5fcard_5frequest_3',['play_card_request',['../classplay__card__request.html',1,'']]], - ['player_4',['player',['../classplayer.html',1,'player'],['../classplayer.html#a1f0916939a8caa2e7140d5c89a6aa718',1,'player::player(const std::string &name)'],['../classplayer.html#aa97dd36228b56912bc5dad63f64e1ccf',1,'player::player(const std::string &id, const std::string &name)']]], - ['player_5fmanager_5',['player_manager',['../classplayer__manager.html',1,'']]], - ['project_20wizard_6',['Software Engineering Project - Wizard',['../index.html',1,'']]] + ['of_20messages_0',['Serialization & Deserialization of messages',['../index.html#autotoc_md19',1,'']]], + ['os_20environment_1',['2.1 Prepare OS Environment',['../index.html#autotoc_md7',1,'']]], + ['overview_2',['1 Overview',['../index.html#autotoc_md4',1,'']]] ]; diff --git a/html/search/all_13.js b/html/search/all_13.js index aaa3ecc53efb09702bbe2673dcc799c21bfadc02..d7c46ed34a2380f84b10079f800792191eca29ca 100644 --- a/html/search/all_13.js +++ b/html/search/all_13.js @@ -1,9 +1,13 @@ var searchData= [ - ['remove_5fcard_0',['remove_card',['../classhand.html#aa466496b7ce0b58dbd63620535430439',1,'hand']]], - ['remove_5fplayer_1',['remove_player',['../classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d',1,'game_state']]], - ['request_5fhandler_2',['request_handler',['../classrequest__handler.html',1,'']]], - ['request_5fresponse_3',['request_response',['../classrequest__response.html',1,'']]], - ['responselistenerthread_4',['ResponseListenerThread',['../class_response_listener_thread.html',1,'']]], - ['run_20the_20game_5',['3 Run the Game',['../index.html#autotoc_md5',1,'']]] + ['panel_0',['4.1 Connection Panel',['../index.html#autotoc_md17',1,'']]], + ['play_20the_20game_1',['4 Play the Game',['../index.html#autotoc_md16',1,'']]], + ['play_5fcard_2',['play_card',['../classgame__state.html#a6c65d95086a88b8d111de5553e1210ec',1,'game_state::play_card()'],['../classgame__instance.html#a1a7e19a4b0907cb0b5f1523edb7e68ca',1,'game_instance::play_card()']]], + ['play_5fcard_5frequest_3',['play_card_request',['../classplay__card__request.html',1,'']]], + ['playcard_4',['playCard',['../class_game_controller.html#a87b164e2094901861e5b47056634facc',1,'GameController']]], + ['player_5',['player',['../classplayer.html',1,'player'],['../classplayer.html#a1f0916939a8caa2e7140d5c89a6aa718',1,'player::player(const std::string &name)'],['../classplayer.html#aa97dd36228b56912bc5dad63f64e1ccf',1,'player::player(const std::string &id, const std::string &name)']]], + ['player_5fmanager_6',['player_manager',['../classplayer__manager.html',1,'']]], + ['prepare_20os_20environment_7',['2.1 Prepare OS Environment',['../index.html#autotoc_md7',1,'']]], + ['processestimatetricks_8',['processEstimateTricks',['../class_game_controller.html#a5f1023f2029e5dbb25b795a0606e06a9',1,'GameController']]], + ['project_20wizard_9',['Software Engineering Project - Wizard',['../index.html',1,'']]] ]; diff --git a/html/search/all_14.js b/html/search/all_14.js index 4b4768ac9cd8ccd52fdc18f5e1665720f25e27b9..145c342a900b477d17558c1d4c32023aff6c7532 100644 --- a/html/search/all_14.js +++ b/html/search/all_14.js @@ -1,30 +1,9 @@ var searchData= [ - ['scoreboarddialog_0',['ScoreBoardDialog',['../class_score_board_dialog.html',1,'']]], - ['scoredialog_1',['ScoreDialog',['../class_score_dialog.html',1,'']]], - ['sending_20messages_2',['4.2.2 Sending messages',['../index.html#autotoc_md12',1,'']]], - ['serializable_3',['serializable',['../classserializable.html',1,'']]], - ['serializable_5fvalue_4',['serializable_value',['../classserializable__value.html',1,'']]], - ['serializable_5fvalue_3c_20bool_20_3e_5',['serializable_value< bool >',['../classserializable__value.html',1,'']]], - ['serializable_5fvalue_3c_20int_20_3e_6',['serializable_value< int >',['../classserializable__value.html',1,'']]], - ['serializable_5fvalue_3c_20std_3a_3astring_20_3e_7',['serializable_value< std::string >',['../classserializable__value.html',1,'']]], - ['serialization_8',['Serialization',['../index.html#autotoc_md10',1,'']]], - ['serialization_20deserialization_20of_20messages_9',['Serialization & Deserialization of messages',['../index.html#autotoc_md9',1,'']]], - ['server_20client_3a_10',['Server -> Client:',['../index.html#autotoc_md14',1,'']]], - ['server_3a_11',['Client -> Server:',['../index.html#autotoc_md13',1,'']]], - ['server_5fnetwork_5fmanager_12',['server_network_manager',['../classserver__network__manager.html',1,'']]], - ['server_5fresponse_13',['server_response',['../classserver__response.html',1,'']]], - ['set_5fgame_5fid_14',['set_game_id',['../classplayer.html#aa916eeacf97f00507f412fd91bfe37d4',1,'player']]], - ['set_5fnof_5fpredicted_15',['set_nof_predicted',['../classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7',1,'player']]], - ['set_5fnof_5ftricks_16',['set_nof_tricks',['../classplayer.html#a61aa38ceff0c856b36642c4bc0081433',1,'player']]], - ['set_5fscores_17',['set_scores',['../classplayer.html#af1d7e67eee27af87c01e43508a731bd4',1,'player']]], - ['set_5ftrick_18',['set_trick',['../classgame__state.html#a745dd23945b6165470c494b036ac4667',1,'game_state']]], - ['set_5ftrick_5fcolor_19',['set_trick_color',['../classtrick.html#a0f8c45882691509564ec42efed0d1aaa',1,'trick']]], - ['set_5fup_5fround_20',['set_up_round',['../classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00',1,'trick']]], - ['setup_5fround_21',['setup_round',['../classdeck.html#a77851e5cb8297849e91a885ed7959de1',1,'deck::setup_round()'],['../classgame__state.html#ab520d4076c53f70a68bc19f355243a4d',1,'game_state::setup_round()'],['../classplayer.html#a8cc6464ca3284140c92c6983ee62a299',1,'player::setup_round()']]], - ['software_20engineering_20project_20wizard_22',['Software Engineering Project - Wizard',['../index.html',1,'']]], - ['start_5fgame_23',['start_game',['../classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67',1,'game_state']]], - ['start_5fgame_5frequest_24',['start_game_request',['../classstart__game__request.html',1,'']]], - ['state_25',['4.3 Game State',['../index.html#autotoc_md16',1,'']]], - ['structure_20important_20classes_26',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md18',1,'']]] + ['remove_5fcard_0',['remove_card',['../classhand.html#aa466496b7ce0b58dbd63620535430439',1,'hand']]], + ['remove_5fplayer_1',['remove_player',['../classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d',1,'game_state']]], + ['request_5fhandler_2',['request_handler',['../classrequest__handler.html',1,'']]], + ['request_5fresponse_3',['request_response',['../classrequest__response.html',1,'']]], + ['responselistenerthread_4',['ResponseListenerThread',['../class_response_listener_thread.html',1,'']]], + ['run_20the_20game_5',['3 Run the Game',['../index.html#autotoc_md14',1,'']]] ]; diff --git a/html/search/all_15.js b/html/search/all_15.js index f8e788d5206a6993d905d7f9b78da9e82659e921..27dd6344137d25ab2979b1dc3375cc03dc7d2bd1 100644 --- a/html/search/all_15.js +++ b/html/search/all_15.js @@ -1,7 +1,39 @@ var searchData= [ - ['the_20game_0',['the Game',['../index.html#autotoc_md5',1,'3 Run the Game'],['../index.html#autotoc_md6',1,'4 Play the Game']]], - ['trick_1',['trick',['../classtrick.html',1,'trick'],['../classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d',1,'trick::trick()'],['../classtrick.html#ad55ad2f0462144ee39c0e6d392543a14',1,'trick::trick(const trick &other)'],['../classtrick.html#abb172ad9a476e96a754eea0c33e1eda9',1,'trick::trick(const std::string &id)'],['../classtrick.html#ab756ba7a19c4bf98f0d8456ad0081fc3',1,'trick::trick(const std::string &id, const std::vector< std::pair< card *, player * > > &cards, serializable_value< int > *trick_color, serializable_value< int > *trump_color)'],['../classtrick.html#a3ecb1c5ebe84a300d7388e2846737fa4',1,'trick::trick(int trump)']]], - ['trickestimationpanel_2',['TrickEstimationPanel',['../class_trick_estimation_panel.html',1,'']]], - ['try_5fget_5fcard_3',['try_get_card',['../classhand.html#a0a50cbbb167e6a1d633dd48bc4b695fe',1,'hand']]] + ['scoreboarddialog_0',['ScoreBoardDialog',['../class_score_board_dialog.html',1,'']]], + ['scoredialog_1',['ScoreDialog',['../class_score_dialog.html',1,'']]], + ['sending_20messages_2',['4.2.2 Sending messages',['../index.html#autotoc_md22',1,'']]], + ['sequoia_3',['Sequoia',['../index.html#autotoc_md9',1,'2.1.2 macOS Sequoia'],['../index.html#autotoc_md12',1,'2.2.1 macOS Sequoia']]], + ['serializable_4',['serializable',['../classserializable.html',1,'']]], + ['serializable_5fvalue_5',['serializable_value',['../classserializable__value.html',1,'']]], + ['serializable_5fvalue_3c_20bool_20_3e_6',['serializable_value< bool >',['../classserializable__value.html',1,'']]], + ['serializable_5fvalue_3c_20int_20_3e_7',['serializable_value< int >',['../classserializable__value.html',1,'']]], + ['serializable_5fvalue_3c_20std_3a_3astring_20_3e_8',['serializable_value< std::string >',['../classserializable__value.html',1,'']]], + ['serialization_9',['Serialization',['../index.html#autotoc_md20',1,'']]], + ['serialization_20deserialization_20of_20messages_10',['Serialization & Deserialization of messages',['../index.html#autotoc_md19',1,'']]], + ['server_20client_3a_11',['Server -> Client:',['../index.html#autotoc_md24',1,'']]], + ['server_3a_12',['Client -> Server:',['../index.html#autotoc_md23',1,'']]], + ['server_5fnetwork_5fmanager_13',['server_network_manager',['../classserver__network__manager.html',1,'']]], + ['server_5fresponse_14',['server_response',['../classserver__response.html',1,'']]], + ['set_5fgame_5fid_15',['set_game_id',['../classplayer.html#aa916eeacf97f00507f412fd91bfe37d4',1,'player']]], + ['set_5fhas_5fleft_5fgame_16',['set_has_left_game',['../classplayer.html#a42f88a13ce2b65360f6ee95281a09173',1,'player']]], + ['set_5fnof_5fpredicted_17',['set_nof_predicted',['../classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7',1,'player']]], + ['set_5fnof_5ftricks_18',['set_nof_tricks',['../classplayer.html#a61aa38ceff0c856b36642c4bc0081433',1,'player']]], + ['set_5fplayer_5fname_19',['set_player_name',['../classplayer.html#af8f0b088e697fcb972bfc41302e63877',1,'player']]], + ['set_5fscores_20',['set_scores',['../classplayer.html#af1d7e67eee27af87c01e43508a731bd4',1,'player']]], + ['set_5ftrick_21',['set_trick',['../classgame__state.html#a745dd23945b6165470c494b036ac4667',1,'game_state']]], + ['set_5ftrick_5fcolor_22',['set_trick_color',['../classtrick.html#a0f8c45882691509564ec42efed0d1aaa',1,'trick']]], + ['set_5fup_5fround_23',['set_up_round',['../classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00',1,'trick']]], + ['setup_5fround_24',['setup_round',['../classdeck.html#a77851e5cb8297849e91a885ed7959de1',1,'deck::setup_round()'],['../classgame__state.html#ab520d4076c53f70a68bc19f355243a4d',1,'game_state::setup_round()'],['../classplayer.html#a8cc6464ca3284140c92c6983ee62a299',1,'player::setup_round()']]], + ['showerror_25',['showError',['../class_game_controller.html#adf043f9026a62f634a873c9f9d292034',1,'GameController']]], + ['showgameovermessage_26',['showGameOverMessage',['../class_game_controller.html#abb91c546ab8400c1e2e9f2a2ccc8298f',1,'GameController']]], + ['shownewroundmessage_27',['showNewRoundMessage',['../class_game_controller.html#a3c350056b82df662c946cb9119f11ced',1,'GameController']]], + ['showstatus_28',['showStatus',['../class_game_controller.html#a6a43eb061a9882b3937fc88bb4794324',1,'GameController']]], + ['showtrickovermessage_29',['showTrickOverMessage',['../class_game_controller.html#a8108659ad09724318c3a251d93bd5869',1,'GameController']]], + ['software_20engineering_20project_20wizard_30',['Software Engineering Project - Wizard',['../index.html',1,'']]], + ['start_5fgame_31',['start_game',['../classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67',1,'game_state::start_game()'],['../classgame__instance.html#aee2eedd24991ce59dbcf2ec4f6cae8ac',1,'game_instance::start_game()']]], + ['start_5fgame_5frequest_32',['start_game_request',['../classstart__game__request.html',1,'']]], + ['startgame_33',['startGame',['../class_game_controller.html#a8f30ab3ff471ac0a5c8b88dc7fea45f4',1,'GameController']]], + ['state_34',['4.3 Game State',['../index.html#autotoc_md26',1,'']]], + ['structure_20important_20classes_35',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md28',1,'']]] ]; diff --git a/html/search/all_16.js b/html/search/all_16.js index aec59b43f78fa1031ee3244b236ecf5b2917f8d7..c2c50b5b364adfd90b4d39139537e974f863e20e 100644 --- a/html/search/all_16.js +++ b/html/search/all_16.js @@ -1,6 +1,9 @@ var searchData= [ - ['unique_5fserializable_0',['unique_serializable',['../classunique__serializable.html',1,'']]], - ['update_5fcurrent_5fplayer_1',['update_current_player',['../classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d',1,'game_state']]], - ['uuid_5fgenerator_2',['uuid_generator',['../classuuid__generator.html',1,'']]] + ['the_20game_0',['the Game',['../index.html#autotoc_md14',1,'3 Run the Game'],['../index.html#autotoc_md16',1,'4 Play the Game']]], + ['trick_1',['trick',['../classtrick.html',1,'trick'],['../classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d',1,'trick::trick()'],['../classtrick.html#ad55ad2f0462144ee39c0e6d392543a14',1,'trick::trick(const trick &other)'],['../classtrick.html#abb172ad9a476e96a754eea0c33e1eda9',1,'trick::trick(const std::string &id)'],['../classtrick.html#ab756ba7a19c4bf98f0d8456ad0081fc3',1,'trick::trick(const std::string &id, const std::vector< std::pair< card *, player * > > &cards, serializable_value< int > *trick_color, serializable_value< int > *trump_color)'],['../classtrick.html#a3ecb1c5ebe84a300d7388e2846737fa4',1,'trick::trick(int trump)']]], + ['trickestimationpanel_2',['TrickEstimationPanel',['../class_trick_estimation_panel.html',1,'']]], + ['try_5fadd_5fplayer_3',['try_add_player',['../classgame__instance.html#a1176ce8464586487f9ae5676ca900e10',1,'game_instance']]], + ['try_5fget_5fcard_4',['try_get_card',['../classhand.html#a0a50cbbb167e6a1d633dd48bc4b695fe',1,'hand']]], + ['try_5fremove_5fplayer_5',['try_remove_player',['../classgame__instance.html#a2c6fed45a14273b09a9f202481fa62aa',1,'game_instance']]] ]; diff --git a/html/search/all_17.js b/html/search/all_17.js index 342ead7d94625ece34a64c11eb61d3fb919f8acf..b9ad200bc204e1f6e4e0917246a0aa7ce018a4c4 100644 --- a/html/search/all_17.js +++ b/html/search/all_17.js @@ -1,10 +1,8 @@ var searchData= [ - ['with_20wxwidgets_0',['4.4 GUI with wxWidgets',['../index.html#autotoc_md17',1,'']]], - ['wizard_1',['Wizard',['../index.html',1,'Software Engineering Project - Wizard'],['../class_wizard.html',1,'Wizard']]], - ['wizardexception_2',['WizardException',['../class_wizard_exception.html',1,'']]], - ['wrap_5fup_5fround_3',['wrap_up_round',['../classgame__state.html#ad2e967638043670ebae93dd6ec32e91e',1,'game_state::wrap_up_round()'],['../classplayer.html#a193bcc63da13e5bc98eb46ed99381302',1,'player::wrap_up_round()']]], - ['wrap_5fup_5ftrick_4',['wrap_up_trick',['../classtrick.html#a384560623ffaf776797948cf35197c73',1,'trick']]], - ['write_5finto_5fjson_5',['write_into_json',['../classcard.html#a7f900b843e44fb18364f32dbe6cdbc7a',1,'card::write_into_json()'],['../classdeck.html#a8d226fe699a36bf462010ba1f744fbeb',1,'deck::write_into_json()'],['../classtrick.html#a97176df194eae794691356cd83292b04',1,'trick::write_into_json()'],['../classgame__state.html#a54873cd18b46555915d150a6d8dd6f83',1,'game_state::write_into_json()'],['../classhand.html#a505a82447d0ae305dadcc9c4aa54071e',1,'hand::write_into_json()'],['../classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc',1,'player::write_into_json()']]], - ['wxwidgets_6',['4.4 GUI with wxWidgets',['../index.html#autotoc_md17',1,'']]] + ['ubuntu_2024_2004_0',['Ubuntu 24 04',['../index.html#autotoc_md8',1,'2.1.1 Ubuntu 24.04'],['../index.html#autotoc_md11',1,'2.2.1 Ubuntu 24.04']]], + ['unique_5fserializable_1',['unique_serializable',['../classunique__serializable.html',1,'']]], + ['update_5fcurrent_5fplayer_2',['update_current_player',['../classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d',1,'game_state']]], + ['updategamestate_3',['updateGameState',['../class_game_controller.html#a994773f79be8c9e8dc8c19ee2d389103',1,'GameController']]], + ['uuid_5fgenerator_4',['uuid_generator',['../classuuid__generator.html',1,'']]] ]; diff --git a/html/search/all_18.js b/html/search/all_18.js index e4939719dfc2f2e067e9f6a01ad59f655b558e9d..83c88423f01571ce45a3bd197a24d5164cef3221 100644 --- a/html/search/all_18.js +++ b/html/search/all_18.js @@ -1,9 +1,10 @@ var searchData= [ - ['_7ecard_0',['~card',['../classcard.html#ac7a5d8d53e8cc33f5c5a03d8ccb806c4',1,'card']]], - ['_7edeck_1',['~deck',['../classdeck.html#a63a688bda08bfef8d2c37d53523b7b12',1,'deck']]], - ['_7egame_5fstate_2',['~game_state',['../classgame__state.html#a2fbc370f93617298719f61514afdb5bc',1,'game_state']]], - ['_7ehand_3',['~hand',['../classhand.html#af3ffc5e5b46f04b14f12a9fc130b220a',1,'hand']]], - ['_7eplayer_4',['~player',['../classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad',1,'player']]], - ['_7etrick_5',['~trick',['../classtrick.html#a22c0b586f1d6c3baeb7bb0e22eb7dfe2',1,'trick']]] + ['with_20wxwidgets_0',['4.4 GUI with wxWidgets',['../index.html#autotoc_md27',1,'']]], + ['wizard_1',['Wizard',['../index.html',1,'Software Engineering Project - Wizard'],['../class_wizard.html',1,'Wizard']]], + ['wizardexception_2',['WizardException',['../class_wizard_exception.html',1,'']]], + ['wrap_5fup_5fround_3',['wrap_up_round',['../classgame__state.html#ad2e967638043670ebae93dd6ec32e91e',1,'game_state::wrap_up_round()'],['../classplayer.html#a193bcc63da13e5bc98eb46ed99381302',1,'player::wrap_up_round()']]], + ['wrap_5fup_5ftrick_4',['wrap_up_trick',['../classtrick.html#a384560623ffaf776797948cf35197c73',1,'trick']]], + ['write_5finto_5fjson_5',['write_into_json',['../classcard.html#a7f900b843e44fb18364f32dbe6cdbc7a',1,'card::write_into_json()'],['../classdeck.html#a8d226fe699a36bf462010ba1f744fbeb',1,'deck::write_into_json()'],['../classtrick.html#a97176df194eae794691356cd83292b04',1,'trick::write_into_json()'],['../classgame__state.html#a54873cd18b46555915d150a6d8dd6f83',1,'game_state::write_into_json()'],['../classhand.html#a505a82447d0ae305dadcc9c4aa54071e',1,'hand::write_into_json()'],['../classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc',1,'player::write_into_json()']]], + ['wxwidgets_6',['4.4 GUI with wxWidgets',['../index.html#autotoc_md27',1,'']]] ]; diff --git a/html/search/all_19.js b/html/search/all_19.js index a353cc4811342410220c15c7fba89ffba6a0fc81..688609a17ecd2657de1d22465b69f6fc6b58314f 100644 --- a/html/search/all_19.js +++ b/html/search/all_19.js @@ -1,4 +1,10 @@ var searchData= [ - ['🚀_20features_0',['🚀 Features',['../index.html#autotoc_md1',1,'']]] + ['_7ecard_0',['~card',['../classcard.html#ac7a5d8d53e8cc33f5c5a03d8ccb806c4',1,'card']]], + ['_7edeck_1',['~deck',['../classdeck.html#a63a688bda08bfef8d2c37d53523b7b12',1,'deck']]], + ['_7egame_5finstance_2',['~game_instance',['../classgame__instance.html#a1fa390603341beb15e09e5a4b03465c1',1,'game_instance']]], + ['_7egame_5fstate_3',['~game_state',['../classgame__state.html#a2fbc370f93617298719f61514afdb5bc',1,'game_state']]], + ['_7ehand_4',['~hand',['../classhand.html#af3ffc5e5b46f04b14f12a9fc130b220a',1,'hand']]], + ['_7eplayer_5',['~player',['../classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad',1,'player']]], + ['_7etrick_6',['~trick',['../classtrick.html#a22c0b586f1d6c3baeb7bb0e22eb7dfe2',1,'trick']]] ]; diff --git a/html/search/all_1a.js b/html/search/all_1a.js index 00fe39aab9a30ebe9a9093d5579cbd4bf77a7ac0..a353cc4811342410220c15c7fba89ffba6a0fc81 100644 --- a/html/search/all_1a.js +++ b/html/search/all_1a.js @@ -1,13 +1,4 @@ var searchData= [ - ['query_20array_0',['Query Array',['../md_rapidjson_2doc_2tutorial_8zh-cn.html#QueryArray',1,'']]], - ['query_20object_1',['Query Object',['../md_rapidjson_2doc_2tutorial_8zh-cn.html#QueryObject',1,'']]], - ['query_20string_2',['Query String',['../md_rapidjson_2doc_2tutorial_8zh-cn.html#QueryString',1,'']]], - ['query_20value_3',['Query Value',['../md_rapidjson_2doc_2tutorial_8zh-cn.html#QueryValue',1,'']]], - ['querying_20number_4',['Querying Number',['../md_rapidjson_2doc_2tutorial_8zh-cn.html#QueryNumber',1,'']]], - ['queue_5',['Queue',['../class_queue.html',1,'']]], - ['queuenode_6',['QueueNode',['../class_queue_node.html',1,'']]], - ['quickly_7',['Quickly',['../md_googletest_2lib_2docs_2gmock__cook__book.html#autotoc_md192',1,'Writing New Action Templates Quickly'],['../md_googletest_2lib_2docs_2gmock__cook__book.html#QuickNewActions',1,'Writing New Actions Quickly'],['../md_googletest_2lib_2docs_2gmock__cook__book.html#NewMatchers',1,'Writing New Matchers Quickly'],['../md_googletest_2lib_2docs_2gmock__cook__book.html#autotoc_md184',1,'Writing New Parameterized Matchers Quickly']]], - ['quickstart_3a_20building_20with_20bazel_8',['Quickstart: Building with Bazel',['../md_googletest_2lib_2docs_2quickstart-bazel.html',1,'']]], - ['quickstart_3a_20building_20with_20cmake_9',['Quickstart: Building with CMake',['../md_googletest_2lib_2docs_2quickstart-cmake.html',1,'']]] + ['🚀_20features_0',['🚀 Features',['../index.html#autotoc_md1',1,'']]] ]; diff --git a/html/search/all_2.js b/html/search/all_2.js index 89e793875df65dbb0e4f44008067eb18d0b871f8..7ca192ce32d6b3a233f480681239278b8c9c0e18 100644 --- a/html/search/all_2.js +++ b/html/search/all_2.js @@ -1,6 +1,19 @@ var searchData= [ - ['3_20debugging_20messages_0',['4.2.3 Debugging Messages',['../index.html#autotoc_md15',1,'']]], - ['3_20game_20state_1',['4.3 Game State',['../index.html#autotoc_md16',1,'']]], - ['3_20run_20the_20game_2',['3 Run the Game',['../index.html#autotoc_md5',1,'']]] + ['2_201_201_20ubuntu_2024_2004_0',['2.1.1 Ubuntu 24.04',['../index.html#autotoc_md8',1,'']]], + ['2_201_202_20macos_20sequoia_1',['2.1.2 macOS Sequoia',['../index.html#autotoc_md9',1,'']]], + ['2_201_20macos_20sequoia_2',['2.2.1 macOS Sequoia',['../index.html#autotoc_md12',1,'']]], + ['2_201_20prepare_20os_20environment_3',['2.1 Prepare OS Environment',['../index.html#autotoc_md7',1,'']]], + ['2_201_20ubuntu_2024_2004_4',['2.2.1 Ubuntu 24.04',['../index.html#autotoc_md11',1,'']]], + ['2_202_201_20macos_20sequoia_5',['2.2.1 macOS Sequoia',['../index.html#autotoc_md12',1,'']]], + ['2_202_201_20ubuntu_2024_2004_6',['2.2.1 Ubuntu 24.04',['../index.html#autotoc_md11',1,'']]], + ['2_202_20compile_20code_7',['2.2 Compile Code',['../index.html#autotoc_md10',1,'']]], + ['2_202_20sending_20messages_8',['4.2.2 Sending messages',['../index.html#autotoc_md22',1,'']]], + ['2_203_20debugging_20messages_9',['4.2.3 Debugging Messages',['../index.html#autotoc_md25',1,'']]], + ['2_20compile_20code_10',['2.2 Compile Code',['../index.html#autotoc_md10',1,'']]], + ['2_20compile_20instructions_11',['2 Compile Instructions',['../index.html#autotoc_md6',1,'']]], + ['2_20events_12',['4.4.2 Events',['../index.html#autotoc_md29',1,'']]], + ['2_20macos_20sequoia_13',['2.1.2 macOS Sequoia',['../index.html#autotoc_md9',1,'']]], + ['2_20sending_20messages_14',['4.2.2 Sending messages',['../index.html#autotoc_md22',1,'']]], + ['24_2004_15',['24 04',['../index.html#autotoc_md8',1,'2.1.1 Ubuntu 24.04'],['../index.html#autotoc_md11',1,'2.2.1 Ubuntu 24.04']]] ]; diff --git a/html/search/all_3.js b/html/search/all_3.js index c71efc95c98a71e1261f179ce255e6eec589251c..7a5cb00d427a0baeaa9232d2e515898c0e065c67 100644 --- a/html/search/all_3.js +++ b/html/search/all_3.js @@ -1,14 +1,6 @@ var searchData= [ - ['4_201_20connection_20panel_0',['4.1 Connection Panel',['../index.html#autotoc_md7',1,'']]], - ['4_201_20structure_20important_20classes_1',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md18',1,'']]], - ['4_202_202_20sending_20messages_2',['4.2.2 Sending messages',['../index.html#autotoc_md12',1,'']]], - ['4_202_203_20debugging_20messages_3',['4.2.3 Debugging Messages',['../index.html#autotoc_md15',1,'']]], - ['4_202_20events_4',['4.4.2 Events',['../index.html#autotoc_md19',1,'']]], - ['4_203_20game_20state_5',['4.3 Game State',['../index.html#autotoc_md16',1,'']]], - ['4_204_201_20structure_20important_20classes_6',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md18',1,'']]], - ['4_204_202_20events_7',['4.4.2 Events',['../index.html#autotoc_md19',1,'']]], - ['4_204_20gui_20with_20wxwidgets_8',['4.4 GUI with wxWidgets',['../index.html#autotoc_md17',1,'']]], - ['4_20gui_20with_20wxwidgets_9',['4.4 GUI with wxWidgets',['../index.html#autotoc_md17',1,'']]], - ['4_20play_20the_20game_10',['4 Play the Game',['../index.html#autotoc_md6',1,'']]] + ['3_20debugging_20messages_0',['4.2.3 Debugging Messages',['../index.html#autotoc_md25',1,'']]], + ['3_20game_20state_1',['4.3 Game State',['../index.html#autotoc_md26',1,'']]], + ['3_20run_20the_20game_2',['3 Run the Game',['../index.html#autotoc_md14',1,'']]] ]; diff --git a/html/search/all_4.js b/html/search/all_4.js index 0108da970737973010bc88365ec62b9c30d9995e..798aca2fb03cd117e9ed72776d75536214cd14d7 100644 --- a/html/search/all_4.js +++ b/html/search/all_4.js @@ -1,5 +1,14 @@ var searchData= [ - ['add_5fcard_0',['add_card',['../classtrick.html#a2d3b5aa88a1469dc3d58f30885752f5d',1,'trick::add_card()'],['../classhand.html#ad4749893f36ff1d6dcda3bb18eaedffb',1,'hand::add_card()'],['../classplayer.html#ab3b087d03dd2c81d893b2ffad459a26f',1,'player::add_card()']]], - ['add_5fplayer_1',['add_player',['../classgame__state.html#a4a4fde0700a05c589a6b9c4dbcffac18',1,'game_state']]] + ['4_201_20connection_20panel_0',['4.1 Connection Panel',['../index.html#autotoc_md17',1,'']]], + ['4_201_20structure_20important_20classes_1',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md28',1,'']]], + ['4_202_202_20sending_20messages_2',['4.2.2 Sending messages',['../index.html#autotoc_md22',1,'']]], + ['4_202_203_20debugging_20messages_3',['4.2.3 Debugging Messages',['../index.html#autotoc_md25',1,'']]], + ['4_202_20events_4',['4.4.2 Events',['../index.html#autotoc_md29',1,'']]], + ['4_203_20game_20state_5',['4.3 Game State',['../index.html#autotoc_md26',1,'']]], + ['4_204_201_20structure_20important_20classes_6',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md28',1,'']]], + ['4_204_202_20events_7',['4.4.2 Events',['../index.html#autotoc_md29',1,'']]], + ['4_204_20gui_20with_20wxwidgets_8',['4.4 GUI with wxWidgets',['../index.html#autotoc_md27',1,'']]], + ['4_20gui_20with_20wxwidgets_9',['4.4 GUI with wxWidgets',['../index.html#autotoc_md27',1,'']]], + ['4_20play_20the_20game_10',['4 Play the Game',['../index.html#autotoc_md16',1,'']]] ]; diff --git a/html/search/all_5.js b/html/search/all_5.js index 751db27f79f4e8804761ebb5cc62844374a1347a..0108da970737973010bc88365ec62b9c30d9995e 100644 --- a/html/search/all_5.js +++ b/html/search/all_5.js @@ -1,4 +1,5 @@ var searchData= [ - ['base_5fclass_5fproperties_0',['base_class_properties',['../structclient__request_1_1base__class__properties.html',1,'client_request::base_class_properties'],['../structserver__response_1_1base__class__properties.html',1,'server_response::base_class_properties']]] + ['add_5fcard_0',['add_card',['../classtrick.html#a2d3b5aa88a1469dc3d58f30885752f5d',1,'trick::add_card()'],['../classhand.html#ad4749893f36ff1d6dcda3bb18eaedffb',1,'hand::add_card()'],['../classplayer.html#ab3b087d03dd2c81d893b2ffad459a26f',1,'player::add_card()']]], + ['add_5fplayer_1',['add_player',['../classgame__state.html#a4a4fde0700a05c589a6b9c4dbcffac18',1,'game_state']]] ]; diff --git a/html/search/all_6.js b/html/search/all_6.js index 19db1fc5dace627b447a4628ca36efade2e455ca..6a30117788769dddd612dc34f63c69cd22a0c568 100644 --- a/html/search/all_6.js +++ b/html/search/all_6.js @@ -1,12 +1,5 @@ var searchData= [ - ['card_0',['card',['../classcard.html',1,'card'],['../classcard.html#a764d65641c619aedf1842a30e54905b7',1,'card::card()']]], - ['classes_1',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md18',1,'']]], - ['client_20server_3a_2',['Client -> Server:',['../index.html#autotoc_md13',1,'']]], - ['client_3a_3',['Server -> Client:',['../index.html#autotoc_md14',1,'']]], - ['client_5frequest_4',['client_request',['../classclient__request.html',1,'']]], - ['clientnetworkmanager_5',['ClientNetworkManager',['../class_client_network_manager.html',1,'']]], - ['compile_20instructions_6',['2 Compile Instructions',['../index.html#autotoc_md4',1,'']]], - ['connection_20panel_7',['4.1 Connection Panel',['../index.html#autotoc_md7',1,'']]], - ['connectionpanel_8',['ConnectionPanel',['../class_connection_panel.html',1,'']]] + ['base_5fclass_5fproperties_0',['base_class_properties',['../structclient__request_1_1base__class__properties.html',1,'client_request::base_class_properties'],['../structserver__response_1_1base__class__properties.html',1,'server_response::base_class_properties']]], + ['buildgamestate_1',['buildGameState',['../class_main_game_panel_wizard.html#a83517cab2cccba78cce79450de3bb7f3',1,'MainGamePanelWizard']]] ]; diff --git a/html/search/all_7.js b/html/search/all_7.js index d24b54404e4d120812afcf2779b916e9ec044981..b28be32574955b889908c7c260945803214a45d8 100644 --- a/html/search/all_7.js +++ b/html/search/all_7.js @@ -1,11 +1,16 @@ var searchData= [ - ['debugging_20messages_0',['4.2.3 Debugging Messages',['../index.html#autotoc_md15',1,'']]], - ['decide_5ftrump_5fcolor_5frequest_1',['decide_trump_color_request',['../classdecide__trump__color__request.html',1,'']]], - ['deck_2',['deck',['../classdeck.html',1,'deck'],['../classdeck.html#a2ff8465ba7b13201bdf650fe461b442e',1,'deck::deck()'],['../classdeck.html#ac18be42e5ad9ade42faed5be057f558b',1,'deck::deck(const std::vector< card * > &cards)']]], - ['derived_5ffrom_3',['derived_from',['../structvector__utils_1_1derived__from.html',1,'vector_utils']]], - ['deserialization_4',['Deserialization',['../index.html#autotoc_md11',1,'']]], - ['deserialization_20of_20messages_5',['Serialization & Deserialization of messages',['../index.html#autotoc_md9',1,'']]], - ['draw_5fcards_6',['draw_cards',['../classdeck.html#afa56e0fb7919ca1ceebae9b3bd79280d',1,'deck']]], - ['draw_5ftrump_7',['draw_trump',['../classdeck.html#ac5b85f992cf36d00873d2c7be7dc8c2b',1,'deck']]] + ['card_0',['card',['../classcard.html',1,'card'],['../classcard.html#a764d65641c619aedf1842a30e54905b7',1,'card::card()']]], + ['classes_1',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md28',1,'']]], + ['client_20server_3a_2',['Client -> Server:',['../index.html#autotoc_md23',1,'']]], + ['client_3a_3',['Server -> Client:',['../index.html#autotoc_md24',1,'']]], + ['client_5frequest_4',['client_request',['../classclient__request.html',1,'']]], + ['clientnetworkmanager_5',['ClientNetworkManager',['../class_client_network_manager.html',1,'']]], + ['closegamewindow_6',['closeGameWindow',['../class_game_controller.html#a21eea505305d56439efb835e1e148c2f',1,'GameController']]], + ['code_7',['2.2 Compile Code',['../index.html#autotoc_md10',1,'']]], + ['compile_20code_8',['2.2 Compile Code',['../index.html#autotoc_md10',1,'']]], + ['compile_20instructions_9',['2 Compile Instructions',['../index.html#autotoc_md6',1,'']]], + ['connection_20panel_10',['4.1 Connection Panel',['../index.html#autotoc_md17',1,'']]], + ['connectionpanel_11',['ConnectionPanel',['../class_connection_panel.html',1,'']]], + ['connecttoserver_12',['connectToServer',['../class_game_controller.html#a023da21da545374ee46fb873149976c4',1,'GameController']]] ]; diff --git a/html/search/all_8.js b/html/search/all_8.js index d83294d4727c050caf1bf61947055b6d3ca73d2d..000a22d496146d90e1acb5ea1040c8ed8add1c7d 100644 --- a/html/search/all_8.js +++ b/html/search/all_8.js @@ -1,8 +1,11 @@ var searchData= [ - ['engineering_20project_20wizard_0',['Software Engineering Project - Wizard',['../index.html',1,'']]], - ['errordialog_1',['ErrorDialog',['../class_error_dialog.html',1,'']]], - ['estimate_5ftricks_2',['estimate_tricks',['../classgame__state.html#ac4ebff625d83c633c124890537d60354',1,'game_state']]], - ['estimate_5ftricks_5frequest_3',['estimate_tricks_request',['../classestimate__tricks__request.html',1,'']]], - ['events_4',['4.4.2 Events',['../index.html#autotoc_md19',1,'']]] + ['debugging_20messages_0',['4.2.3 Debugging Messages',['../index.html#autotoc_md25',1,'']]], + ['decide_5ftrump_5fcolor_5frequest_1',['decide_trump_color_request',['../classdecide__trump__color__request.html',1,'']]], + ['deck_2',['deck',['../classdeck.html',1,'deck'],['../classdeck.html#a2ff8465ba7b13201bdf650fe461b442e',1,'deck::deck()'],['../classdeck.html#ac18be42e5ad9ade42faed5be057f558b',1,'deck::deck(const std::vector< card * > &cards)']]], + ['derived_5ffrom_3',['derived_from',['../structvector__utils_1_1derived__from.html',1,'vector_utils']]], + ['deserialization_4',['Deserialization',['../index.html#autotoc_md21',1,'']]], + ['deserialization_20of_20messages_5',['Serialization & Deserialization of messages',['../index.html#autotoc_md19',1,'']]], + ['draw_5fcards_6',['draw_cards',['../classdeck.html#afa56e0fb7919ca1ceebae9b3bd79280d',1,'deck']]], + ['draw_5ftrump_7',['draw_trump',['../classdeck.html#ac5b85f992cf36d00873d2c7be7dc8c2b',1,'deck']]] ]; diff --git a/html/search/all_9.js b/html/search/all_9.js index 1c20648fd8e1c7de8786c3a624d776e91f993e25..abaad46762fe68cade93fcb61c1253da913c4e64 100644 --- a/html/search/all_9.js +++ b/html/search/all_9.js @@ -1,7 +1,10 @@ var searchData= [ - ['features_0',['🚀 Features',['../index.html#autotoc_md1',1,'']]], - ['finish_5fgame_1',['finish_game',['../classgame__state.html#a67fdd4b5682715cd2d848031a9911b17',1,'game_state']]], - ['from_5fjson_2',['from_json',['../classcard.html#a48593187c9bff442d61f197991954011',1,'card::from_json()'],['../classdeck.html#abe8dbe828189696c22f35ac3ed4fd296',1,'deck::from_json()'],['../classtrick.html#a1a3d94f638672d3d60d596190ae59dfb',1,'trick::from_json()'],['../classgame__state.html#a794d484961c92b5b737586ec5599963f',1,'game_state::from_json()'],['../classhand.html#aa9cffdf932d80c7304a335074403e785',1,'hand::from_json()'],['../classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5',1,'player::from_json()']]], - ['full_5fstate_5fresponse_3',['full_state_response',['../classfull__state__response.html',1,'']]] + ['engineering_20project_20wizard_0',['Software Engineering Project - Wizard',['../index.html',1,'']]], + ['environment_1',['2.1 Prepare OS Environment',['../index.html#autotoc_md7',1,'']]], + ['errordialog_2',['ErrorDialog',['../class_error_dialog.html',1,'']]], + ['estimate_5ftricks_3',['estimate_tricks',['../classgame__state.html#ac4ebff625d83c633c124890537d60354',1,'game_state::estimate_tricks()'],['../classgame__instance.html#af1434756e3041deca68b4f4f84176f05',1,'game_instance::estimate_tricks()']]], + ['estimate_5ftricks_5frequest_4',['estimate_tricks_request',['../classestimate__tricks__request.html',1,'']]], + ['estimatetricks_5',['estimateTricks',['../class_game_controller.html#abd110563d0f37f06096176c199d22055',1,'GameController']]], + ['events_6',['4.4.2 Events',['../index.html#autotoc_md29',1,'']]] ]; diff --git a/html/search/all_a.js b/html/search/all_a.js index 242dd52ec6603eb676fa8fa56bf742e6a6700247..1c20648fd8e1c7de8786c3a624d776e91f993e25 100644 --- a/html/search/all_a.js +++ b/html/search/all_a.js @@ -1,35 +1,7 @@ var searchData= [ - ['game_0',['Game',['../index.html#autotoc_md5',1,'3 Run the Game'],['../index.html#autotoc_md6',1,'4 Play the Game']]], - ['game_20state_1',['4.3 Game State',['../index.html#autotoc_md16',1,'']]], - ['game_5finstance_2',['game_instance',['../classgame__instance.html',1,'']]], - ['game_5finstance_5fmanager_3',['game_instance_manager',['../classgame__instance__manager.html',1,'']]], - ['game_5fstate_4',['game_state',['../classgame__state.html',1,'game_state'],['../classgame__state.html#a0c10b830e222d726557c3c33685c595a',1,'game_state::game_state()']]], - ['gamecontroller_5',['GameController',['../class_game_controller.html',1,'']]], - ['gamewindow_6',['GameWindow',['../class_game_window.html',1,'']]], - ['get_5fcards_7',['get_cards',['../classhand.html#ad104b0376b1a13d987f349dd524ca47f',1,'hand']]], - ['get_5fcards_5fand_5fplayers_8',['get_cards_and_players',['../classtrick.html#a1d75f9e8fc94fd122adfc39a20089268',1,'trick']]], - ['get_5fcolor_9',['get_color',['../classcard.html#ab033bc0e71b09d3cf3ac28c2f1fbde18',1,'card']]], - ['get_5fcurrent_5fplayer_10',['get_current_player',['../classgame__state.html#a2d16f420a8aa651685461a5efb8bb600',1,'game_state']]], - ['get_5fgame_5fid_11',['get_game_id',['../classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c',1,'player']]], - ['get_5fhand_12',['get_hand',['../classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d',1,'player']]], - ['get_5flast_5ftrick_13',['get_last_trick',['../classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b',1,'game_state']]], - ['get_5fmax_5fround_5fnumber_14',['get_max_round_number',['../classgame__state.html#aa75c4da6c0056e48e5040be8127d7473',1,'game_state']]], - ['get_5fnof_5fcards_15',['get_nof_cards',['../classhand.html#adc90d109b7b564a0dbca0b0798c99641',1,'hand::get_nof_cards()'],['../classplayer.html#a457c5ab90b0ecd610eead66b41c8333a',1,'player::get_nof_cards() const noexcept']]], - ['get_5fnof_5fpredicted_16',['get_nof_predicted',['../classplayer.html#a40333c302ff51707749c544930fb80aa',1,'player']]], - ['get_5fnof_5ftricks_17',['get_nof_tricks',['../classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4',1,'player']]], - ['get_5fnumber_5fof_5fremaining_5fcards_18',['get_number_of_remaining_cards',['../classdeck.html#ae1c7a4174108a14cb1180de1afdcb6d6',1,'deck']]], - ['get_5fplayer_5fname_19',['get_player_name',['../classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773',1,'player']]], - ['get_5fplayers_20',['get_players',['../classgame__state.html#abcaccd551f938f961d12266e34c037d2',1,'game_state']]], - ['get_5fround_5fnumber_21',['get_round_number',['../classgame__state.html#ab3ef836a1b3a1e2bc9e429a018c72eca',1,'game_state']]], - ['get_5fscores_22',['get_scores',['../classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac',1,'player']]], - ['get_5fstarting_5fplayer_23',['get_starting_player',['../classgame__state.html#af4c553229260e307ff1f78dd0c74506d',1,'game_state']]], - ['get_5ftrick_24',['get_trick',['../classgame__state.html#a472fd1721c7cc9e3689394f18c767bf9',1,'game_state']]], - ['get_5ftrick_5fcolor_25',['get_trick_color',['../classtrick.html#a41f315804ac73454c8e41438da20a9c3',1,'trick']]], - ['get_5ftrick_5festimate_5fsum_26',['get_trick_estimate_sum',['../classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282',1,'game_state']]], - ['get_5ftrick_5fnumber_27',['get_trick_number',['../classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15',1,'game_state']]], - ['get_5ftrick_5fstarting_5fplayer_28',['get_trick_starting_player',['../classgame__state.html#aa40554d105939c5dce934daaa858c242',1,'game_state']]], - ['get_5ftrump_5fcolor_29',['get_trump_color',['../classtrick.html#a69c49e2968abb235a6c7148cb05b0e64',1,'trick::get_trump_color()'],['../classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4',1,'game_state::get_trump_color()']]], - ['get_5fvalue_30',['get_value',['../classcard.html#a2baf8dfef09ac8c1a67b34c2e67186c3',1,'card']]], - ['gui_20with_20wxwidgets_31',['4.4 GUI with wxWidgets',['../index.html#autotoc_md17',1,'']]] + ['features_0',['🚀 Features',['../index.html#autotoc_md1',1,'']]], + ['finish_5fgame_1',['finish_game',['../classgame__state.html#a67fdd4b5682715cd2d848031a9911b17',1,'game_state']]], + ['from_5fjson_2',['from_json',['../classcard.html#a48593187c9bff442d61f197991954011',1,'card::from_json()'],['../classdeck.html#abe8dbe828189696c22f35ac3ed4fd296',1,'deck::from_json()'],['../classtrick.html#a1a3d94f638672d3d60d596190ae59dfb',1,'trick::from_json()'],['../classgame__state.html#a794d484961c92b5b737586ec5599963f',1,'game_state::from_json()'],['../classhand.html#aa9cffdf932d80c7304a335074403e785',1,'hand::from_json()'],['../classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5',1,'player::from_json()']]], + ['full_5fstate_5fresponse_3',['full_state_response',['../classfull__state__response.html',1,'']]] ]; diff --git a/html/search/all_b.js b/html/search/all_b.js index 22d1bbeadb06209d67d91281f4981e348af86c46..78442ceb5005602cd4047e50c1a66242061b7d1a 100644 --- a/html/search/all_b.js +++ b/html/search/all_b.js @@ -1,4 +1,40 @@ var searchData= [ - ['hand_0',['hand',['../classhand.html',1,'hand'],['../classhand.html#ae8d7de2589266f57271ac191dab8cd64',1,'hand::hand()'],['../classhand.html#afb908b5b24b92eec58c6d39739093a84',1,'hand::hand(const std::string &id, const std::vector< card * > &cards)'],['../classhand.html#a4820b774c5446b60f74c6458691d1de8',1,'hand::hand(const std::string &id)']]] + ['game_0',['Game',['../index.html#autotoc_md14',1,'3 Run the Game'],['../index.html#autotoc_md16',1,'4 Play the Game']]], + ['game_20state_1',['4.3 Game State',['../index.html#autotoc_md26',1,'']]], + ['game_5finstance_2',['game_instance',['../classgame__instance.html',1,'game_instance'],['../classgame__instance.html#a2b1d00adf8c933a98698f972827e48b9',1,'game_instance::game_instance()']]], + ['game_5finstance_5fmanager_3',['game_instance_manager',['../classgame__instance__manager.html',1,'']]], + ['game_5fstate_4',['game_state',['../classgame__state.html',1,'game_state'],['../classgame__state.html#a0c10b830e222d726557c3c33685c595a',1,'game_state::game_state()']]], + ['gamecontroller_5',['GameController',['../class_game_controller.html',1,'']]], + ['gamewindow_6',['GameWindow',['../class_game_window.html',1,'']]], + ['get_5fcards_7',['get_cards',['../classhand.html#ad104b0376b1a13d987f349dd524ca47f',1,'hand']]], + ['get_5fcards_5fand_5fplayers_8',['get_cards_and_players',['../classtrick.html#a1d75f9e8fc94fd122adfc39a20089268',1,'trick']]], + ['get_5fcolor_9',['get_color',['../classcard.html#ab033bc0e71b09d3cf3ac28c2f1fbde18',1,'card']]], + ['get_5fcurrent_5fplayer_10',['get_current_player',['../classgame__state.html#a2d16f420a8aa651685461a5efb8bb600',1,'game_state']]], + ['get_5fgame_5fid_11',['get_game_id',['../classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c',1,'player']]], + ['get_5fgame_5fstate_12',['get_game_state',['../classgame__instance.html#a852c73a12031d7fbd2095530df595c5c',1,'game_instance']]], + ['get_5fhand_13',['get_hand',['../classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d',1,'player']]], + ['get_5fid_14',['get_id',['../classgame__instance.html#a72cd93738171ffc856c3d77df5f967da',1,'game_instance']]], + ['get_5flast_5ftrick_15',['get_last_trick',['../classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b',1,'game_state']]], + ['get_5fmax_5fround_5fnumber_16',['get_max_round_number',['../classgame__state.html#aa75c4da6c0056e48e5040be8127d7473',1,'game_state']]], + ['get_5fnof_5fcards_17',['get_nof_cards',['../classhand.html#adc90d109b7b564a0dbca0b0798c99641',1,'hand::get_nof_cards()'],['../classplayer.html#a457c5ab90b0ecd610eead66b41c8333a',1,'player::get_nof_cards() const noexcept']]], + ['get_5fnof_5fpredicted_18',['get_nof_predicted',['../classplayer.html#a40333c302ff51707749c544930fb80aa',1,'player']]], + ['get_5fnof_5ftricks_19',['get_nof_tricks',['../classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4',1,'player']]], + ['get_5fnumber_5fof_5fremaining_5fcards_20',['get_number_of_remaining_cards',['../classdeck.html#ae1c7a4174108a14cb1180de1afdcb6d6',1,'deck']]], + ['get_5fplayer_5fname_21',['get_player_name',['../classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773',1,'player']]], + ['get_5fplayers_22',['get_players',['../classgame__state.html#abcaccd551f938f961d12266e34c037d2',1,'game_state']]], + ['get_5fround_5fnumber_23',['get_round_number',['../classgame__state.html#ab3ef836a1b3a1e2bc9e429a018c72eca',1,'game_state']]], + ['get_5fscores_24',['get_scores',['../classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac',1,'player']]], + ['get_5fstarting_5fplayer_25',['get_starting_player',['../classgame__state.html#af4c553229260e307ff1f78dd0c74506d',1,'game_state']]], + ['get_5ftrick_26',['get_trick',['../classgame__state.html#a472fd1721c7cc9e3689394f18c767bf9',1,'game_state']]], + ['get_5ftrick_5fcolor_27',['get_trick_color',['../classtrick.html#a41f315804ac73454c8e41438da20a9c3',1,'trick']]], + ['get_5ftrick_5festimate_5fsum_28',['get_trick_estimate_sum',['../classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282',1,'game_state']]], + ['get_5ftrick_5fnumber_29',['get_trick_number',['../classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15',1,'game_state']]], + ['get_5ftrick_5fstarting_5fplayer_30',['get_trick_starting_player',['../classgame__state.html#aa40554d105939c5dce934daaa858c242',1,'game_state']]], + ['get_5ftrump_5fcard_5fvalue_31',['get_trump_card_value',['../classgame__state.html#a115a9b1dbb65db44669363b407aa62ac',1,'game_state']]], + ['get_5ftrump_5fcolor_32',['get_trump_color',['../classtrick.html#a69c49e2968abb235a6c7148cb05b0e64',1,'trick::get_trump_color()'],['../classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4',1,'game_state::get_trump_color()']]], + ['get_5fvalue_33',['get_value',['../classcard.html#a2baf8dfef09ac8c1a67b34c2e67186c3',1,'card']]], + ['get_5fwinner_34',['get_winner',['../classtrick.html#a4b93ae88c17db486d975408cd8cfad1b',1,'trick']]], + ['getmainthreadeventhandler_35',['getMainThreadEventHandler',['../class_game_controller.html#abec8c73ea01e4b7e01b2ca1d932e0c16',1,'GameController']]], + ['gui_20with_20wxwidgets_36',['4.4 GUI with wxWidgets',['../index.html#autotoc_md27',1,'']]] ]; diff --git a/html/search/all_c.js b/html/search/all_c.js index 98badb21bc5740cf7ed4a9fa9995c81edf05f8e7..4a70403943634d8865741b046c0cb5fdef5a30b7 100644 --- a/html/search/all_c.js +++ b/html/search/all_c.js @@ -1,14 +1,5 @@ var searchData= [ - ['imagepanel_0',['ImagePanel',['../class_image_panel.html',1,'']]], - ['important_20classes_1',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md18',1,'']]], - ['inputfield_2',['InputField',['../class_input_field.html',1,'']]], - ['instructions_3',['2 Compile Instructions',['../index.html#autotoc_md4',1,'']]], - ['interface_4',['Network Interface',['../index.html#autotoc_md8',1,'']]], - ['is_5fempty_5',['is_empty',['../classdeck.html#a6aef528ff7b9c608863cc77c19b7882d',1,'deck']]], - ['is_5festimation_5fphase_6',['is_estimation_phase',['../classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb',1,'game_state']]], - ['is_5ffinished_7',['is_finished',['../classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45',1,'game_state']]], - ['is_5ffull_8',['is_full',['../classgame__state.html#ae161c283e275a57d71834754d11e9e40',1,'game_state']]], - ['is_5fplayer_5fin_5fgame_9',['is_player_in_game',['../classgame__state.html#a371d6a6d84395b90c15d84549b05d553',1,'game_state']]], - ['is_5fstarted_10',['is_started',['../classgame__state.html#aa0092c41779f38eba5e921e43b38559c',1,'game_state']]] + ['hand_0',['hand',['../classhand.html',1,'hand'],['../classhand.html#ae8d7de2589266f57271ac191dab8cd64',1,'hand::hand()'],['../classhand.html#afb908b5b24b92eec58c6d39739093a84',1,'hand::hand(const std::string &id, const std::vector< card * > &cards)'],['../classhand.html#a4820b774c5446b60f74c6458691d1de8',1,'hand::hand(const std::string &id)']]], + ['has_5fleft_5fgame_1',['has_left_game',['../classplayer.html#aac1b87de3b686d8ee1049269f6c9f272',1,'player']]] ]; diff --git a/html/search/all_d.js b/html/search/all_d.js index 29ca06cb7085e5b5275ae95810d06bae0ca258eb..b8fabbbff2504991a33bc450df7cc346c5459740 100644 --- a/html/search/all_d.js +++ b/html/search/all_d.js @@ -1,5 +1,15 @@ var searchData= [ - ['join_5fgame_5frequest_0',['join_game_request',['../classjoin__game__request.html',1,'']]], - ['json_5futils_1',['json_utils',['../classjson__utils.html',1,'']]] + ['imagepanel_0',['ImagePanel',['../class_image_panel.html',1,'']]], + ['important_20classes_1',['4.4.1 Structure & Important Classes',['../index.html#autotoc_md28',1,'']]], + ['init_2',['init',['../class_game_controller.html#a8889bad76bc35487d3391fb8a5791616',1,'GameController']]], + ['inputfield_3',['InputField',['../class_input_field.html',1,'']]], + ['instructions_4',['2 Compile Instructions',['../index.html#autotoc_md6',1,'']]], + ['interface_5',['Network Interface',['../index.html#autotoc_md18',1,'']]], + ['is_5fempty_6',['is_empty',['../classdeck.html#a6aef528ff7b9c608863cc77c19b7882d',1,'deck']]], + ['is_5festimation_5fphase_7',['is_estimation_phase',['../classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb',1,'game_state']]], + ['is_5ffinished_8',['is_finished',['../classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45',1,'game_state::is_finished()'],['../classgame__instance.html#a5a080dfced3d2d1c697e36160b996a9c',1,'game_instance::is_finished()']]], + ['is_5ffull_9',['is_full',['../classgame__state.html#ae161c283e275a57d71834754d11e9e40',1,'game_state::is_full()'],['../classgame__instance.html#a77d1f40b8727c74f278efe9168f26831',1,'game_instance::is_full()']]], + ['is_5fplayer_5fin_5fgame_10',['is_player_in_game',['../classgame__state.html#a371d6a6d84395b90c15d84549b05d553',1,'game_state']]], + ['is_5fstarted_11',['is_started',['../classgame__state.html#aa0092c41779f38eba5e921e43b38559c',1,'game_state::is_started()'],['../classgame__instance.html#a2c8a8be71f8c3016075cc08768ebbb64',1,'game_instance::is_started()']]] ]; diff --git a/html/search/all_e.js b/html/search/all_e.js index 78a8d1392dfe7a06d71cfde86ca111fcd98607f2..29ca06cb7085e5b5275ae95810d06bae0ca258eb 100644 --- a/html/search/all_e.js +++ b/html/search/all_e.js @@ -1,4 +1,5 @@ var searchData= [ - ['leave_5fgame_5frequest_0',['leave_game_request',['../classleave__game__request.html',1,'']]] + ['join_5fgame_5frequest_0',['join_game_request',['../classjoin__game__request.html',1,'']]], + ['json_5futils_1',['json_utils',['../classjson__utils.html',1,'']]] ]; diff --git a/html/search/all_f.js b/html/search/all_f.js index bc23ecc433bd599701ba016fff749531e92acca8..43269148016fdd754af9ee7fb0cf01d34fc2c2c0 100644 --- a/html/search/all_f.js +++ b/html/search/all_f.js @@ -1,6 +1,5 @@ var searchData= [ - ['maingamepanelwizard_0',['MainGamePanelWizard',['../class_main_game_panel_wizard.html',1,'']]], - ['messages_1',['4.2.3 Debugging Messages',['../index.html#autotoc_md15',1,'']]], - ['messages_2',['messages',['../index.html#autotoc_md12',1,'4.2.2 Sending messages'],['../index.html#autotoc_md9',1,'Serialization & Deserialization of messages']]] + ['leave_5fgame_5frequest_0',['leave_game_request',['../classleave__game__request.html',1,'']]], + ['leavegame_1',['leaveGame',['../class_game_controller.html#a8d42b2e41759bfd65cdebad87437369e',1,'GameController']]] ]; diff --git a/html/search/functions_1.js b/html/search/functions_1.js index 377f58f90f5f3bfe00163fd69b694731a37fe126..4b286c6a29d3c2a33999b7084e8b9433e2e83b3a 100644 --- a/html/search/functions_1.js +++ b/html/search/functions_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['card_0',['card',['../classcard.html#a764d65641c619aedf1842a30e54905b7',1,'card']]] + ['buildgamestate_0',['buildGameState',['../class_main_game_panel_wizard.html#a83517cab2cccba78cce79450de3bb7f3',1,'MainGamePanelWizard']]] ]; diff --git a/html/search/functions_10.js b/html/search/functions_10.js index bf6d760bbf80b9a0ca0f2a771e8daf28ff39464d..86ce831eb54ae1212bb9536430f2d11d68fdba8e 100644 --- a/html/search/functions_10.js +++ b/html/search/functions_10.js @@ -1,29 +1,6 @@ var searchData= [ - ['rapidjson_5fdisableif_5freturn_0',['RAPIDJSON_DISABLEIF_RETURN',['../class_generic_value.html#a4a4418a93777942e1fb7ea71f8aaf680',1,'GenericValue::RAPIDJSON_DISABLEIF_RETURN()'],['../class_generic_pointer.html#aaf4d7d852098878d24188d134182d42f',1,'GenericPointer::RAPIDJSON_DISABLEIF_RETURN()']]], - ['rawassign_1',['RawAssign',['../class_generic_value.html#abb8ea2dfbe74ff4ee7dac6be31317f81',1,'GenericValue']]], - ['rawnumber_2',['RawNumber',['../struct_base_reader_handler.html#a9ed0d83d5e6c8f5e4b32ca3735ff0bb7',1,'BaseReaderHandler']]], - ['rawvalue_3',['RawValue',['../class_pretty_writer.html#a440890a72408a150ef46edda6becdc94',1,'PrettyWriter::RawValue()'],['../class_writer.html#ae0d1615104e4e88040b9640e6784008a',1,'Writer::RawValue()']]], - ['read_4',['read',['../classsockpp_1_1stream__socket.html#af21195b2a3e57715633ddd1ef0e5ad4c',1,'sockpp::stream_socket::read(void *buf, size_t n)'],['../classsockpp_1_1stream__socket.html#af93451f736e136ee7fb3aaadb728b5bd',1,'sockpp::stream_socket::read(const std::vector< iovec > &ranges)']]], - ['read_5fn_5',['read_n',['../classsockpp_1_1stream__socket.html#aaddd96efc49c7a7c1c8460cc2d5690b0',1,'sockpp::stream_socket']]], - ['read_5ftimeout_6',['read_timeout',['../classsockpp_1_1stream__socket.html#a5bdd04eeedc1fb06194731834aff388d',1,'sockpp::stream_socket::read_timeout(const std::chrono::microseconds &to)'],['../classsockpp_1_1stream__socket.html#a2d9799fa7073b6e32d77969ae218c2da',1,'sockpp::stream_socket::read_timeout(const std::chrono::duration< Rep, Period > &to)']]], - ['readfile_7',['ReadFile',['../classupload_1_1_subversion_v_c_s.html#a601ffb1146763196a01ee546294248f2',1,'upload.SubversionVCS.ReadFile()'],['../namespacecpp_1_1utils.html#a6c7c7f6290e60b50b063b8ac7f6e9eec',1,'cpp.utils.ReadFile()']]], - ['realloc_8',['Realloc',['../class_memory_pool_allocator.html#a7c273279d361b207ff622d4bdfc63074',1,'MemoryPoolAllocator']]], - ['realmain_9',['RealMain',['../namespaceupload.html#a7cfc90ec8769d2c5d7fd0f4ca70ab028',1,'upload']]], - ['recv_10',['recv',['../classsockpp_1_1datagram__socket.html#a7d847d6fc22b561f354be2572b216d53',1,'sockpp::datagram_socket']]], - ['recv_5ffrom_11',['recv_from',['../classsockpp_1_1datagram__socket.html#a811729b400d0fb509285517b85f63099',1,'sockpp::datagram_socket::recv_from(void *buf, size_t n, int flags, sock_address *srcAddr=nullptr)'],['../classsockpp_1_1datagram__socket.html#a889c67f171e12412b5a63455a925676a',1,'sockpp::datagram_socket::recv_from(void *buf, size_t n, sock_address *srcAddr=nullptr)'],['../classsockpp_1_1datagram__socket__tmpl.html#a1cb29c310cd5aa4aab535d30433a4174',1,'sockpp::datagram_socket_tmpl::recv_from(void *buf, size_t n, int flags, ADDR *srcAddr)'],['../classsockpp_1_1datagram__socket__tmpl.html#ab1708f871b758248f3ee36d210125be0',1,'sockpp::datagram_socket_tmpl::recv_from(void *buf, size_t n, ADDR *srcAddr=nullptr)']]], - ['release_12',['release',['../classsockpp_1_1socket.html#a0abd1df80068ae0cba01a7875def7260',1,'sockpp::socket']]], - ['removelocations_13',['RemoveLocations',['../namespacegmock__output__test.html#a59c40167b074a2ef04aecc79a0273f13',1,'gmock_output_test']]], - ['removememoryaddresses_14',['RemoveMemoryAddresses',['../namespacegmock__output__test.html#ac16c3c4b4875becf250dd73beb381a82',1,'gmock_output_test']]], - ['removereportheaderandfooter_15',['RemoveReportHeaderAndFooter',['../namespacegmock__output__test.html#acb06643e5e0d0eb85a3bc067e09e56f9',1,'gmock_output_test']]], - ['removetestnamesofleakedmocks_16',['RemoveTestNamesOfLeakedMocks',['../namespacegmock__output__test.html#ad0a9e9474fb8cb1729c20bc51222c46e',1,'gmock_output_test']]], - ['requires_17',['Requires',['../classcpp_1_1ast_1_1_node.html#aec63b7dc43a288117d017baa9d042983',1,'cpp.ast.Node.Requires()'],['../classcpp_1_1ast_1_1_expr.html#a704c0220f8dc7f49607d6af3f3744cf9',1,'cpp.ast.Expr.Requires()'],['../classcpp_1_1ast_1_1_parameter.html#a6514b2e10c1818003d6df7e4e8385eb8',1,'cpp.ast.Parameter.Requires()'],['../classcpp_1_1ast_1_1_variable_declaration.html#a72eae8975219cb7ba0e989ceb2be7ac0',1,'cpp.ast.VariableDeclaration.Requires()'],['../classcpp_1_1ast_1_1_typedef.html#ad94253075cea5a5110bf5e9b8fe0ee61',1,'cpp.ast.Typedef.Requires()'],['../classcpp_1_1ast_1_1_class.html#ac1b332bf3c76a5e5e4b204200846cbd0',1,'cpp.ast.Class.Requires()'],['../classcpp_1_1ast_1_1_function.html#a6bfa2b0841e15075b951aa9330603ab5',1,'cpp.ast.Function.Requires()']]], - ['reset_18',['Reset',['../class_generic_schema_validator.html#a49efbbe098cb77728be3d48cafed17e4',1,'GenericSchemaValidator::Reset()'],['../class_writer.html#a8b53e8f137f7fcf694f5500711b3f58d',1,'Writer::Reset()']]], - ['reset_19',['reset',['../classsockpp_1_1socket.html#a4402f0ec2d73dbc43747cdb5bac386b8',1,'sockpp::socket']]], - ['resolve_5fname_20',['resolve_name',['../classsockpp_1_1inet6__address.html#a6445b401e068056926f873f70fad5d85',1,'sockpp::inet6_address::resolve_name()'],['../classsockpp_1_1inet__address.html#a5557693f023a3f494072a72cde1960f4',1,'sockpp::inet_address::resolve_name()']]], - ['runandverify_21',['RunAndVerify',['../classgoogletest-break-on-failure-unittest_1_1_g_test_break_on_failure_unit_test.html#aa10728830adf68f6c0fd9e8ff9a3e5a2',1,'googletest-break-on-failure-unittest.GTestBreakOnFailureUnitTest.RunAndVerify()'],['../classgoogletest-filter-unittest_1_1_g_test_filter_unit_test.html#a210d536f4dd4dc5d8ea687747ca8d6d5',1,'googletest-filter-unittest.GTestFilterUnitTest.RunAndVerify()'],['../classgoogletest-list-tests-unittest_1_1_g_test_list_tests_unit_test.html#a181f8f8424ac864380a56f443bd571e7',1,'googletest-list-tests-unittest.GTestListTestsUnitTest.RunAndVerify()'],['../classgoogletest-throw-on-failure-test_1_1_throw_on_failure_test.html#a4438abd96792c91b81e3bae28fc27087',1,'googletest-throw-on-failure-test.ThrowOnFailureTest.RunAndVerify()']]], - ['runandverifyallowingdisabled_22',['RunAndVerifyAllowingDisabled',['../classgoogletest-filter-unittest_1_1_g_test_filter_unit_test.html#a8ec218a765232f76b13c81f17c8ee11f',1,'googletest-filter-unittest::GTestFilterUnitTest']]], - ['runandverifywithsharding_23',['RunAndVerifyWithSharding',['../classgoogletest-filter-unittest_1_1_g_test_filter_unit_test.html#a8c4225edcc9ca56e44976fa0d7d84d0b',1,'googletest-filter-unittest::GTestFilterUnitTest']]], - ['runshellwithreturncode_24',['RunShellWithReturnCode',['../namespaceupload.html#ad776c093afe992c8e51eeb3d5c794f72',1,'upload']]], - ['runwithflag_25',['RunWithFlag',['../namespacegtest__help__test.html#a5aa27057b0ddd8f10405b613d6d3b057',1,'gtest_help_test']]] + ['wrap_5fup_5fround_0',['wrap_up_round',['../classgame__state.html#ad2e967638043670ebae93dd6ec32e91e',1,'game_state::wrap_up_round()'],['../classplayer.html#a193bcc63da13e5bc98eb46ed99381302',1,'player::wrap_up_round()']]], + ['wrap_5fup_5ftrick_1',['wrap_up_trick',['../classtrick.html#a384560623ffaf776797948cf35197c73',1,'trick']]], + ['write_5finto_5fjson_2',['write_into_json',['../classcard.html#a7f900b843e44fb18364f32dbe6cdbc7a',1,'card::write_into_json()'],['../classdeck.html#a8d226fe699a36bf462010ba1f744fbeb',1,'deck::write_into_json()'],['../classtrick.html#a97176df194eae794691356cd83292b04',1,'trick::write_into_json()'],['../classgame__state.html#a54873cd18b46555915d150a6d8dd6f83',1,'game_state::write_into_json()'],['../classhand.html#a505a82447d0ae305dadcc9c4aa54071e',1,'hand::write_into_json()'],['../classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc',1,'player::write_into_json()']]] ]; diff --git a/html/search/functions_11.js b/html/search/functions_11.js index 9499c2811564898407c2382a16f1792d8a905181..688609a17ecd2657de1d22465b69f6fc6b58314f 100644 --- a/html/search/functions_11.js +++ b/html/search/functions_11.js @@ -1,37 +1,10 @@ var searchData= [ - ['schemavalidatingreader_0',['SchemaValidatingReader',['../class_schema_validating_reader.html#ae7945b71687ad3dd13b9c3d096892eac',1,'SchemaValidatingReader']]], - ['send_1',['Send',['../classupload_1_1_abstract_rpc_server.html#a9785441d36f25c0d36a9e6f5593e7177',1,'upload::AbstractRpcServer']]], - ['send_2',['send',['../classsockpp_1_1datagram__socket.html#acba5fa2b647721669adb847d4d64c33a',1,'sockpp::datagram_socket::send(const void *buf, size_t n, int flags=0)'],['../classsockpp_1_1datagram__socket.html#a0e15202136578a90c650b2352f9b78c4',1,'sockpp::datagram_socket::send(const std::string &s, int flags=0)']]], - ['send_5fto_3',['send_to',['../classsockpp_1_1datagram__socket.html#a26d63beaa398daa5b3ad35bc4707654a',1,'sockpp::datagram_socket::send_to(const void *buf, size_t n, int flags, const sock_address &addr)'],['../classsockpp_1_1datagram__socket.html#a36335c34d7f6913338720ab88c8ae7cf',1,'sockpp::datagram_socket::send_to(const std::string &s, int flags, const sock_address &addr)'],['../classsockpp_1_1datagram__socket.html#a3149c910f9717d1e4f08d9dd1f3a8072',1,'sockpp::datagram_socket::send_to(const void *buf, size_t n, const sock_address &addr)'],['../classsockpp_1_1datagram__socket.html#ae8d6c5a694d1d78390f76f7ed3157c7c',1,'sockpp::datagram_socket::send_to(const std::string &s, const sock_address &addr)'],['../classsockpp_1_1datagram__socket__tmpl.html#a0a5fd99074396cedff497a19a5980359',1,'sockpp::datagram_socket_tmpl::send_to(const void *buf, size_t n, int flags, const ADDR &addr)'],['../classsockpp_1_1datagram__socket__tmpl.html#acc90de2752b2d9dea2373ea71585f71f',1,'sockpp::datagram_socket_tmpl::send_to(const std::string &s, int flags, const ADDR &addr)'],['../classsockpp_1_1datagram__socket__tmpl.html#afae659e70279ba3754615764a57ccc97',1,'sockpp::datagram_socket_tmpl::send_to(const void *buf, size_t n, const ADDR &addr)'],['../classsockpp_1_1datagram__socket__tmpl.html#aae6d63a767e1bfef420c0b70e1e84622',1,'sockpp::datagram_socket_tmpl::send_to(const std::string &s, const ADDR &addr)']]], - ['set_4',['Set',['../struct_parse_result.html#aa81b4a7b776b77216cb752385203a8c1',1,'ParseResult']]], - ['set_5flast_5ferror_5',['set_last_error',['../classsockpp_1_1socket.html#aecb6b2e902024abab0ea06274caa6091',1,'sockpp::socket']]], - ['set_5fnon_5fblocking_6',['set_non_blocking',['../classsockpp_1_1socket.html#aa7af5c7eb180844e6bef279c4f98b3aa',1,'sockpp::socket']]], - ['set_5foption_7',['set_option',['../classsockpp_1_1socket.html#ada9899177922a6ea1041cb489de8b8b9',1,'sockpp::socket::set_option(int level, int optname, const void *optval, socklen_t optlen)'],['../classsockpp_1_1socket.html#a4472948e84bc530d9cb8220195a9b3e4',1,'sockpp::socket::set_option(int level, int optname, const T &val)']]], - ['setenvvar_8',['SetEnvVar',['../namespacegtest__test__utils.html#abece99ff6c6b9c882ab12c15793898bf',1,'gtest_test_utils']]], - ['setformatoptions_9',['SetFormatOptions',['../class_pretty_writer.html#aade3381a128071f1da060f5f3075de10',1,'PrettyWriter']]], - ['setindent_10',['SetIndent',['../class_pretty_writer.html#abbdc83ce02cf4a811a7355aa3879b45a',1,'PrettyWriter']]], - ['setmaxdecimalplaces_11',['SetMaxDecimalPlaces',['../class_writer.html#a58e3f94dc5af1432a8eace5ba427eca7',1,'Writer']]], - ['setobjectraw_12',['SetObjectRaw',['../class_generic_value.html#a26c8ec7d68858df1038506df7fcff22d',1,'GenericValue']]], - ['setstringraw_13',['SetStringRaw',['../class_generic_value.html#a1451603922dcdf34976f125dc60f70ee',1,'GenericValue::SetStringRaw(StringRefType s) RAPIDJSON_NOEXCEPT'],['../class_generic_value.html#ad3d91db36dfdbfc1af40a79aae07723c',1,'GenericValue::SetStringRaw(StringRefType s, Allocator &allocator)']]], - ['setup_14',['setUp',['../classgoogletest-filter-unittest_1_1_g_test_filter_unit_test.html#a80e82b6c777fbbf575ad83cb8d2ae56c',1,'googletest-filter-unittest::GTestFilterUnitTest']]], - ['shutdown_15',['shutdown',['../classsockpp_1_1socket.html#a51200dd862a0d310c364f78cbbfeb9fc',1,'sockpp::socket']]], - ['size_16',['Size',['../class_memory_pool_allocator.html#ae7fcf0341c13e899cf488bc7c8949956',1,'MemoryPoolAllocator']]], - ['size_17',['size',['../classsockpp_1_1inet6__address.html#a95222d4e66e80baa5d1de77d89975fdf',1,'sockpp::inet6_address::size()'],['../classsockpp_1_1inet__address.html#a5dccbcbc7782717e4056d4b7b81c638f',1,'sockpp::inet_address::size()'],['../classsockpp_1_1sock__address.html#adf9f4a69071562366ea6d5e50258c281',1,'sockpp::sock_address::size()'],['../classsockpp_1_1sock__address__any.html#ae914212d52fa92d601d2df01bf638a59',1,'sockpp::sock_address_any::size()'],['../classsockpp_1_1unix__address.html#a7e47141464e5c8b37f968bd08fae7b6f',1,'sockpp::unix_address::size()']]], - ['skipwhitespace_18',['SkipWhitespace',['../reader_8h.html#a60338858b2582eca23f3e509a2d82e0e',1,'reader.h']]], - ['sock_5faddress_5fany_19',['sock_address_any',['../classsockpp_1_1sock__address__any.html#a9e381346631476b0e5841547f99b869d',1,'sockpp::sock_address_any::sock_address_any()'],['../classsockpp_1_1sock__address__any.html#a08fff2d8494cadf11c9c1caaedecdbca',1,'sockpp::sock_address_any::sock_address_any(const sockaddr *addr, socklen_t n)'],['../classsockpp_1_1sock__address__any.html#aaac74e3cbc17ae0ece3cf4f9cdc41930',1,'sockpp::sock_address_any::sock_address_any(const sockaddr_storage &addr, socklen_t n)'],['../classsockpp_1_1sock__address__any.html#a0499be2989cb45f61b7f2898442c3fd1',1,'sockpp::sock_address_any::sock_address_any(const sock_address &addr)']]], - ['sockaddr_5fin6_5fptr_20',['sockaddr_in6_ptr',['../classsockpp_1_1inet6__address.html#abed5cdd4f7264045c9fad062ff85e487',1,'sockpp::inet6_address::sockaddr_in6_ptr() const'],['../classsockpp_1_1inet6__address.html#a1f32eb0e5aa73525d1c751e546445211',1,'sockpp::inet6_address::sockaddr_in6_ptr()']]], - ['sockaddr_5fin_5fptr_21',['sockaddr_in_ptr',['../classsockpp_1_1inet__address.html#a66a5477a342b9ea7d375d144932d33cf',1,'sockpp::inet_address::sockaddr_in_ptr() const'],['../classsockpp_1_1inet__address.html#ae06ee908691549333f4195465bb34772',1,'sockpp::inet_address::sockaddr_in_ptr()']]], - ['sockaddr_5fptr_22',['sockaddr_ptr',['../classsockpp_1_1inet6__address.html#a77e2640d6cb2e1bba90f0be2bcac5d53',1,'sockpp::inet6_address::sockaddr_ptr() const override'],['../classsockpp_1_1inet6__address.html#ac21f057c7e4239d372c119f9c7895d25',1,'sockpp::inet6_address::sockaddr_ptr() override'],['../classsockpp_1_1inet__address.html#aac88821bd19b6d620d904477745052c9',1,'sockpp::inet_address::sockaddr_ptr() const override'],['../classsockpp_1_1inet__address.html#ad717331ae1193d9006feaee5729c6a77',1,'sockpp::inet_address::sockaddr_ptr() override'],['../classsockpp_1_1sock__address.html#a024c74ac9d3fe8cd5284b82f1f2d33e2',1,'sockpp::sock_address::sockaddr_ptr()=0'],['../classsockpp_1_1sock__address.html#a3a9cb6445288251aa463529d84b7801d',1,'sockpp::sock_address::sockaddr_ptr() const =0'],['../classsockpp_1_1sock__address__any.html#af030f6f0b7f0ac07f09af19d57a6d66e',1,'sockpp::sock_address_any::sockaddr_ptr() const override'],['../classsockpp_1_1sock__address__any.html#aa403f8eba5ab4618eb7add965b567fa2',1,'sockpp::sock_address_any::sockaddr_ptr() override'],['../classsockpp_1_1unix__address.html#a060d5916e8f15be9f67025a0f127fe20',1,'sockpp::unix_address::sockaddr_ptr() const override'],['../classsockpp_1_1unix__address.html#a5179f79b4e154622f46ddfd1ea42a9e9',1,'sockpp::unix_address::sockaddr_ptr() override']]], - ['sockaddr_5fun_5fptr_23',['sockaddr_un_ptr',['../classsockpp_1_1unix__address.html#a0a542ff0c2ea85a1a46435f81be40ed9',1,'sockpp::unix_address::sockaddr_un_ptr() const'],['../classsockpp_1_1unix__address.html#a0e481ff033218f3fcd7980c3122b56a5',1,'sockpp::unix_address::sockaddr_un_ptr()']]], - ['socket_24',['socket',['../classsockpp_1_1socket.html#a90d44072dec5583ebf7d982e1a7677fc',1,'sockpp::socket::socket()'],['../classsockpp_1_1socket.html#ad267df5428e77f8f43cdc5e117a0085e',1,'sockpp::socket::socket(socket_t h)'],['../classsockpp_1_1socket.html#a40ff702303f371308967604a85bc39d5',1,'sockpp::socket::socket(socket &&sock) noexcept']]], - ['splitpatch_25',['SplitPatch',['../namespaceupload.html#ace170a709228951af58ac3b49f0a3e15',1,'upload']]], - ['statusupdate_26',['StatusUpdate',['../namespaceupload.html#a68fb71b953a98818b5dfdcfcb90dda07',1,'upload']]], - ['stream_5fsocket_27',['stream_socket',['../classsockpp_1_1stream__socket.html#aed8f2b6b36a75f1e148ecfcb89c4611c',1,'sockpp::stream_socket::stream_socket()'],['../classsockpp_1_1stream__socket.html#a94c19e13af42c01ce4372db3a5dc8af6',1,'sockpp::stream_socket::stream_socket(socket_t handle)'],['../classsockpp_1_1stream__socket.html#a38fc9bf4dc6ed65670cb2efd1cff805a',1,'sockpp::stream_socket::stream_socket(stream_socket &&sock)']]], - ['stream_5fsocket_5ftmpl_28',['stream_socket_tmpl',['../classsockpp_1_1stream__socket__tmpl.html#a694b75998fac6bda8efbd8a950ec10e6',1,'sockpp::stream_socket_tmpl::stream_socket_tmpl()'],['../classsockpp_1_1stream__socket__tmpl.html#a1a854b3b25714f167bdedb7505c4826e',1,'sockpp::stream_socket_tmpl::stream_socket_tmpl(socket_t handle)'],['../classsockpp_1_1stream__socket__tmpl.html#abe044c914c2059fd8c82b13bbbb665d0',1,'sockpp::stream_socket_tmpl::stream_socket_tmpl(stream_socket &&sock)'],['../classsockpp_1_1stream__socket__tmpl.html#acb8dd03f5a6a7bc0f5a50598659e4d04',1,'sockpp::stream_socket_tmpl::stream_socket_tmpl(stream_socket_tmpl &&sock)']]], - ['string_29',['String',['../class_pretty_writer.html#a7e85689355a827d273f272c26b447225',1,'PrettyWriter::String()'],['../class_writer.html#a2a2c6f51644b2013471aec4dac0d7466',1,'Writer::String()']]], - ['stringref_30',['StringRef',['../struct_generic_string_ref.html#aa6b9fd9f6aa49405a574c362ba9af6b5',1,'GenericStringRef::StringRef(const CharType *str)'],['../struct_generic_string_ref.html#a578c51ab574a50a9c760b9da7c7562f2',1,'GenericStringRef::StringRef(const CharType *str, size_t length)'],['../document_8h.html#aa6b9fd9f6aa49405a574c362ba9af6b5',1,'StringRef(const CharType *str): document.h'],['../document_8h.html#a578c51ab574a50a9c760b9da7c7562f2',1,'StringRef(const CharType *str, size_t length): document.h']]], - ['stripleadingwhitespace_31',['StripLeadingWhitespace',['../classcpp_1_1gmock__class__test_1_1_test_case.html#ac8d2fe29fe33f8554ef45c89091e5028',1,'cpp::gmock_class_test::TestCase']]], - ['swap_32',['Swap',['../class_generic_document.html#a1c3ab2d23fcced40fced7409b9d4a1d2',1,'GenericDocument::Swap()'],['../class_generic_pointer.html#af148818f7c2b10243221953d887044c6',1,'GenericPointer::Swap()']]], - ['sys_5ferror_33',['sys_error',['../classsockpp_1_1sys__error.html#a2e0321bd216e0cb1e478bbacfa498985',1,'sockpp::sys_error::sys_error()'],['../classsockpp_1_1sys__error.html#a4ed0ee66fe47f37294c86747515e3c62',1,'sockpp::sys_error::sys_error(int err)']]] + ['_7ecard_0',['~card',['../classcard.html#ac7a5d8d53e8cc33f5c5a03d8ccb806c4',1,'card']]], + ['_7edeck_1',['~deck',['../classdeck.html#a63a688bda08bfef8d2c37d53523b7b12',1,'deck']]], + ['_7egame_5finstance_2',['~game_instance',['../classgame__instance.html#a1fa390603341beb15e09e5a4b03465c1',1,'game_instance']]], + ['_7egame_5fstate_3',['~game_state',['../classgame__state.html#a2fbc370f93617298719f61514afdb5bc',1,'game_state']]], + ['_7ehand_4',['~hand',['../classhand.html#af3ffc5e5b46f04b14f12a9fc130b220a',1,'hand']]], + ['_7eplayer_5',['~player',['../classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad',1,'player']]], + ['_7etrick_6',['~trick',['../classtrick.html#a22c0b586f1d6c3baeb7bb0e22eb7dfe2',1,'trick']]] ]; diff --git a/html/search/functions_2.js b/html/search/functions_2.js index 9000e3cc945fc3242e1b116ae66ef4eaf30b398e..eca9207c93542ed12837f6d49ddecde24a32d882 100644 --- a/html/search/functions_2.js +++ b/html/search/functions_2.js @@ -1,6 +1,6 @@ var searchData= [ - ['deck_0',['deck',['../classdeck.html#a2ff8465ba7b13201bdf650fe461b442e',1,'deck::deck()'],['../classdeck.html#ac18be42e5ad9ade42faed5be057f558b',1,'deck::deck(const std::vector< card * > &cards)']]], - ['draw_5fcards_1',['draw_cards',['../classdeck.html#afa56e0fb7919ca1ceebae9b3bd79280d',1,'deck']]], - ['draw_5ftrump_2',['draw_trump',['../classdeck.html#ac5b85f992cf36d00873d2c7be7dc8c2b',1,'deck']]] + ['card_0',['card',['../classcard.html#a764d65641c619aedf1842a30e54905b7',1,'card']]], + ['closegamewindow_1',['closeGameWindow',['../class_game_controller.html#a21eea505305d56439efb835e1e148c2f',1,'GameController']]], + ['connecttoserver_2',['connectToServer',['../class_game_controller.html#a023da21da545374ee46fb873149976c4',1,'GameController']]] ]; diff --git a/html/search/functions_3.js b/html/search/functions_3.js index d14237ba055625b91dbe1461d93cf6a7f285fd34..9000e3cc945fc3242e1b116ae66ef4eaf30b398e 100644 --- a/html/search/functions_3.js +++ b/html/search/functions_3.js @@ -1,4 +1,6 @@ var searchData= [ - ['estimate_5ftricks_0',['estimate_tricks',['../classgame__state.html#ac4ebff625d83c633c124890537d60354',1,'game_state']]] + ['deck_0',['deck',['../classdeck.html#a2ff8465ba7b13201bdf650fe461b442e',1,'deck::deck()'],['../classdeck.html#ac18be42e5ad9ade42faed5be057f558b',1,'deck::deck(const std::vector< card * > &cards)']]], + ['draw_5fcards_1',['draw_cards',['../classdeck.html#afa56e0fb7919ca1ceebae9b3bd79280d',1,'deck']]], + ['draw_5ftrump_2',['draw_trump',['../classdeck.html#ac5b85f992cf36d00873d2c7be7dc8c2b',1,'deck']]] ]; diff --git a/html/search/functions_4.js b/html/search/functions_4.js index f2110a3206a3e313454a91d7f3bcf26aac04050c..cefaa942c92e9e5ff7f9a58b12809c8fb5e0fecf 100644 --- a/html/search/functions_4.js +++ b/html/search/functions_4.js @@ -1,5 +1,5 @@ var searchData= [ - ['finish_5fgame_0',['finish_game',['../classgame__state.html#a67fdd4b5682715cd2d848031a9911b17',1,'game_state']]], - ['from_5fjson_1',['from_json',['../classcard.html#a48593187c9bff442d61f197991954011',1,'card::from_json()'],['../classdeck.html#abe8dbe828189696c22f35ac3ed4fd296',1,'deck::from_json()'],['../classtrick.html#a1a3d94f638672d3d60d596190ae59dfb',1,'trick::from_json()'],['../classgame__state.html#a794d484961c92b5b737586ec5599963f',1,'game_state::from_json()'],['../classhand.html#aa9cffdf932d80c7304a335074403e785',1,'hand::from_json()'],['../classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5',1,'player::from_json()']]] + ['estimate_5ftricks_0',['estimate_tricks',['../classgame__state.html#ac4ebff625d83c633c124890537d60354',1,'game_state::estimate_tricks()'],['../classgame__instance.html#af1434756e3041deca68b4f4f84176f05',1,'game_instance::estimate_tricks()']]], + ['estimatetricks_1',['estimateTricks',['../class_game_controller.html#abd110563d0f37f06096176c199d22055',1,'GameController']]] ]; diff --git a/html/search/functions_5.js b/html/search/functions_5.js index 3feebe2c6928079970d487ad644e949b9e6fe274..f2110a3206a3e313454a91d7f3bcf26aac04050c 100644 --- a/html/search/functions_5.js +++ b/html/search/functions_5.js @@ -1,28 +1,5 @@ var searchData= [ - ['game_5fstate_0',['game_state',['../classgame__state.html#a0c10b830e222d726557c3c33685c595a',1,'game_state']]], - ['get_5fcards_1',['get_cards',['../classhand.html#ad104b0376b1a13d987f349dd524ca47f',1,'hand']]], - ['get_5fcards_5fand_5fplayers_2',['get_cards_and_players',['../classtrick.html#a1d75f9e8fc94fd122adfc39a20089268',1,'trick']]], - ['get_5fcolor_3',['get_color',['../classcard.html#ab033bc0e71b09d3cf3ac28c2f1fbde18',1,'card']]], - ['get_5fcurrent_5fplayer_4',['get_current_player',['../classgame__state.html#a2d16f420a8aa651685461a5efb8bb600',1,'game_state']]], - ['get_5fgame_5fid_5',['get_game_id',['../classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c',1,'player']]], - ['get_5fhand_6',['get_hand',['../classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d',1,'player']]], - ['get_5flast_5ftrick_7',['get_last_trick',['../classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b',1,'game_state']]], - ['get_5fmax_5fround_5fnumber_8',['get_max_round_number',['../classgame__state.html#aa75c4da6c0056e48e5040be8127d7473',1,'game_state']]], - ['get_5fnof_5fcards_9',['get_nof_cards',['../classhand.html#adc90d109b7b564a0dbca0b0798c99641',1,'hand::get_nof_cards()'],['../classplayer.html#a457c5ab90b0ecd610eead66b41c8333a',1,'player::get_nof_cards() const noexcept']]], - ['get_5fnof_5fpredicted_10',['get_nof_predicted',['../classplayer.html#a40333c302ff51707749c544930fb80aa',1,'player']]], - ['get_5fnof_5ftricks_11',['get_nof_tricks',['../classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4',1,'player']]], - ['get_5fnumber_5fof_5fremaining_5fcards_12',['get_number_of_remaining_cards',['../classdeck.html#ae1c7a4174108a14cb1180de1afdcb6d6',1,'deck']]], - ['get_5fplayer_5fname_13',['get_player_name',['../classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773',1,'player']]], - ['get_5fplayers_14',['get_players',['../classgame__state.html#abcaccd551f938f961d12266e34c037d2',1,'game_state']]], - ['get_5fround_5fnumber_15',['get_round_number',['../classgame__state.html#ab3ef836a1b3a1e2bc9e429a018c72eca',1,'game_state']]], - ['get_5fscores_16',['get_scores',['../classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac',1,'player']]], - ['get_5fstarting_5fplayer_17',['get_starting_player',['../classgame__state.html#af4c553229260e307ff1f78dd0c74506d',1,'game_state']]], - ['get_5ftrick_18',['get_trick',['../classgame__state.html#a472fd1721c7cc9e3689394f18c767bf9',1,'game_state']]], - ['get_5ftrick_5fcolor_19',['get_trick_color',['../classtrick.html#a41f315804ac73454c8e41438da20a9c3',1,'trick']]], - ['get_5ftrick_5festimate_5fsum_20',['get_trick_estimate_sum',['../classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282',1,'game_state']]], - ['get_5ftrick_5fnumber_21',['get_trick_number',['../classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15',1,'game_state']]], - ['get_5ftrick_5fstarting_5fplayer_22',['get_trick_starting_player',['../classgame__state.html#aa40554d105939c5dce934daaa858c242',1,'game_state']]], - ['get_5ftrump_5fcolor_23',['get_trump_color',['../classtrick.html#a69c49e2968abb235a6c7148cb05b0e64',1,'trick::get_trump_color()'],['../classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4',1,'game_state::get_trump_color()']]], - ['get_5fvalue_24',['get_value',['../classcard.html#a2baf8dfef09ac8c1a67b34c2e67186c3',1,'card']]] + ['finish_5fgame_0',['finish_game',['../classgame__state.html#a67fdd4b5682715cd2d848031a9911b17',1,'game_state']]], + ['from_5fjson_1',['from_json',['../classcard.html#a48593187c9bff442d61f197991954011',1,'card::from_json()'],['../classdeck.html#abe8dbe828189696c22f35ac3ed4fd296',1,'deck::from_json()'],['../classtrick.html#a1a3d94f638672d3d60d596190ae59dfb',1,'trick::from_json()'],['../classgame__state.html#a794d484961c92b5b737586ec5599963f',1,'game_state::from_json()'],['../classhand.html#aa9cffdf932d80c7304a335074403e785',1,'hand::from_json()'],['../classplayer.html#a5955c5f26db6a08862ccfb443fbe99c5',1,'player::from_json()']]] ]; diff --git a/html/search/functions_6.js b/html/search/functions_6.js index 1f77831b8714e9bb27003b2ef6aded7103a46435..c697929f4ffab406329d72f719bbab2a89da8077 100644 --- a/html/search/functions_6.js +++ b/html/search/functions_6.js @@ -1,4 +1,34 @@ var searchData= [ - ['hand_0',['hand',['../classhand.html#ae8d7de2589266f57271ac191dab8cd64',1,'hand::hand()'],['../classhand.html#afb908b5b24b92eec58c6d39739093a84',1,'hand::hand(const std::string &id, const std::vector< card * > &cards)'],['../classhand.html#a4820b774c5446b60f74c6458691d1de8',1,'hand::hand(const std::string &id)']]] + ['game_5finstance_0',['game_instance',['../classgame__instance.html#a2b1d00adf8c933a98698f972827e48b9',1,'game_instance']]], + ['game_5fstate_1',['game_state',['../classgame__state.html#a0c10b830e222d726557c3c33685c595a',1,'game_state']]], + ['get_5fcards_2',['get_cards',['../classhand.html#ad104b0376b1a13d987f349dd524ca47f',1,'hand']]], + ['get_5fcards_5fand_5fplayers_3',['get_cards_and_players',['../classtrick.html#a1d75f9e8fc94fd122adfc39a20089268',1,'trick']]], + ['get_5fcolor_4',['get_color',['../classcard.html#ab033bc0e71b09d3cf3ac28c2f1fbde18',1,'card']]], + ['get_5fcurrent_5fplayer_5',['get_current_player',['../classgame__state.html#a2d16f420a8aa651685461a5efb8bb600',1,'game_state']]], + ['get_5fgame_5fid_6',['get_game_id',['../classplayer.html#afeb6c5483a59042fcc4a3a2aed6a6a2c',1,'player']]], + ['get_5fgame_5fstate_7',['get_game_state',['../classgame__instance.html#a852c73a12031d7fbd2095530df595c5c',1,'game_instance']]], + ['get_5fhand_8',['get_hand',['../classplayer.html#af333dcbf7123726c9bda3ab94ba9ee6d',1,'player']]], + ['get_5fid_9',['get_id',['../classgame__instance.html#a72cd93738171ffc856c3d77df5f967da',1,'game_instance']]], + ['get_5flast_5ftrick_10',['get_last_trick',['../classgame__state.html#a4327f753f1f5341f9fe3774ea3fbc99b',1,'game_state']]], + ['get_5fmax_5fround_5fnumber_11',['get_max_round_number',['../classgame__state.html#aa75c4da6c0056e48e5040be8127d7473',1,'game_state']]], + ['get_5fnof_5fcards_12',['get_nof_cards',['../classhand.html#adc90d109b7b564a0dbca0b0798c99641',1,'hand::get_nof_cards()'],['../classplayer.html#a457c5ab90b0ecd610eead66b41c8333a',1,'player::get_nof_cards() const noexcept']]], + ['get_5fnof_5fpredicted_13',['get_nof_predicted',['../classplayer.html#a40333c302ff51707749c544930fb80aa',1,'player']]], + ['get_5fnof_5ftricks_14',['get_nof_tricks',['../classplayer.html#a5e3d1374aee685b08a29d0ac7cec3df4',1,'player']]], + ['get_5fnumber_5fof_5fremaining_5fcards_15',['get_number_of_remaining_cards',['../classdeck.html#ae1c7a4174108a14cb1180de1afdcb6d6',1,'deck']]], + ['get_5fplayer_5fname_16',['get_player_name',['../classplayer.html#a42d01dcf4cdbd452fc5dcaf5e6f21773',1,'player']]], + ['get_5fplayers_17',['get_players',['../classgame__state.html#abcaccd551f938f961d12266e34c037d2',1,'game_state']]], + ['get_5fround_5fnumber_18',['get_round_number',['../classgame__state.html#ab3ef836a1b3a1e2bc9e429a018c72eca',1,'game_state']]], + ['get_5fscores_19',['get_scores',['../classplayer.html#aef5c25a02a2fdbdb4d8270582faf5dac',1,'player']]], + ['get_5fstarting_5fplayer_20',['get_starting_player',['../classgame__state.html#af4c553229260e307ff1f78dd0c74506d',1,'game_state']]], + ['get_5ftrick_21',['get_trick',['../classgame__state.html#a472fd1721c7cc9e3689394f18c767bf9',1,'game_state']]], + ['get_5ftrick_5fcolor_22',['get_trick_color',['../classtrick.html#a41f315804ac73454c8e41438da20a9c3',1,'trick']]], + ['get_5ftrick_5festimate_5fsum_23',['get_trick_estimate_sum',['../classgame__state.html#aa5263d03c85bce1e9d252e9017cbe282',1,'game_state']]], + ['get_5ftrick_5fnumber_24',['get_trick_number',['../classgame__state.html#a3fce12f31ad0aab82b0d2da90e3e8e15',1,'game_state']]], + ['get_5ftrick_5fstarting_5fplayer_25',['get_trick_starting_player',['../classgame__state.html#aa40554d105939c5dce934daaa858c242',1,'game_state']]], + ['get_5ftrump_5fcard_5fvalue_26',['get_trump_card_value',['../classgame__state.html#a115a9b1dbb65db44669363b407aa62ac',1,'game_state']]], + ['get_5ftrump_5fcolor_27',['get_trump_color',['../classtrick.html#a69c49e2968abb235a6c7148cb05b0e64',1,'trick::get_trump_color()'],['../classgame__state.html#abdf6c5116ed643773d676c90a05e6fe4',1,'game_state::get_trump_color()']]], + ['get_5fvalue_28',['get_value',['../classcard.html#a2baf8dfef09ac8c1a67b34c2e67186c3',1,'card']]], + ['get_5fwinner_29',['get_winner',['../classtrick.html#a4b93ae88c17db486d975408cd8cfad1b',1,'trick']]], + ['getmainthreadeventhandler_30',['getMainThreadEventHandler',['../class_game_controller.html#abec8c73ea01e4b7e01b2ca1d932e0c16',1,'GameController']]] ]; diff --git a/html/search/functions_7.js b/html/search/functions_7.js index 81a7bd1e6a2534a3fca948f5e5f4f6c956bf5740..5d8e8b5a679d9b342964c6ae9756106f9be9565f 100644 --- a/html/search/functions_7.js +++ b/html/search/functions_7.js @@ -1,9 +1,5 @@ var searchData= [ - ['is_5fempty_0',['is_empty',['../classdeck.html#a6aef528ff7b9c608863cc77c19b7882d',1,'deck']]], - ['is_5festimation_5fphase_1',['is_estimation_phase',['../classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb',1,'game_state']]], - ['is_5ffinished_2',['is_finished',['../classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45',1,'game_state']]], - ['is_5ffull_3',['is_full',['../classgame__state.html#ae161c283e275a57d71834754d11e9e40',1,'game_state']]], - ['is_5fplayer_5fin_5fgame_4',['is_player_in_game',['../classgame__state.html#a371d6a6d84395b90c15d84549b05d553',1,'game_state']]], - ['is_5fstarted_5',['is_started',['../classgame__state.html#aa0092c41779f38eba5e921e43b38559c',1,'game_state']]] + ['hand_0',['hand',['../classhand.html#ae8d7de2589266f57271ac191dab8cd64',1,'hand::hand()'],['../classhand.html#afb908b5b24b92eec58c6d39739093a84',1,'hand::hand(const std::string &id, const std::vector< card * > &cards)'],['../classhand.html#a4820b774c5446b60f74c6458691d1de8',1,'hand::hand(const std::string &id)']]], + ['has_5fleft_5fgame_1',['has_left_game',['../classplayer.html#aac1b87de3b686d8ee1049269f6c9f272',1,'player']]] ]; diff --git a/html/search/functions_8.js b/html/search/functions_8.js index 29e7df53486efbe4189e98af4031fde93d46299c..32c89120cbcca7d9cda3af95c7a98405bb70d8d7 100644 --- a/html/search/functions_8.js +++ b/html/search/functions_8.js @@ -1,5 +1,10 @@ var searchData= [ - ['play_5fcard_0',['play_card',['../classgame__state.html#a6c65d95086a88b8d111de5553e1210ec',1,'game_state']]], - ['player_1',['player',['../classplayer.html#a1f0916939a8caa2e7140d5c89a6aa718',1,'player::player(const std::string &name)'],['../classplayer.html#aa97dd36228b56912bc5dad63f64e1ccf',1,'player::player(const std::string &id, const std::string &name)']]] + ['init_0',['init',['../class_game_controller.html#a8889bad76bc35487d3391fb8a5791616',1,'GameController']]], + ['is_5fempty_1',['is_empty',['../classdeck.html#a6aef528ff7b9c608863cc77c19b7882d',1,'deck']]], + ['is_5festimation_5fphase_2',['is_estimation_phase',['../classgame__state.html#a88d19342ee76acc4660b3e56e8c126eb',1,'game_state']]], + ['is_5ffinished_3',['is_finished',['../classgame__state.html#a9b83de8a89e3bb506184492d22c3cf45',1,'game_state::is_finished()'],['../classgame__instance.html#a5a080dfced3d2d1c697e36160b996a9c',1,'game_instance::is_finished()']]], + ['is_5ffull_4',['is_full',['../classgame__state.html#ae161c283e275a57d71834754d11e9e40',1,'game_state::is_full()'],['../classgame__instance.html#a77d1f40b8727c74f278efe9168f26831',1,'game_instance::is_full()']]], + ['is_5fplayer_5fin_5fgame_5',['is_player_in_game',['../classgame__state.html#a371d6a6d84395b90c15d84549b05d553',1,'game_state']]], + ['is_5fstarted_6',['is_started',['../classgame__state.html#aa0092c41779f38eba5e921e43b38559c',1,'game_state::is_started()'],['../classgame__instance.html#a2c8a8be71f8c3016075cc08768ebbb64',1,'game_instance::is_started()']]] ]; diff --git a/html/search/functions_9.js b/html/search/functions_9.js index 6baee910debdad286cf0a485696264ab74e8e102..250d437d67d3171cfb7db51729a753330c9bfadb 100644 --- a/html/search/functions_9.js +++ b/html/search/functions_9.js @@ -1,5 +1,4 @@ var searchData= [ - ['remove_5fcard_0',['remove_card',['../classhand.html#aa466496b7ce0b58dbd63620535430439',1,'hand']]], - ['remove_5fplayer_1',['remove_player',['../classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d',1,'game_state']]] + ['leavegame_0',['leaveGame',['../class_game_controller.html#a8d42b2e41759bfd65cdebad87437369e',1,'GameController']]] ]; diff --git a/html/search/functions_a.js b/html/search/functions_a.js index fa50738509400ca5add2b57ed1e803471dab7145..e1abaf6c85aeaf242027c4b521c00c966bdcc2a4 100644 --- a/html/search/functions_a.js +++ b/html/search/functions_a.js @@ -1,12 +1,4 @@ var searchData= [ - ['set_5fgame_5fid_0',['set_game_id',['../classplayer.html#aa916eeacf97f00507f412fd91bfe37d4',1,'player']]], - ['set_5fnof_5fpredicted_1',['set_nof_predicted',['../classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7',1,'player']]], - ['set_5fnof_5ftricks_2',['set_nof_tricks',['../classplayer.html#a61aa38ceff0c856b36642c4bc0081433',1,'player']]], - ['set_5fscores_3',['set_scores',['../classplayer.html#af1d7e67eee27af87c01e43508a731bd4',1,'player']]], - ['set_5ftrick_4',['set_trick',['../classgame__state.html#a745dd23945b6165470c494b036ac4667',1,'game_state']]], - ['set_5ftrick_5fcolor_5',['set_trick_color',['../classtrick.html#a0f8c45882691509564ec42efed0d1aaa',1,'trick']]], - ['set_5fup_5fround_6',['set_up_round',['../classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00',1,'trick']]], - ['setup_5fround_7',['setup_round',['../classdeck.html#a77851e5cb8297849e91a885ed7959de1',1,'deck::setup_round()'],['../classgame__state.html#ab520d4076c53f70a68bc19f355243a4d',1,'game_state::setup_round()'],['../classplayer.html#a8cc6464ca3284140c92c6983ee62a299',1,'player::setup_round()']]], - ['start_5fgame_8',['start_game',['../classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67',1,'game_state']]] + ['maingamepanelwizard_0',['MainGamePanelWizard',['../class_main_game_panel_wizard.html#a6ba532223a22fe5458e3f94a70e2bbf6',1,'MainGamePanelWizard']]] ]; diff --git a/html/search/functions_b.js b/html/search/functions_b.js index 836aaee668efdf9397d3a52a64435c8fb65f52b9..2ac77a11bedd1a1f8e4b90e09038267395d3a920 100644 --- a/html/search/functions_b.js +++ b/html/search/functions_b.js @@ -1,5 +1,7 @@ var searchData= [ - ['trick_0',['trick',['../classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d',1,'trick::trick()'],['../classtrick.html#ad55ad2f0462144ee39c0e6d392543a14',1,'trick::trick(const trick &other)'],['../classtrick.html#abb172ad9a476e96a754eea0c33e1eda9',1,'trick::trick(const std::string &id)'],['../classtrick.html#ab756ba7a19c4bf98f0d8456ad0081fc3',1,'trick::trick(const std::string &id, const std::vector< std::pair< card *, player * > > &cards, serializable_value< int > *trick_color, serializable_value< int > *trump_color)'],['../classtrick.html#a3ecb1c5ebe84a300d7388e2846737fa4',1,'trick::trick(int trump)']]], - ['try_5fget_5fcard_1',['try_get_card',['../classhand.html#a0a50cbbb167e6a1d633dd48bc4b695fe',1,'hand']]] + ['play_5fcard_0',['play_card',['../classgame__state.html#a6c65d95086a88b8d111de5553e1210ec',1,'game_state::play_card()'],['../classgame__instance.html#a1a7e19a4b0907cb0b5f1523edb7e68ca',1,'game_instance::play_card()']]], + ['playcard_1',['playCard',['../class_game_controller.html#a87b164e2094901861e5b47056634facc',1,'GameController']]], + ['player_2',['player',['../classplayer.html#a1f0916939a8caa2e7140d5c89a6aa718',1,'player::player(const std::string &name)'],['../classplayer.html#aa97dd36228b56912bc5dad63f64e1ccf',1,'player::player(const std::string &id, const std::string &name)']]], + ['processestimatetricks_3',['processEstimateTricks',['../class_game_controller.html#a5f1023f2029e5dbb25b795a0606e06a9',1,'GameController']]] ]; diff --git a/html/search/functions_c.js b/html/search/functions_c.js index bbeeecfe2899d1f07910e85b0a1ab7044785cae6..6baee910debdad286cf0a485696264ab74e8e102 100644 --- a/html/search/functions_c.js +++ b/html/search/functions_c.js @@ -1,4 +1,5 @@ var searchData= [ - ['update_5fcurrent_5fplayer_0',['update_current_player',['../classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d',1,'game_state']]] + ['remove_5fcard_0',['remove_card',['../classhand.html#aa466496b7ce0b58dbd63620535430439',1,'hand']]], + ['remove_5fplayer_1',['remove_player',['../classgame__state.html#a734fc594d457aa4e6db5bc7467e6442d',1,'game_state']]] ]; diff --git a/html/search/functions_d.js b/html/search/functions_d.js index 86ce831eb54ae1212bb9536430f2d11d68fdba8e..7e4b0fa52a6d8d0c0b49288523fcf6ccbf28572e 100644 --- a/html/search/functions_d.js +++ b/html/search/functions_d.js @@ -1,6 +1,20 @@ var searchData= [ - ['wrap_5fup_5fround_0',['wrap_up_round',['../classgame__state.html#ad2e967638043670ebae93dd6ec32e91e',1,'game_state::wrap_up_round()'],['../classplayer.html#a193bcc63da13e5bc98eb46ed99381302',1,'player::wrap_up_round()']]], - ['wrap_5fup_5ftrick_1',['wrap_up_trick',['../classtrick.html#a384560623ffaf776797948cf35197c73',1,'trick']]], - ['write_5finto_5fjson_2',['write_into_json',['../classcard.html#a7f900b843e44fb18364f32dbe6cdbc7a',1,'card::write_into_json()'],['../classdeck.html#a8d226fe699a36bf462010ba1f744fbeb',1,'deck::write_into_json()'],['../classtrick.html#a97176df194eae794691356cd83292b04',1,'trick::write_into_json()'],['../classgame__state.html#a54873cd18b46555915d150a6d8dd6f83',1,'game_state::write_into_json()'],['../classhand.html#a505a82447d0ae305dadcc9c4aa54071e',1,'hand::write_into_json()'],['../classplayer.html#a0cf13abfdb6b837faa88eda064bf51dc',1,'player::write_into_json()']]] + ['set_5fgame_5fid_0',['set_game_id',['../classplayer.html#aa916eeacf97f00507f412fd91bfe37d4',1,'player']]], + ['set_5fhas_5fleft_5fgame_1',['set_has_left_game',['../classplayer.html#a42f88a13ce2b65360f6ee95281a09173',1,'player']]], + ['set_5fnof_5fpredicted_2',['set_nof_predicted',['../classplayer.html#a1a3ce0ac69cad799641f4d732435c3f7',1,'player']]], + ['set_5fnof_5ftricks_3',['set_nof_tricks',['../classplayer.html#a61aa38ceff0c856b36642c4bc0081433',1,'player']]], + ['set_5fplayer_5fname_4',['set_player_name',['../classplayer.html#af8f0b088e697fcb972bfc41302e63877',1,'player']]], + ['set_5fscores_5',['set_scores',['../classplayer.html#af1d7e67eee27af87c01e43508a731bd4',1,'player']]], + ['set_5ftrick_6',['set_trick',['../classgame__state.html#a745dd23945b6165470c494b036ac4667',1,'game_state']]], + ['set_5ftrick_5fcolor_7',['set_trick_color',['../classtrick.html#a0f8c45882691509564ec42efed0d1aaa',1,'trick']]], + ['set_5fup_5fround_8',['set_up_round',['../classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00',1,'trick']]], + ['setup_5fround_9',['setup_round',['../classdeck.html#a77851e5cb8297849e91a885ed7959de1',1,'deck::setup_round()'],['../classgame__state.html#ab520d4076c53f70a68bc19f355243a4d',1,'game_state::setup_round()'],['../classplayer.html#a8cc6464ca3284140c92c6983ee62a299',1,'player::setup_round()']]], + ['showerror_10',['showError',['../class_game_controller.html#adf043f9026a62f634a873c9f9d292034',1,'GameController']]], + ['showgameovermessage_11',['showGameOverMessage',['../class_game_controller.html#abb91c546ab8400c1e2e9f2a2ccc8298f',1,'GameController']]], + ['shownewroundmessage_12',['showNewRoundMessage',['../class_game_controller.html#a3c350056b82df662c946cb9119f11ced',1,'GameController']]], + ['showstatus_13',['showStatus',['../class_game_controller.html#a6a43eb061a9882b3937fc88bb4794324',1,'GameController']]], + ['showtrickovermessage_14',['showTrickOverMessage',['../class_game_controller.html#a8108659ad09724318c3a251d93bd5869',1,'GameController']]], + ['start_5fgame_15',['start_game',['../classgame__state.html#a6ca6536eaec3404ff9b1ab39b8df4e67',1,'game_state::start_game()'],['../classgame__instance.html#aee2eedd24991ce59dbcf2ec4f6cae8ac',1,'game_instance::start_game()']]], + ['startgame_16',['startGame',['../class_game_controller.html#a8f30ab3ff471ac0a5c8b88dc7fea45f4',1,'GameController']]] ]; diff --git a/html/search/functions_e.js b/html/search/functions_e.js index e4939719dfc2f2e067e9f6a01ad59f655b558e9d..06eb3296c3da0735ee5b59f5d0586762507b3f40 100644 --- a/html/search/functions_e.js +++ b/html/search/functions_e.js @@ -1,9 +1,7 @@ var searchData= [ - ['_7ecard_0',['~card',['../classcard.html#ac7a5d8d53e8cc33f5c5a03d8ccb806c4',1,'card']]], - ['_7edeck_1',['~deck',['../classdeck.html#a63a688bda08bfef8d2c37d53523b7b12',1,'deck']]], - ['_7egame_5fstate_2',['~game_state',['../classgame__state.html#a2fbc370f93617298719f61514afdb5bc',1,'game_state']]], - ['_7ehand_3',['~hand',['../classhand.html#af3ffc5e5b46f04b14f12a9fc130b220a',1,'hand']]], - ['_7eplayer_4',['~player',['../classplayer.html#a0a62c0208584465db2daa1ac6e15b1ad',1,'player']]], - ['_7etrick_5',['~trick',['../classtrick.html#a22c0b586f1d6c3baeb7bb0e22eb7dfe2',1,'trick']]] + ['trick_0',['trick',['../classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d',1,'trick::trick()'],['../classtrick.html#ad55ad2f0462144ee39c0e6d392543a14',1,'trick::trick(const trick &other)'],['../classtrick.html#abb172ad9a476e96a754eea0c33e1eda9',1,'trick::trick(const std::string &id)'],['../classtrick.html#ab756ba7a19c4bf98f0d8456ad0081fc3',1,'trick::trick(const std::string &id, const std::vector< std::pair< card *, player * > > &cards, serializable_value< int > *trick_color, serializable_value< int > *trump_color)'],['../classtrick.html#a3ecb1c5ebe84a300d7388e2846737fa4',1,'trick::trick(int trump)']]], + ['try_5fadd_5fplayer_1',['try_add_player',['../classgame__instance.html#a1176ce8464586487f9ae5676ca900e10',1,'game_instance']]], + ['try_5fget_5fcard_2',['try_get_card',['../classhand.html#a0a50cbbb167e6a1d633dd48bc4b695fe',1,'hand']]], + ['try_5fremove_5fplayer_3',['try_remove_player',['../classgame__instance.html#a2c6fed45a14273b09a9f202481fa62aa',1,'game_instance']]] ]; diff --git a/html/search/functions_f.js b/html/search/functions_f.js index a957b59027479cf15108bc921bfc729290936e9c..c55911112a6c973ab412246fca11fc0411205641 100644 --- a/html/search/functions_f.js +++ b/html/search/functions_f.js @@ -1,15 +1,5 @@ var searchData= [ - ['pair_0',['pair',['../classsockpp_1_1datagram__socket__tmpl.html#a9c84b05c86658e71c144a948a5bcf52e',1,'sockpp::datagram_socket_tmpl::pair()'],['../classsockpp_1_1socket.html#a6bf7632a36a4ebc8f8a703d9b80b5d7a',1,'sockpp::socket::pair()'],['../classsockpp_1_1stream__socket__tmpl.html#a41f3fc0e79890b77212829a829daedfe',1,'sockpp::stream_socket_tmpl::pair()']]], - ['parse_1',['Parse',['../class_generic_document.html#a901db1678f99a1b550003eed75bc380a',1,'GenericDocument::Parse(const typename SourceEncoding::Ch *str)'],['../class_generic_document.html#a3c3977dcf15fafe17d57f6784e0ce2b5',1,'GenericDocument::Parse(const Ch *str)'],['../class_generic_document.html#afc8eb27bf748df642d27f5767ae4eaab',1,'GenericDocument::Parse(const Ch *str)'],['../class_generic_reader.html#a0c450620d14ff1824e58bb7bd9b42099',1,'GenericReader::Parse(InputStream &is, Handler &handler)'],['../class_generic_reader.html#a76d91e5fd8dfe48aea7dd6d8a51dd6dc',1,'GenericReader::Parse(InputStream &is, Handler &handler)']]], - ['parseinsitu_2',['ParseInsitu',['../class_generic_document.html#a13f68b1896a24eea4cdbc03a3916225f',1,'GenericDocument::ParseInsitu(Ch *str)'],['../class_generic_document.html#a9bd648666f9c538e272bc980aff1b807',1,'GenericDocument::ParseInsitu(Ch *str)']]], - ['parseresult_3',['ParseResult',['../struct_parse_result.html#acd4a266f815bec59fa27f64f1923fe9e',1,'ParseResult::ParseResult()'],['../struct_parse_result.html#a38ca49a53e80633d0864ad5026adaf84',1,'ParseResult::ParseResult(ParseErrorCode code, size_t offset)']]], - ['parsestream_4',['ParseStream',['../class_generic_document.html#a7bc1827a7ab04de4789fe46237f0e921',1,'GenericDocument::ParseStream(InputStream &is)'],['../class_generic_document.html#a54d96ce0902d2afe033faebfd2863bbc',1,'GenericDocument::ParseStream(InputStream &is)'],['../class_generic_document.html#a78f0a1448172e3e998778662e2beb0e3',1,'GenericDocument::ParseStream(InputStream &is)']]], - ['path_5',['path',['../classsockpp_1_1unix__address.html#ac38ead0f8847fe0cc2afa54a7953bc53',1,'sockpp::unix_address']]], - ['peer_5faddress_6',['peer_address',['../classsockpp_1_1connector__tmpl.html#a75fb126a048eb8de6818ded35a47260f',1,'sockpp::connector_tmpl::peer_address()'],['../classsockpp_1_1socket.html#ad587531eacdcb75310b14f3918a15554',1,'sockpp::socket::peer_address()'],['../classsockpp_1_1stream__socket__tmpl.html#af9b830063c42dfb7ddb31c82604934c3',1,'sockpp::stream_socket_tmpl::peer_address()']]], - ['populate_7',['Populate',['../class_generic_document.html#ac30b4e8887974060b695be20c3ceb02c',1,'GenericDocument']]], - ['port_8',['port',['../classsockpp_1_1inet6__address.html#aadc9e616bace44971a9e8d7f3ebbbcd1',1,'sockpp::inet6_address::port()'],['../classsockpp_1_1inet__address.html#a3546fe2fbc6a5b355b796da4aaff58ad',1,'sockpp::inet_address::port()']]], - ['prettywriter_9',['PrettyWriter',['../class_pretty_writer.html#a928ac2a5235b8877048ebdd5f35a556f',1,'PrettyWriter']]], - ['printallindentifiers_10',['PrintAllIndentifiers',['../namespacecpp_1_1ast.html#ab1c1e79e979189e7f3aa93151c189279',1,'cpp::ast']]], - ['printindentifiers_11',['PrintIndentifiers',['../namespacecpp_1_1ast.html#af529298ecedc51e778b85444b7912154',1,'cpp::ast']]] + ['update_5fcurrent_5fplayer_0',['update_current_player',['../classgame__state.html#a49851709fcec061d36478ed2fdcc3d9d',1,'game_state']]], + ['updategamestate_1',['updateGameState',['../class_game_controller.html#a994773f79be8c9e8dc8c19ee2d389103',1,'GameController']]] ]; diff --git a/html/search/searchdata.js b/html/search/searchdata.js index 49b6a8eee53bbbcd9ac0b29f5ebdb0f0f37f14da..ee51f53e42bc70c6215db66e8f60bb3da75b2c56 100644 --- a/html/search/searchdata.js +++ b/html/search/searchdata.js @@ -1,8 +1,8 @@ var indexSectionsWithContent = { - 0: "1234abcdefghijlmnoprstuw~🚀", + 0: "01234abcdefghijlmnoprstuw~🚀", 1: "bcdefghijlmprstuw", - 2: "acdefghiprstuw~", + 2: "abcdefghilmprstuw~", 3: "epsw" }; diff --git a/html/trick_8h_source.html b/html/trick_8h_source.html index 53b4f9e7f3368a2cf2abc0e435d232d65f5394d2..d4da2b7abe9b3b88b6c20a9beb17002951ff0776 100644 --- a/html/trick_8h_source.html +++ b/html/trick_8h_source.html @@ -138,42 +138,45 @@ $(function(){ initResizable(false); }); <div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div> <div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> [[nodiscard]] <span class="keywordtype">int</span> <a class="code hl_function" href="classtrick.html#a69c49e2968abb235a6c7148cb05b0e64">get_trump_color</a>() <span class="keyword">const</span>;</div> <div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div> -<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> -<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment">// state update functions</span></div> -<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00">set_up_round</a>(<span class="keywordtype">int</span> trump, std::string& err);</div> -<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div> -<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classtrick.html#a384560623ffaf776797948cf35197c73">wrap_up_trick</a>(std::string& err) <span class="keyword">const</span>;</div> -<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div> -<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classtrick.html#a2d3b5aa88a1469dc3d58f30885752f5d">add_card</a>(<a class="code hl_class" href="classcard.html">card</a>* played_card, <a class="code hl_class" href="classplayer.html">player</a>* current_player, std::string& err);</div> -<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div> -<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment">// server setter</span></div> -<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classtrick.html#a0f8c45882691509564ec42efed0d1aaa">set_trick_color</a>(<span class="keywordtype">int</span> color) <span class="keyword">const</span>;</div> -<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="preprocessor">#endif</span></div> -<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div> -<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment">// serializable interface</span></div> -<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classtrick.html#a97176df194eae794691356cd83292b04">write_into_json</a>(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) <span class="keyword">const override</span>;</div> -<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div> -<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">static</span> <a class="code hl_class" href="classtrick.html">trick</a>* <a class="code hl_function" href="classtrick.html#a1a3d94f638672d3d60d596190ae59dfb">from_json</a>(<span class="keyword">const</span> rapidjson::Value& json);</div> -<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> </div> -<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span>};</div> -</div> +<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> [[nodiscard]] <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classtrick.html#a4b93ae88c17db486d975408cd8cfad1b">get_winner</a>() <span class="keyword">const</span>;</div> +<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> </div> +<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="preprocessor">#ifdef WIZARD_SERVER</span></div> +<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment">// state update functions</span></div> +<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00">set_up_round</a>(<span class="keywordtype">int</span> trump, std::string& err);</div> +<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div> +<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <a class="code hl_class" href="classplayer.html">player</a>* <a class="code hl_function" href="classtrick.html#a384560623ffaf776797948cf35197c73">wrap_up_trick</a>(std::string& err) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div> +<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classtrick.html#a2d3b5aa88a1469dc3d58f30885752f5d">add_card</a>(<a class="code hl_class" href="classcard.html">card</a>* played_card, <a class="code hl_class" href="classplayer.html">player</a>* current_player, std::string& err);</div> +<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div> +<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment">// server setter</span></div> +<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classtrick.html#a0f8c45882691509564ec42efed0d1aaa">set_trick_color</a>(<span class="keywordtype">int</span> color) <span class="keyword">const</span>;</div> +<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="preprocessor">#endif</span></div> +<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div> +<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="comment">// serializable interface</span></div> +<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classtrick.html#a97176df194eae794691356cd83292b04">write_into_json</a>(rapidjson::Value& json, rapidjson::Document::AllocatorType& allocator) <span class="keyword">const override</span>;</div> <div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div> -<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_TRICK_H</span></div> +<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">static</span> <a class="code hl_class" href="classtrick.html">trick</a>* <a class="code hl_function" href="classtrick.html#a1a3d94f638672d3d60d596190ae59dfb">from_json</a>(<span class="keyword">const</span> rapidjson::Value& json);</div> +<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div> +<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span>};</div> +</div> +<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div> +<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="preprocessor">#endif </span><span class="comment">//WIZARD_TRICK_H</span></div> <div class="ttc" id="aclasscard_html"><div class="ttname"><a href="classcard.html">card</a></div><div class="ttdoc">Represents a card in the game.</div><div class="ttdef"><b>Definition</b> card.h:15</div></div> <div class="ttc" id="aclassplayer_html"><div class="ttname"><a href="classplayer.html">player</a></div><div class="ttdoc">Represents a player in the game.</div><div class="ttdef"><b>Definition</b> player.h:18</div></div> <div class="ttc" id="aclassserializable__value_html"><div class="ttname"><a href="classserializable__value.html">serializable_value</a></div><div class="ttdef"><b>Definition</b> serializable_value.h:27</div></div> <div class="ttc" id="aclasstrick_html"><div class="ttname"><a href="classtrick.html">trick</a></div><div class="ttdoc">Represents the trick in the game.</div><div class="ttdef"><b>Definition</b> trick.h:28</div></div> -<div class="ttc" id="aclasstrick_html_a0f8c45882691509564ec42efed0d1aaa"><div class="ttname"><a href="classtrick.html#a0f8c45882691509564ec42efed0d1aaa">trick::set_trick_color</a></div><div class="ttdeci">void set_trick_color(int color) const</div><div class="ttdoc">Sets the trick color.</div><div class="ttdef"><b>Definition</b> trick.cpp:152</div></div> -<div class="ttc" id="aclasstrick_html_a1a3d94f638672d3d60d596190ae59dfb"><div class="ttname"><a href="classtrick.html#a1a3d94f638672d3d60d596190ae59dfb">trick::from_json</a></div><div class="ttdeci">static trick * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a trick object from a json object.</div><div class="ttdef"><b>Definition</b> trick.cpp:159</div></div> +<div class="ttc" id="aclasstrick_html_a0f8c45882691509564ec42efed0d1aaa"><div class="ttname"><a href="classtrick.html#a0f8c45882691509564ec42efed0d1aaa">trick::set_trick_color</a></div><div class="ttdeci">void set_trick_color(int color) const</div><div class="ttdoc">Sets the trick color.</div><div class="ttdef"><b>Definition</b> trick.cpp:204</div></div> +<div class="ttc" id="aclasstrick_html_a1a3d94f638672d3d60d596190ae59dfb"><div class="ttname"><a href="classtrick.html#a1a3d94f638672d3d60d596190ae59dfb">trick::from_json</a></div><div class="ttdeci">static trick * from_json(const rapidjson::Value &json)</div><div class="ttdoc">Deserializes a trick object from a json object.</div><div class="ttdef"><b>Definition</b> trick.cpp:211</div></div> <div class="ttc" id="aclasstrick_html_a1d75f9e8fc94fd122adfc39a20089268"><div class="ttname"><a href="classtrick.html#a1d75f9e8fc94fd122adfc39a20089268">trick::get_cards_and_players</a></div><div class="ttdeci">std::vector< std::pair< card *, player * > > get_cards_and_players() const</div><div class="ttdoc">Gets the played cards and players who played them as pairs.</div><div class="ttdef"><b>Definition</b> trick.cpp:66</div></div> <div class="ttc" id="aclasstrick_html_a22c0b586f1d6c3baeb7bb0e22eb7dfe2"><div class="ttname"><a href="classtrick.html#a22c0b586f1d6c3baeb7bb0e22eb7dfe2">trick::~trick</a></div><div class="ttdeci">~trick() override</div><div class="ttdoc">Destructs a trick object.</div><div class="ttdef"><b>Definition</b> trick.cpp:47</div></div> -<div class="ttc" id="aclasstrick_html_a2d3b5aa88a1469dc3d58f30885752f5d"><div class="ttname"><a href="classtrick.html#a2d3b5aa88a1469dc3d58f30885752f5d">trick::add_card</a></div><div class="ttdeci">bool add_card(card *played_card, player *current_player, std::string &err)</div><div class="ttdoc">Adds a card to the trick.</div><div class="ttdef"><b>Definition</b> trick.cpp:134</div></div> -<div class="ttc" id="aclasstrick_html_a384560623ffaf776797948cf35197c73"><div class="ttname"><a href="classtrick.html#a384560623ffaf776797948cf35197c73">trick::wrap_up_trick</a></div><div class="ttdeci">player * wrap_up_trick(std::string &err) const</div><div class="ttdoc">Wraps up a trick at the end of a trick or round.</div><div class="ttdef"><b>Definition</b> trick.cpp:82</div></div> +<div class="ttc" id="aclasstrick_html_a2d3b5aa88a1469dc3d58f30885752f5d"><div class="ttname"><a href="classtrick.html#a2d3b5aa88a1469dc3d58f30885752f5d">trick::add_card</a></div><div class="ttdeci">bool add_card(card *played_card, player *current_player, std::string &err)</div><div class="ttdoc">Adds a card to the trick.</div><div class="ttdef"><b>Definition</b> trick.cpp:186</div></div> +<div class="ttc" id="aclasstrick_html_a384560623ffaf776797948cf35197c73"><div class="ttname"><a href="classtrick.html#a384560623ffaf776797948cf35197c73">trick::wrap_up_trick</a></div><div class="ttdeci">player * wrap_up_trick(std::string &err) const</div><div class="ttdoc">Wraps up a trick at the end of a trick or round.</div><div class="ttdef"><b>Definition</b> trick.cpp:134</div></div> <div class="ttc" id="aclasstrick_html_a3b0a12789b87d15d9cdc4e5b6f85b47d"><div class="ttname"><a href="classtrick.html#a3b0a12789b87d15d9cdc4e5b6f85b47d">trick::trick</a></div><div class="ttdeci">trick()</div><div class="ttdoc">Constructs a new trick object.</div><div class="ttdef"><b>Definition</b> trick.cpp:10</div></div> <div class="ttc" id="aclasstrick_html_a41f315804ac73454c8e41438da20a9c3"><div class="ttname"><a href="classtrick.html#a41f315804ac73454c8e41438da20a9c3">trick::get_trick_color</a></div><div class="ttdeci">int get_trick_color() const</div><div class="ttdoc">Gets the trick color.</div><div class="ttdef"><b>Definition</b> trick.cpp:56</div></div> +<div class="ttc" id="aclasstrick_html_a4b93ae88c17db486d975408cd8cfad1b"><div class="ttname"><a href="classtrick.html#a4b93ae88c17db486d975408cd8cfad1b">trick::get_winner</a></div><div class="ttdeci">player * get_winner() const</div><div class="ttdoc">Gets the winner of the trick.</div><div class="ttdef"><b>Definition</b> trick.cpp:71</div></div> <div class="ttc" id="aclasstrick_html_a69c49e2968abb235a6c7148cb05b0e64"><div class="ttname"><a href="classtrick.html#a69c49e2968abb235a6c7148cb05b0e64">trick::get_trump_color</a></div><div class="ttdeci">int get_trump_color() const</div><div class="ttdoc">Gets the trump color.</div><div class="ttdef"><b>Definition</b> trick.cpp:61</div></div> -<div class="ttc" id="aclasstrick_html_a97176df194eae794691356cd83292b04"><div class="ttname"><a href="classtrick.html#a97176df194eae794691356cd83292b04">trick::write_into_json</a></div><div class="ttdeci">void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</div><div class="ttdoc">Serializes a trick object into a json object.</div><div class="ttdef"><b>Definition</b> trick.cpp:185</div></div> -<div class="ttc" id="aclasstrick_html_ae5b769ed0fc2933c1a44b5e481c18b00"><div class="ttname"><a href="classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00">trick::set_up_round</a></div><div class="ttdeci">void set_up_round(int trump, std::string &err)</div><div class="ttdoc">Sets up a trick.</div><div class="ttdef"><b>Definition</b> trick.cpp:74</div></div> +<div class="ttc" id="aclasstrick_html_a97176df194eae794691356cd83292b04"><div class="ttname"><a href="classtrick.html#a97176df194eae794691356cd83292b04">trick::write_into_json</a></div><div class="ttdeci">void write_into_json(rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator) const override</div><div class="ttdoc">Serializes a trick object into a json object.</div><div class="ttdef"><b>Definition</b> trick.cpp:237</div></div> +<div class="ttc" id="aclasstrick_html_ae5b769ed0fc2933c1a44b5e481c18b00"><div class="ttname"><a href="classtrick.html#ae5b769ed0fc2933c1a44b5e481c18b00">trick::set_up_round</a></div><div class="ttdeci">void set_up_round(int trump, std::string &err)</div><div class="ttdoc">Sets up a trick.</div><div class="ttdef"><b>Definition</b> trick.cpp:126</div></div> <div class="ttc" id="aclassunique__serializable_html"><div class="ttname"><a href="classunique__serializable.html">unique_serializable</a></div><div class="ttdef"><b>Definition</b> unique_serializable.h:12</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> diff --git a/src/client/GameController.cpp b/src/client/GameController.cpp index d040d52bf81add764986e6ef61d71b7efb0dc1c4..0b066643b2591e0ae0446a3b81e71f80b5d0f9fd 100644 --- a/src/client/GameController.cpp +++ b/src/client/GameController.cpp @@ -187,7 +187,7 @@ void GameController::playCard(card* cardToPlay) { } // TODO: estimate trick request, here message box with entry -void GameController::estimateTrick() +void GameController::processEstimateTricks() { wxString trickEstimate = GameController::_trickEstimationPanel->getTrickEstimate().Trim(); @@ -207,16 +207,6 @@ void GameController::estimateTrick() // Handle the error: the string was not a valid integer GameController::showError("Invalid input!"," Please enter a valid number for the trick estimate."); } - - /* - std::string title = "How many tricks?"; - std::string message = "Enter estimated number of tricks"; - std::string buttonLabel = "OK"; - - wxMessageDialog dialogBox = wxMessageDialog(nullptr, message, title, wxICON_NONE); - dialogBox.SetOKLabel(wxMessageDialog::ButtonLabel(buttonLabel)); - dialogBox.ShowModal(); - */ } diff --git a/src/client/GameController.h b/src/client/GameController.h index 4494b483e086491bfac383404b86a8be0b1d4675..eecbbccead7ac905c4d50a15e723e05f71ab0b8f 100644 --- a/src/client/GameController.h +++ b/src/client/GameController.h @@ -5,40 +5,104 @@ #include "panels/ConnectionPanel.h" #include "panels/MainGamePanelWizard.h" #include "panels/TrickEstimationPanel.h" -#include "network/ResponseListenerThread.h" #include "../common/game_state/game_state.h" // TODO: include decide_trump_request - +/** + * @class GameController + * @brief Controls visualization of the game state and processes client actions. + * + * This class handles the visualization of the game state a client received. + * It adapts the visualization based on the parameters found in the game state + * and reacts to interactions of a user with the GUI by sending out requests + * via the client network manager to the server. + */ class GameController { public: + /** + * @brief Initializes game window when a new Wizard-client is started + * @param gameWindow The game window that needs to be initialized + */ static void init(GameWindow* gameWindow); + /** + * @brief Handles connection to server when a user joins a game. + */ static void connectToServer(); + /** + * @brief Updates game state whenever any player interacted with the server based on parameters of current game state. + * @param newGameState The new game state send from the server. + */ static void updateGameState(game_state* newGameState); + /** + * @brief Send out 'start game' request to server. + */ static void startGame(); + /** + * @brief Send out 'leave game' request to server. + */ static void leaveGame(); - static void estimateTricks(int nof_cards); + /** + * @brief Process input from trick estimation panel and trigger estimateTricks function. + */ + static void processEstimateTricks(); + /** + * @brief Send out 'estimate tricks' request to server. + * @param nof_tricks Number of predicted tricks to win in the next round. + */ + static void estimateTricks(int nof_tricks); + /** + * @brief Send out 'play card' request to server. + * @param cardToPlay Pointer to card that user chooses to play. + */ + static void playCard(card* cardToPlay); - static void estimateTrick(); + /** + * @brief Finds event handler for main thread. + * @return wxwidgets event handler + */ static wxEvtHandler* getMainThreadEventHandler(); + /** + * @brief Handles showing of error messages. + * @param title Title of the error message. + * @param message Text of the error message. + */ static void showError(const std::string& title, const std::string& message); + /** + * @brief Set status message. + * @param message Text of status message. + */ static void showStatus(const std::string& message); + /** + * @brief Shows message that round has finished and current scores of players at the end of a round. + * @param oldGameState Game state of last round. + * @param newGameState Updated game state of new round. + */ static void showNewRoundMessage(game_state* oldGameState, game_state* newGameState); + /** + * @brief Shows message at the end of each trick stating which player won the trick. + * @param winner Winner of the trick. + */ static void showTrickOverMessage(const player* winner); + /** + * @brief Shows message at the end of the game that the game has ended and states the winner. + */ static void showGameOverMessage(); + /** + * @brief Closes game window. + */ static void closeGameWindow(); private: - static GameWindow* _gameWindow; - static ConnectionPanel* _connectionPanel; - static MainGamePanelWizard* _mainGamePanelWizard; - static TrickEstimationPanel* _trickEstimationPanel; + static GameWindow* _gameWindow; ///< The window which contains all panels shown to the user. + static ConnectionPanel* _connectionPanel; ///< The pannel used to connect to the game. + static MainGamePanelWizard* _mainGamePanelWizard; ///< The main panel used throughout playing the game. + static TrickEstimationPanel* _trickEstimationPanel; ///< The panel used to estimate tricks at the beginning of each round. - static player* _me; - static game_state* _currentGameState; + static player* _me; ///< The player for which the GUI is build. + static game_state* _currentGameState; ///< The state of the game which is currently displayed in the GUI. }; diff --git a/src/client/panels/MainGamePanelWizard.h b/src/client/panels/MainGamePanelWizard.h index d9e8e888eebaf1764e4a321a239f9eb5601f771f..e8ba76ba62c1a21fef34b322e9cbb65e7fb72d77 100644 --- a/src/client/panels/MainGamePanelWizard.h +++ b/src/client/panels/MainGamePanelWizard.h @@ -5,25 +5,87 @@ #include <wx/gbsizer.h> #include "../../common/game_state/game_state.h" +/** + * @class MainGamePanelWizard + * @brief Visualizes Game State to user during the card playing phase. + * The Main Game Panel is shown before the game has started (Lobby) + * and also while the game is played (outside the trick estimation phase). + * It ensures that the game state is shown to all players in the GUI, and creates and positions all graphical elements. + * It also allows interaction of the user with the GUI via button clicks. + */ class MainGamePanelWizard : public wxPanel{ public: + /** + * @brief Constructs main game panel. + * @param parent Game window the main game panel is put onto. + */ MainGamePanelWizard(wxWindow* parent); + /** + * @brief Shows the game state in the GUI the client gets from the server. + * This function is called by the game controller to update the shown game state. + * @param gameState New game state to show. + * @param me Player to show the game state for (me). + */ void buildGameState(game_state* gameState, player* me); private: + /** + * @brief Used by buildGameState to build the area of the panel that concerns the player of the user (me). + * @param sizer Sizer which states the position of the player of the user. + * @param gameState Current game state. + * @param me Player. + */ void buildThisPlayer(wxGridBagSizer* sizer, game_state* gameState, player* me); + /** + * @brief Builds indicator that shows whoes turn it is. + * This function colors the area of the player who is going to play next. + * @param sizer Positioning. + * @param gameState Current game state. + * @param me Player of the user. + */ void buildTurnIndicator(wxGridBagSizer* sizer, game_state* gameState, player* me); + /** + * @brief Used by buildGameState to build the areas of the panel that concern all other players. + * @param sizer Sizer which defines positioning. + * @param gameState Current game state. + * @param me Player of user (me). + * @param myPosition Position of player of the user (me). + */ void buildOtherPlayers(wxGridBagSizer* sizer, game_state* gameState, player *me, int myPosition); + /** + * @brief Displays area of game which shows round number. + * @param roundNumber Number of current round. + */ void showRoundOverlay(int roundNumber); + /** + * @brief Builds area of the deck which shows the trick pile. + * @param sizer Positioning + * @param gameState Current game state. + * @param me Player of the user (me). + */ void buildTrickPile(wxGridBagSizer* sizer, game_state* gameState, player *me); + /** + * @brief Builds area of the game panel that shows trump card. + * @param sizer Positioning. + * @param gameState Current game state. + */ void buildTrumpCard(wxGridBagSizer* sizer, game_state* gameState); + /** + * @brief Builds score board button and leave game button. + * The score board button can be used to look at the current scores. + * The leave game button can be used to either leave the game before it has started without any consequences + * or to leave the game after it was started. This leads to the game ending. + * @param sizer Positioning + * @param gameState Current game state. + */ void buildScoreLeaveButtons(wxGridBagSizer* sizer, game_state* gameState); - wxSize const panelSize = wxSize(960, 680); // also set in the constructor implementation - wxSize const cardSize = wxSize(70, 108); + // also set in the constructor implementation + wxSize const panelSize = wxSize(960, 680); ///< Size of the panel. + wxSize const cardSize = wxSize(70, 108); ///< Size of the shown cards. }; #endif //MAINGAMEPANELWIZARD_H diff --git a/src/client/panels/TrickEstimationPanel.cpp b/src/client/panels/TrickEstimationPanel.cpp index c5c88ea3f4fbf47003921a950d12ece001841e1e..fdb337156731a3da50c5034883d7f5720b3bebe8 100644 --- a/src/client/panels/TrickEstimationPanel.cpp +++ b/src/client/panels/TrickEstimationPanel.cpp @@ -285,7 +285,7 @@ void TrickEstimationPanel::buildThisPlayer(wxGridBagSizer* sizer, game_state* ga submitEstimateButton->SetBackgroundColour(wxColour(102, 0, 51)); // Set button background color //make button the same as the connect button in the connection panel since the background is red submitEstimateButton->Bind(wxEVT_BUTTON, [](wxCommandEvent& event) { - GameController::estimateTrick(); + GameController::processEstimateTricks(); }); mePanelSizer_vert->Add(submitEstimateButton,0,wxALIGN_CENTER); } diff --git a/src/server/game_instance.h b/src/server/game_instance.h index bef5fe65c357c4739ae60eaaea2a20396b4b36a0..b4d45eea70ba167d3238b8a3e2b860886ec56507 100644 --- a/src/server/game_instance.h +++ b/src/server/game_instance.h @@ -1,9 +1,3 @@ -// -// Created by Manuel on 25.01.2021. -// -// The game_instance class is a wrapper around the game_state of an active instance of the game. -// This class contains functions to modify the contained game_state. - #ifndef WIZARD_GAME_H #define WIZARD_GAME_H @@ -14,33 +8,100 @@ #include "../common/game_state/player/player.h" #include "../common/game_state/game_state.h" +/** + * @class game_instance + * @brief Class that modifies game state based on content received from client. + * The game instance functionalities are called by the request handler via the game instance manager. + * It handles the final step of interacting with the game instance (and the actual game logic). + */ class game_instance { private: - game_state* _game_state; - inline static std::mutex modification_lock; + game_state* _game_state; ///< Game state that is modified. + inline static std::mutex modification_lock; ///< Mutex which makes sure that game state is only modified by one player at a time. public: + /** + * @brief Constructs a new game instance object. + */ game_instance(); + /** + * @brief Destructs game instance object + */ ~game_instance() { if (_game_state != nullptr) { delete _game_state; } _game_state = nullptr; } - std::string get_id(); + /** + * @brief Accessor of game instance id. + * @return id of game instance + */ + std::string get_id(); + /** + * @brief Accessor of current game state. + * @return Current game state. + */ game_state* get_game_state(); + /** + * @brief Checks whether game is already full. + * The game is full if 6 players have joined already. + * @return Boolean which states whether game is full. + */ bool is_full(); + /** + * @brief Checks whether game is started. + * @return Boolean that states whether game is started. + */ bool is_started(); + /** + * @brief Checks whether game is finished. + * @return Boolean that states whether game is finished. + */ bool is_finished(); // game update functions + /** + * @brief Attempts to start the game. + * @param player Player who started the game. + * @param err Contains error message if something goes wrong while starting the game. + * @return Boolean that states whether game could be started successfully + */ bool start_game(player* player, std::string& err); + /** + * @brief Attempts to add player to the game. + * @param new_player Pointer to player that wants to join the game. + * @param err Contains error message that possibly states what went wrong while joining the game. + * @return Boolean which states whether player could successfully join the game. + */ bool try_add_player(player* new_player, std::string& err); + /** + * @brief Attempts to remove player from the game. + * If the game hasn't started yet, the player can be easily removed from the game. + * If the game has already started it is finished immediately. + * @param player Pointer to player that leaves the game. + * @param err Error message which states if the reason why the player couldn't leave the game if something went wrong. + * @return Boolean which states whether the player successfully left the game. + */ bool try_remove_player(player* player, std::string& err); + /** + * @brief Attempts to play a card. + * @param player Pointer to player who plays the card. + * @param card_id Id of the card. + * @param err Error message which contains possible errors. + * @return Boolean which states whether card could be played successfully. + */ bool play_card(player* player, const std::string& card_id, std::string& err); + /** + * @brief Attempts to estimate tricks. + * @param player Pointer to player who estimates tricks. + * @param err Error message which contains possible errors. + * @param nof_tricks Predicted number of tricks to win. + * @return Boolean which states whether trick estimation was successful. + */ bool estimate_tricks(player *player, std::string& err, int nof_tricks); };