⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 group__board.html

📁 黑白棋终局解算程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
</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">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="structBoard.html">Board</a> *&nbsp;</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> *&nbsp;</td>          <td class="mdname" nowrap> <em>move</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </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>&nbsp;</td><td>: board to restore. </td></tr>    <tr><td valign=top><em>move</em>&nbsp;</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-&gt;<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-&gt;<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-&gt;<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-&gt;<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-&gt;<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">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="structBoard.html">Board</a> *&nbsp;</td>          <td class="mdname1" valign="top" nowrap> <em>board</em>          </td>          <td class="md" valign="top">&nbsp;)&nbsp;</td>          <td class="md" nowrap></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </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>&nbsp;</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-&gt;<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">(&nbsp;</td>          <td class="md" nowrap valign="top"><a class="el" href="structBoard.html">Board</a> *&nbsp;</td>          <td class="mdname" nowrap> <em>board</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>const char *&nbsp;</td>          <td class="mdname" nowrap> <em>string</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"></td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </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>&nbsp;</td><td>: the board to set </td></tr>    <tr><td valign=top><em>string</em>&nbsp;</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 -&gt; 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 &lt; <a class="code" href="group__mac.html#ga22">BOARD_SIZE</a>; i++) board-&gt;<a class="code" href="structBoard.html#o0">square</a>[i] = <a class="code" href="group__mac.html#gga58a133">OFF_SIDE</a>;00832     board-&gt;<a class="code" href="structBoard.html#o2">n_discs</a>[<a class="code" href="group__mac.html#gga58a130">BLACK</a>] = board-&gt;<a class="code" href="structBoard.html#o2">n_discs</a>[<a class="code" href="group__mac.html#gga58a131">WHITE</a>] = board-&gt;<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 &lt;= <a class="code" href="group__mac.html#gga56a121">H8</a>; i += 9)00834     <span class="keywordflow">for</span> (j = i; j &lt; 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-&gt;<a class="code" href="structBoard.html#o0">square</a>[j] = <a class="code" href="group__mac.html#gga58a130">BLACK</a>;00841             board-&gt;<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-&gt;<a class="code" href="structBoard.html#o0">square</a>[j] = <a class="code" href="group__mac.html#gga58a131">WHITE</a>;00846             board-&gt;<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-&gt;<a class="code" href="structBoard.html#o0">square</a>[j] = <a class="code" href="group__mac.html#gga58a132">EMPTY</a>;00851             board-&gt;<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 + -