📄 group__board.html
字号:
</pre></div> </td> </tr></table><a class="anchor" name="ga6" doxytag="solver.c::board_restore_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"> void board_restore_move </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structBoard.html">Board</a> * </td> <td class="mdname" nowrap> <em>board</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="structMove.html">Move</a> * </td> <td class="mdname" nowrap> <em>move</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Restore a board. <p>Restore a board by un-flipping its discs and restoring every other data, according to the 'move' description, in order to cancel a board_update_move. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign=top><em>board</em> </td><td>: board to restore. </td></tr> <tr><td valign=top><em>move</em> </td><td>: a <a class="el" href="structMove.html">Move</a> structure describing the modification. </td></tr> </table></dl><p><div class="fragment"><pre>01273 {01274 <span class="keyword">const</span> <span class="keywordtype">char</span> o = board-><a class="code" href="structBoard.html#o1">player</a>;01275 <span class="keyword">const</span> <span class="keywordtype">char</span> p = <a class="code" href="group__mac.html#ga50">OPPONENT</a>(o);01276 <a class="code" href="structSquareList.html">SquareList</a> *empties;01277 01278 <a class="code" href="group__mac.html#ga37">BOARD_RESTORE_SQUARE</a>(board, move);01279 <a class="code" href="group__mac.html#ga39">BOARD_RESTORE_PLAYER</a>(board);01280 <a class="code" href="group__mac.html#ga41">BOARD_RESTORE_DISCS</a>(board, move-><a class="code" href="structMove.html#o1">n</a>);01281 <a class="code" href="group__mac.html#ga49">BOARD_RESTORE_HASH_CODE</a>(board, move-><a class="code" href="structMove.html#o3">hash_code</a>);01282 <a class="code" href="group__mac.html#ga43">BOARD_RESTORE_PARITY</a>(board, *move-><a class="code" href="structMove.html#o0">position</a>);01283 <a class="code" href="group__mac.html#ga45">BOARD_RESTORE_EMPTIES</a>(board, empties, *move-><a class="code" href="structMove.html#o0">position</a>);01284 }</pre></div> </td> </tr></table><a class="anchor" name="ga8" doxytag="solver.c::board_restore_pass" ></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"> void board_restore_pass </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structBoard.html">Board</a> * </td> <td class="mdname1" valign="top" nowrap> <em>board</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Un-passing. <p>Restore a board by un-passing player's turn. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign=top><em>board</em> </td><td>: board to restore. </td></tr> </table></dl><p><div class="fragment"><pre>01307 {01308 <span class="keyword">const</span> <span class="keywordtype">char</span> p = <a class="code" href="group__mac.html#ga50">OPPONENT</a>(board-><a class="code" href="structBoard.html#o1">player</a>);01309 <a class="code" href="group__mac.html#ga39">BOARD_RESTORE_PLAYER</a>(board);01310 <a class="code" href="group__mac.html#ga49">BOARD_RESTORE_HASH_CODE</a>(board, hash_code_swap_player);01311 }</pre></div> </td> </tr></table><a class="anchor" name="ga0" doxytag="solver.c::board_set" ></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"> void board_set </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="structBoard.html">Board</a> * </td> <td class="mdname" nowrap> <em>board</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const char * </td> <td class="mdname" nowrap> <em>string</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Set a board from a string description. <p>Read a standardized string (See <a href="http://www.nada.kth.se/~gunnar/download2.html">http://www.nada.kth.se/~gunnar/download2.html</a> for details) and translate it into our internal <a class="el" href="structBoard.html">Board</a> structure. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign=top><em>board</em> </td><td>: the board to set </td></tr> <tr><td valign=top><em>string</em> </td><td>: string describing the board </td></tr> </table></dl><p><div class="fragment"><pre>00803 {00804 <span class="keywordtype">int</span> i, j;00805 <a class="code" href="structSquareList.html">SquareList</a> *empties;00806 <span class="preprocessor">#if USE_PRESORTED_SQUARES</span>00807 <span class="preprocessor"></span> <span class="keyword">const</span> <span class="keywordtype">int</span> presorted_position[] = {00808 <a class="code" href="group__mac.html#gga56a58">A1</a>, <a class="code" href="group__mac.html#gga56a114">A8</a>, <a class="code" href="group__mac.html#gga56a65">H1</a>, <a class="code" href="group__mac.html#gga56a121">H8</a>, <span class="comment">/* Corner */</span>00809 <a class="code" href="group__mac.html#gga56a74">A3</a>, <a class="code" href="group__mac.html#gga56a98">A6</a>, <a class="code" href="group__mac.html#gga56a60">C1</a>, <a class="code" href="group__mac.html#gga56a116">C8</a>, <a class="code" href="group__mac.html#gga56a63">F1</a>, <a class="code" href="group__mac.html#gga56a119">F8</a>, <a class="code" href="group__mac.html#gga56a81">H3</a>, <a class="code" href="group__mac.html#gga56a105">H6</a>, <span class="comment">/* A */</span>00810 <a class="code" href="group__mac.html#gga56a76">C3</a>, <a class="code" href="group__mac.html#gga56a100">C6</a>, <a class="code" href="group__mac.html#gga56a79">F3</a>, <a class="code" href="group__mac.html#gga56a103">F6</a>, <span class="comment">/* D */</span>00811 <a class="code" href="group__mac.html#gga56a82">A4</a>, <a class="code" href="group__mac.html#gga56a90">A5</a>, <a class="code" href="group__mac.html#gga56a61">D1</a>, <a class="code" href="group__mac.html#gga56a117">D8</a>, <a class="code" href="group__mac.html#gga56a62">E1</a>, <a class="code" href="group__mac.html#gga56a118">E8</a>, <a class="code" href="group__mac.html#gga56a89">H4</a>, <a class="code" href="group__mac.html#gga56a97">H5</a>, <span class="comment">/* B */</span>00812 <a class="code" href="group__mac.html#gga56a84">C4</a>, <a class="code" href="group__mac.html#gga56a92">C5</a>, <a class="code" href="group__mac.html#gga56a77">D3</a>, <a class="code" href="group__mac.html#gga56a101">D6</a>, <a class="code" href="group__mac.html#gga56a78">E3</a>, <a class="code" href="group__mac.html#gga56a102">E6</a>, <a class="code" href="group__mac.html#gga56a87">F4</a>, <a class="code" href="group__mac.html#gga56a95">F5</a>, <span class="comment">/* E */</span>00813 <a class="code" href="group__mac.html#gga56a83">B4</a>, <a class="code" href="group__mac.html#gga56a91">B5</a>, <a class="code" href="group__mac.html#gga56a69">D2</a>, <a class="code" href="group__mac.html#gga56a109">D7</a>, <a class="code" href="group__mac.html#gga56a70">E2</a>, <a class="code" href="group__mac.html#gga56a110">E7</a>, <a class="code" href="group__mac.html#gga56a88">G4</a>, <a class="code" href="group__mac.html#gga56a96">G5</a>, <span class="comment">/* G */</span>00814 <a class="code" href="group__mac.html#gga56a75">B3</a>, <a class="code" href="group__mac.html#gga56a99">B6</a>, <a class="code" href="group__mac.html#gga56a68">C2</a>, <a class="code" href="group__mac.html#gga56a108">C7</a>, <a class="code" href="group__mac.html#gga56a71">F2</a>, <a class="code" href="group__mac.html#gga56a111">F7</a>, <a class="code" href="group__mac.html#gga56a80">G3</a>, <a class="code" href="group__mac.html#gga56a104">G6</a>, <span class="comment">/* F */</span>00815 <a class="code" href="group__mac.html#gga56a66">A2</a>, <a class="code" href="group__mac.html#gga56a106">A7</a>, <a class="code" href="group__mac.html#gga56a59">B1</a>, <a class="code" href="group__mac.html#gga56a115">B8</a>, <a class="code" href="group__mac.html#gga56a64">G1</a>, <a class="code" href="group__mac.html#gga56a120">G8</a>, <a class="code" href="group__mac.html#gga56a73">H2</a>, <a class="code" href="group__mac.html#gga56a113">H7</a>, <span class="comment">/* C */</span>00816 <a class="code" href="group__mac.html#gga56a67">B2</a>, <a class="code" href="group__mac.html#gga56a107">B7</a>, <a class="code" href="group__mac.html#gga56a72">G2</a>, <a class="code" href="group__mac.html#gga56a112">G7</a>, <span class="comment">/* X */</span>00817 };00818 <span class="preprocessor">#else</span>00819 <span class="preprocessor"></span> <span class="keyword">const</span> <span class="keywordtype">int</span> presorted_position[] = { <span class="comment">/* A1 -> H8 */</span>00820 <a class="code" href="group__mac.html#gga56a58">A1</a>, <a class="code" href="group__mac.html#gga56a66">A2</a>, <a class="code" href="group__mac.html#gga56a74">A3</a>, <a class="code" href="group__mac.html#gga56a82">A4</a>, <a class="code" href="group__mac.html#gga56a90">A5</a>, <a class="code" href="group__mac.html#gga56a98">A6</a>, <a class="code" href="group__mac.html#gga56a106">A7</a>, <a class="code" href="group__mac.html#gga56a114">A8</a>,00821 <a class="code" href="group__mac.html#gga56a59">B1</a>, <a class="code" href="group__mac.html#gga56a67">B2</a>, <a class="code" href="group__mac.html#gga56a75">B3</a>, <a class="code" href="group__mac.html#gga56a83">B4</a>, <a class="code" href="group__mac.html#gga56a91">B5</a>, <a class="code" href="group__mac.html#gga56a99">B6</a>, <a class="code" href="group__mac.html#gga56a107">B7</a>, <a class="code" href="group__mac.html#gga56a115">B8</a>,00822 <a class="code" href="group__mac.html#gga56a60">C1</a>, <a class="code" href="group__mac.html#gga56a68">C2</a>, <a class="code" href="group__mac.html#gga56a76">C3</a>, <a class="code" href="group__mac.html#gga56a84">C4</a>, <a class="code" href="group__mac.html#gga56a92">C5</a>, <a class="code" href="group__mac.html#gga56a100">C6</a>, <a class="code" href="group__mac.html#gga56a108">C7</a>, <a class="code" href="group__mac.html#gga56a116">C8</a>,00823 <a class="code" href="group__mac.html#gga56a61">D1</a>, <a class="code" href="group__mac.html#gga56a69">D2</a>, <a class="code" href="group__mac.html#gga56a77">D3</a>, <a class="code" href="group__mac.html#gga56a101">D6</a>, <a class="code" href="group__mac.html#gga56a109">D7</a>, <a class="code" href="group__mac.html#gga56a117">D8</a>,00824 <a class="code" href="group__mac.html#gga56a62">E1</a>, <a class="code" href="group__mac.html#gga56a70">E2</a>, <a class="code" href="group__mac.html#gga56a78">E3</a>, <a class="code" href="group__mac.html#gga56a102">E6</a>, <a class="code" href="group__mac.html#gga56a110">E7</a>, <a class="code" href="group__mac.html#gga56a118">E8</a>,00825 <a class="code" href="group__mac.html#gga56a63">F1</a>, <a class="code" href="group__mac.html#gga56a71">F2</a>, <a class="code" href="group__mac.html#gga56a79">F3</a>, <a class="code" href="group__mac.html#gga56a87">F4</a>, <a class="code" href="group__mac.html#gga56a95">F5</a>, <a class="code" href="group__mac.html#gga56a103">F6</a>, <a class="code" href="group__mac.html#gga56a111">F7</a>, <a class="code" href="group__mac.html#gga56a119">F8</a>,00826 <a class="code" href="group__mac.html#gga56a64">G1</a>, <a class="code" href="group__mac.html#gga56a72">G2</a>, <a class="code" href="group__mac.html#gga56a80">G3</a>, <a class="code" href="group__mac.html#gga56a88">G4</a>, <a class="code" href="group__mac.html#gga56a96">G5</a>, <a class="code" href="group__mac.html#gga56a104">G6</a>, <a class="code" href="group__mac.html#gga56a112">G7</a>, <a class="code" href="group__mac.html#gga56a120">G8</a>,00827 <a class="code" href="group__mac.html#gga56a65">H1</a>, <a class="code" href="group__mac.html#gga56a73">H2</a>, <a class="code" href="group__mac.html#gga56a81">H3</a>, <a class="code" href="group__mac.html#gga56a89">H4</a>, <a class="code" href="group__mac.html#gga56a97">H5</a>, <a class="code" href="group__mac.html#gga56a105">H6</a>, <a class="code" href="group__mac.html#gga56a113">H7</a>, <a class="code" href="group__mac.html#gga56a121">H8</a>00828 };00829 <span class="preprocessor">#endif</span>00830 <span class="preprocessor"></span>00831 <span class="keywordflow">for</span> (i=0; i < <a class="code" href="group__mac.html#ga22">BOARD_SIZE</a>; i++) board-><a class="code" href="structBoard.html#o0">square</a>[i] = <a class="code" href="group__mac.html#gga58a133">OFF_SIDE</a>;00832 board-><a class="code" href="structBoard.html#o2">n_discs</a>[<a class="code" href="group__mac.html#gga58a130">BLACK</a>] = board-><a class="code" href="structBoard.html#o2">n_discs</a>[<a class="code" href="group__mac.html#gga58a131">WHITE</a>] = board-><a class="code" href="structBoard.html#o3">n_empties</a> = 0;00833 <span class="keywordflow">for</span> (i = <a class="code" href="group__mac.html#gga56a58">A1</a>; i <= <a class="code" href="group__mac.html#gga56a121">H8</a>; i += 9)00834 <span class="keywordflow">for</span> (j = i; j < i + 8; j++) {00835 <span class="keywordflow">if</span> (*string == <span class="charliteral">'\0'</span>) <span class="keywordflow">break</span>;00836 <span class="keywordflow">switch</span> (tolower(*string)) {00837 <span class="keywordflow">case</span> <span class="charliteral">'b'</span>:00838 <span class="keywordflow">case</span> <span class="charliteral">'x'</span>:00839 <span class="keywordflow">case</span> <span class="charliteral">'*'</span>:00840 board-><a class="code" href="structBoard.html#o0">square</a>[j] = <a class="code" href="group__mac.html#gga58a130">BLACK</a>;00841 board-><a class="code" href="structBoard.html#o2">n_discs</a>[<a class="code" href="group__mac.html#gga58a130">BLACK</a>]++;00842 <span class="keywordflow">break</span>;00843 <span class="keywordflow">case</span> <span class="charliteral">'o'</span>:00844 <span class="keywordflow">case</span> <span class="charliteral">'w'</span>:00845 board-><a class="code" href="structBoard.html#o0">square</a>[j] = <a class="code" href="group__mac.html#gga58a131">WHITE</a>;00846 board-><a class="code" href="structBoard.html#o2">n_discs</a>[<a class="code" href="group__mac.html#gga58a131">WHITE</a>]++;00847 <span class="keywordflow">break</span>;00848 <span class="keywordflow">case</span> <span class="charliteral">'-'</span>:00849 <span class="keywordflow">case</span> <span class="charliteral">'.'</span>:00850 board-><a class="code" href="structBoard.html#o0">square</a>[j] = <a class="code" href="group__mac.html#gga58a132">EMPTY</a>;00851 board-><a class="code" href="structBoard.html#o3">n_empties</a>++;00852 <span class="keywordflow">break</span>;00853 <span class="keywordflow">default</span>:0085
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -