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

📄 group__board.html

📁 黑白棋终局解算程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
    </td>    <td><p>Count flippable discs. <p>Count how many discs can be flipped (without flipping them). <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 test </td></tr>    <tr><td valign=top><em>x</em>&nbsp;</td><td>square on which to move. </td></tr>    <tr><td valign=top><em>player</em>&nbsp;</td><td>player to move. </td></tr>  </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the number of disc(s) flipped. </dd></dl><p><div class="fragment"><pre>01001 {01002     <span class="keyword">const</span> <span class="keywordtype">char</span> p = player;01003     <span class="keyword">const</span> <span class="keywordtype">char</span> o = <a class="code" href="group__mac.html#ga50">OPPONENT</a>(p);01004     <span class="keyword">const</span> <span class="keywordtype">char</span> *square = board-&gt;<a class="code" href="structBoard.html#o0">square</a> + x;01005     <span class="keywordtype">int</span> n_flips = 0;01006 01007     <span class="keywordflow">switch</span> (<a class="code" href="group__mac.html#ga0">FLIPPING_DIRECTION_ID</a>[x]) {01008     <span class="keywordflow">case</span> 1:01009         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>( E);01010         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(S );01011         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(SE);01012         <span class="keywordflow">break</span>;01013     <span class="keywordflow">case</span> 3:01014         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>( W);01015         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(SW);01016         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(S );01017         <span class="keywordflow">break</span>;01018     <span class="keywordflow">case</span> 7:01019         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(N );01020         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(NE);01021         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>( E);01022         <span class="keywordflow">break</span>;01023     <span class="keywordflow">case</span> 9:01024         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(NW);01025         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(N );01026         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>( W);01027         <span class="keywordflow">break</span>;01028     <span class="keywordflow">case</span> 2:01029         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(S );01030         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>( W);01031         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>( E);01032         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(SW);01033         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(SE);01034         <span class="keywordflow">break</span>;01035     <span class="keywordflow">case</span> 4:01036         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>( E);01037         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(N );01038         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(NE);01039         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(S );01040         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(SE);01041         <span class="keywordflow">break</span>;01042     <span class="keywordflow">case</span> 6:01043         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>( W);01044         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(NW);01045         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(N );01046         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(SW);01047         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(S );01048         <span class="keywordflow">break</span>;01049     <span class="keywordflow">case</span> 8:01050         <a class="code" href="group__mac.html#ga32">BOARD_COUNT_FLIPS_6</a>(N );01051         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(NW);01052         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(NE);01053         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>( W);01054         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>( E);01055         <span class="keywordflow">break</span>;01056     <span class="keywordflow">case</span> 5:01057         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(NW);01058         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(N );01059         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(NE);01060         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>( W);01061         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>( E);01062         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(SW);01063         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(S );01064         <a class="code" href="group__mac.html#ga33">BOARD_COUNT_FLIPS_4</a>(SE);01065         <span class="keywordflow">break</span>;01066     }01067     <span class="keywordflow">return</span> n_flips;01068 }</pre></div>    </td>  </tr></table><a class="anchor" name="ga3" doxytag="solver.c::board_do_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"> int board_do_flip </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>int&nbsp;</td>          <td class="mdname" nowrap> <em>x</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap><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>Flip discs on the board. <p>Modify a board by flipping its discs. Only the square[] and player members are modified. <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 modify </td></tr>    <tr><td valign=top><em>x</em>&nbsp;</td><td>square on which to move. </td></tr>    <tr><td valign=top><em>move</em>&nbsp;</td><td>a <a class="el" href="structMove.html">Move</a> structure remembering the modification. </td></tr>  </table></dl><dl compact><dt><b>Returns:</b></dt><dd>the number of disc(s) flipped. </dd></dl><p><div class="fragment"><pre>01081 {01082     <span class="keyword">const</span> <span class="keywordtype">char</span> p = board-&gt;<a class="code" href="structBoard.html#o1">player</a>;01083     <span class="keyword">const</span> <span class="keywordtype">char</span> o = <a class="code" href="group__mac.html#ga50">OPPONENT</a>(p);01084     <span class="keywordtype">char</span> *square = board-&gt;<a class="code" href="structBoard.html#o0">square</a> + x;01085 01086     move-&gt;<a class="code" href="structMove.html#o1">n</a> = 0;01087     <span class="keywordflow">switch</span> (<a class="code" href="group__mac.html#ga0">FLIPPING_DIRECTION_ID</a>[x]) {01088     <span class="keywordflow">case</span> 1:01089         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(E , 6);01090         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( S, 6);01091         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(SE, 6);01092         <span class="keywordflow">break</span>;01093     <span class="keywordflow">case</span> 3:01094         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( W, 6);01095         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(SW, 6);01096         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(S , 6);01097         <span class="keywordflow">break</span>;01098     <span class="keywordflow">case</span> 7:01099         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(N , 6);01100         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(NE, 6);01101         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( E, 6);01102         <span class="keywordflow">break</span>;01103     <span class="keywordflow">case</span> 9:01104         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(NW, 6);01105         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(N , 6);01106         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( W, 6);01107         <span class="keywordflow">break</span>;01108     <span class="keywordflow">case</span> 2:01109         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(S , 6);01110         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( W, 4);01111         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( E, 4);01112         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(SW, 4);01113         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(SE, 4);01114         <span class="keywordflow">break</span>;01115     <span class="keywordflow">case</span> 4:01116         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(N , 4);01117         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(NE, 4);01118         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( E, 6);01119         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(S , 4);01120         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(SE, 4);01121         <span class="keywordflow">break</span>;01122     <span class="keywordflow">case</span> 6:01123         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(NW, 4);01124         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(N , 4);01125         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( W, 6);01126         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(SW, 4);01127         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(S , 4);01128         <span class="keywordflow">break</span>;01129     <span class="keywordflow">case</span> 8:01130         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(NW, 4);01131         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(N , 6);01132         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(NE, 4);01133         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( W, 4);01134         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( E, 4);01135         <span class="keywordflow">break</span>;01136     <span class="keywordflow">case</span> 5:01137         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(NW, 4);01138         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(N , 4);01139         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(NE, 4);01140         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( W, 4);01141         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>( E, 4);01142         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(SW, 4);01143         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(S , 4);01144         <a class="code" href="group__mac.html#ga34">BOARD_FLIP</a>(SE, 4);01145         <span class="keywordflow">break</span>;01146     }01147     <span class="keywordflow">if</span> (move-&gt;<a class="code" href="structMove.html#o1">n</a> &gt; 0) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -