📄 group__mac.html
字号:
<td class="md" nowrap valign="top">board, <tr> <td></td> <td></td> <td class="md" nowrap>x </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (board->parity[<a class="el" href="group__mac.html#ga1">QUADRANT_ID</a>[x]] ^= 1) </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>macro to update parity </td> </tr></table><a class="anchor" name="ga38" doxytag="solver.c::BOARD_UPDATE_PLAYER" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define BOARD_UPDATE_PLAYER</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">board </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (board->player = o) </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>macro to update player </td> </tr></table><a class="anchor" name="ga36" doxytag="solver.c::BOARD_UPDATE_SQUARE" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define BOARD_UPDATE_SQUARE</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">board, <tr> <td></td> <td></td> <td class="md" nowrap>move </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p><b>Value:</b><div class="fragment"><pre><span class="keywordflow">switch</span>((move)->n) { \ <span class="keywordflow">case</span> 18: board->square[(move)->position[18]] = p; \ <span class="keywordflow">case</span> 17: board->square[(move)->position[17]] = p; \ <span class="keywordflow">case</span> 16: board->square[(move)->position[16]] = p; \ <span class="keywordflow">case</span> 15: board->square[(move)->position[15]] = p; \ <span class="keywordflow">case</span> 14: board->square[(move)->position[14]] = p; \ <span class="keywordflow">case</span> 13: board->square[(move)->position[13]] = p; \ <span class="keywordflow">case</span> 12: board->square[(move)->position[12]] = p; \ <span class="keywordflow">case</span> 11: board->square[(move)->position[11]] = p; \ <span class="keywordflow">case</span> 10: board->square[(move)->position[10]] = p; \ <span class="keywordflow">case</span> 9: board->square[(move)->position[ 9]] = p; \ <span class="keywordflow">case</span> 8: board->square[(move)->position[ 8]] = p; \ <span class="keywordflow">case</span> 7: board->square[(move)->position[ 7]] = p; \ <span class="keywordflow">case</span> 6: board->square[(move)->position[ 6]] = p; \ <span class="keywordflow">case</span> 5: board->square[(move)->position[ 5]] = p; \ <span class="keywordflow">case</span> 4: board->square[(move)->position[ 4]] = p; \ <span class="keywordflow">case</span> 3: board->square[(move)->position[ 3]] = p; \ <span class="keywordflow">case</span> 2: board->square[(move)->position[ 2]] = p; \ <span class="keywordflow">case</span> 1: board->square[(move)->position[ 1]] = p; \ <span class="keywordflow">case</span> 0: board->square[(move)->position[ 0]] = p; \}</pre></div>update board </td> </tr></table><a class="anchor" name="ga27" doxytag="solver.c::BOARD_UPDATE_TERMINAL_NODES" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define BOARD_UPDATE_TERMINAL_NODES</td> <td class="md" valign="top">( </td> </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> board->n_nodes++; </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>node counter for terminal nodes (leaves) </td> </tr></table><a class="anchor" name="ga20" doxytag="solver.c::COUNT_NODES" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define COUNT_NODES 3 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>node counter 0 = off. 1 = internal_nodes, 2 = internal_nodes + leave_nodes, 3 = all. (default = 3, more spectacular!) </td> </tr></table><a class="anchor" name="ga12" doxytag="solver.c::EMPTIES_DEEP_TO_SHALLOW_SEARCH" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define EMPTIES_DEEP_TO_SHALLOW_SEARCH 7 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>depth switch from a slow but efficient PVS near the root to a fast PVS near the leaves. (default = 7) </td> </tr></table><a class="anchor" name="ga51" doxytag="solver.c::HASH_TABLE_OK" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define HASH_TABLE_OK</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">hash_table </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> (hash_table->hash_mask != 0) </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>test if hash table exists </td> </tr></table><a class="anchor" name="ga21" doxytag="solver.c::INF_SCORE" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define INF_SCORE 127 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>infinite score: a huge value unreachable as a score and fitting in a char </td> </tr></table><a class="anchor" name="ga24" doxytag="solver.c::MAX_FLIP" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define MAX_FLIP 20 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>maximal number of squares flipped + 1 </td> </tr></table><a class="anchor" name="ga23" doxytag="solver.c::MAX_MOVE" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define MAX_MOVE 32 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>maximal number of moves </td> </tr></table><a class="anchor" name="ga25" doxytag="solver.c::MAX_SCORE" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define MAX_SCORE 64 </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>maximal score </td> </tr></table><a class="anchor" name="ga50" doxytag="solver.c::OPPONENT" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define OPPONENT</td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">p </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap> ((p) ^ 1) </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>macro to swap colors </td> </tr></table><a class="anchor" name="ga18" doxytag="solver.c::PLAY_BEST_MOVE_IN_MEMORY_FIRST" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -