📄 group__board.html
字号:
</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> </td><td>board to test </td></tr> <tr><td valign=top><em>x</em> </td><td>square on which to move. </td></tr> <tr><td valign=top><em>player</em> </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-><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">( </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>int </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> * </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>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> </td><td>board to modify </td></tr> <tr><td valign=top><em>x</em> </td><td>square on which to move. </td></tr> <tr><td valign=top><em>move</em> </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-><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-><a class="code" href="structBoard.html#o0">square</a> + x;01085 01086 move-><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-><a class="code" href="structMove.html#o1">n</a> > 0) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -