亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? group__search.html

?? 黑白棋終局解算程序
?? HTML
?? 第 1 頁 / 共 5 頁
字號:
02064             <span class="keywordflow">if</span> (lower &lt; move-&gt;<a class="code" href="structMove.html#o2">score</a> &amp;&amp; move-&gt;<a class="code" href="structMove.html#o2">score</a> &lt; upper)02065                 move-&gt;<a class="code" href="structMove.html#o2">score</a> = -<a class="code" href="group__search.html#ga5">PVS_deep</a>(board, hash_table, -upper, -move-&gt;<a class="code" href="structMove.html#o2">score</a>, 0);02066         }02067         <a class="code" href="group__board.html#ga6">board_restore_move</a>(board, move);02068         <span class="keywordflow">if</span> (move-&gt;<a class="code" href="structMove.html#o2">score</a> &gt; bestmove-&gt;<a class="code" href="structMove.html#o2">score</a>) {02069             bestmove = move;02070             <span class="keywordflow">if</span> (bestmove-&gt;<a class="code" href="structMove.html#o2">score</a> &gt; lower) lower = bestmove-&gt;<a class="code" href="structMove.html#o2">score</a>;02071         }02072     }02073     <a class="code" href="group__move.html#ga2">movelist_sort_bestmove</a>(movelist, *bestmove-&gt;<a class="code" href="structMove.html#o0">position</a>);02074 <span class="preprocessor">#if USE_HASH_TABLE</span>02075 <span class="preprocessor"></span>    <a class="code" href="group__hash.html#ga4">hash_update</a>(hash_table, board, alpha, beta, bestmove-&gt;<a class="code" href="structMove.html#o2">score</a>, *bestmove-&gt;<a class="code" href="structMove.html#o0">position</a>);02076 <span class="preprocessor">#endif</span>02077 <span class="preprocessor"></span>}</pre></div>    </td>  </tr></table><a class="anchor" name="ga7" doxytag="solver.c::solve" ></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 solve </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><a class="el" href="structHashTable.html">HashTable</a> *&nbsp;</td>          <td class="mdname" nowrap> <em>hash_table</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap> <em>mode</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>bestmove</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>Search the bestmove of a given board. <p>Depending on the mode, the function will try to solve for a draw (DL_SCORE), a win (WD_SCORE), the exact outcome (WDL_SCORE) or the exact score. For the latter case, aspiration windows have been implemented. Thus, the search does not start with a plain alphabeta window [-INF_SCORE, +INF_SCORE], but with a reduce window [-1, +1] that will just find who is the winner. In case the game outcome is a draw, the search will stop here otherwise another search with a [+1, +8] window for the winner side will start. If the winning score falls within these bounds, the search is stopped else it is restarted with a last window of [+8, +64]. The search is then made within the PVS_root function.<p><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 solve. </td></tr>    <tr><td valign=top><em>hash_table</em>&nbsp;</td><td>hash table to memorize the analysis. </td></tr>    <tr><td valign=top><em>mode</em>&nbsp;</td><td>search mode: exact or win/draw/loss. </td></tr>    <tr><td valign=top><em>bestmove</em>&nbsp;</td><td>the bestmove found. </td></tr>  </table></dl><p><div class="fragment"><pre>02099 {02100     <span class="keywordtype">int</span> score, bound;02101     <a class="code" href="structMoveList.html">MoveList</a> movelist[<a class="code" href="group__mac.html#ga23">MAX_MOVE</a> + 2];02102 02103     board-&gt;<a class="code" href="structBoard.html#o4">n_nodes</a> = 0;02104     <a class="code" href="group__board.html#ga9">board_get_movelist</a>(board, movelist);02105     <span class="keywordflow">if</span> (movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a> != NULL) { <span class="comment">/* normal play ? */</span>02106         <span class="keywordflow">if</span> (board-&gt;<a class="code" href="structBoard.html#o3">n_empties</a> &gt; <a class="code" href="group__mac.html#ga12">EMPTIES_DEEP_TO_SHALLOW_SEARCH</a>)02107             <a class="code" href="group__move.html#ga3">movelist_sort_fastfirst</a>(movelist, board);02108         <span class="keywordflow">switch</span> (mode) {02109         <span class="keywordflow">case</span> <a class="code" href="group__mac.html#gga59a137">DL_SCORE</a>:02110             <span class="comment">/* look for a draw or a loss */</span>02111             <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, -1,  0, movelist);02112             <span class="keywordflow">break</span>;02113         <span class="keywordflow">case</span> <a class="code" href="group__mac.html#gga59a136">WD_SCORE</a>:02114             <span class="comment">/* look for a win or a draw */</span>02115             <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table,  0, +1, movelist);02116             <span class="keywordflow">break</span>;02117         <span class="keywordflow">case</span> <a class="code" href="group__mac.html#gga59a135">WDL_SCORE</a>:02118             <span class="comment">/* look for a win or a draw or a loss */</span>02119             <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, -1, +1, movelist);02120             <span class="keywordflow">break</span>;02121         <span class="keywordflow">default</span>:02122             <span class="comment">/* look for the exact best score */</span>02123             <span class="comment">/* start to look for a win or a draw or a loss */</span>02124             <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, -1, +1, movelist);02125             score = movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a>-&gt;<a class="code" href="structMoveList.html#o0">move</a>.<a class="code" href="structMove.html#o2">score</a>;02126             <span class="keywordflow">if</span> (score &gt; 0) {02127                 <span class="comment">/* if a win look for a score between [+2 +8] */</span>02128                 bound = score + 8;02129                 <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, score, bound, movelist);02130                 score = movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a>-&gt;<a class="code" href="structMoveList.html#o0">move</a>.<a class="code" href="structMove.html#o2">score</a>;02131                 <span class="keywordflow">if</span> (score &gt;= bound) {02132                     <span class="comment">/* failed -&gt; look for a score between [+8, +64] */</span>02133                     <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, score, +MAX_SCORE, movelist);02134                 }02135             } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (score &lt; 0) {02136                 <span class="comment">/* if a loss look for a score between [-8 -2] */</span>02137                 bound = score - 8;02138                 <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, bound, score, movelist);02139                 score = movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a>-&gt;<a class="code" href="structMoveList.html#o0">move</a>.<a class="code" href="structMove.html#o2">score</a>;02140                 <span class="keywordflow">if</span> (score &lt;= bound) {02141                     <span class="comment">/* failed -&gt; look for a score between [-64, -8] */</span>02142                     <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, -MAX_SCORE, score, movelist);02143                 }02144             }02145             <span class="keywordflow">break</span>;02146         }02147         *bestmove = movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a>-&gt;<a class="code" href="structMoveList.html#o0">move</a>;02148     } <span class="keywordflow">else</span> { <span class="comment">/* pass ? */</span>02149         bestmove-&gt;<a class="code" href="structMove.html#o1">n</a> = 0;02150         <a class="code" href="group__board.html#ga7">board_update_pass</a>(board);02151         <a class="code" href="group__board.html#ga9">board_get_movelist</a>(board, movelist);02152         <span class="keywordflow">if</span> (movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a> == NULL) { <span class="comment">/* game over ? */</span>02153             bestmove-&gt;<a class="code" href="structMove.html#o2">score</a> = -<a class="code" href="group__search.html#ga0">board_get_final_score</a>(board);02154             *bestmove-&gt;<a class="code" href="structMove.html#o0">position</a> = <a class="code" href="group__mac.html#gga56a56">NOMOVE</a>;02155         } <span class="keywordflow">else</span> {02156             <span class="keywordflow">if</span> (board-&gt;<a class="code" href="structBoard.html#o3">n_empties</a> &gt; <a class="code" href="group__mac.html#ga12">EMPTIES_DEEP_TO_SHALLOW_SEARCH</a>)02157                 <a class="code" href="group__move.html#ga3">movelist_sort_fastfirst</a>(movelist, board);02158             <span class="keywordflow">switch</span> (mode) {02159             <span class="keywordflow">case</span> <a class="code" href="group__mac.html#gga59a137">DL_SCORE</a>:02160                 <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table,  0, +1, movelist);02161                 <span class="keywordflow">break</span>;02162             <span class="keywordflow">case</span> <a class="code" href="group__mac.html#gga59a136">WD_SCORE</a>:02163                 <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, -1,  0, movelist);02164                 <span class="keywordflow">break</span>;02165             <span class="keywordflow">case</span> <a class="code" href="group__mac.html#gga59a135">WDL_SCORE</a>:02166                 <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, -1, +1, movelist);02167                 <span class="keywordflow">break</span>;02168             <span class="keywordflow">default</span>:02169                 <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, -1, +1, movelist);02170                 score = movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a>-&gt;<a class="code" href="structMoveList.html#o0">move</a>.<a class="code" href="structMove.html#o2">score</a>;02171                 <span class="keywordflow">if</span> (score &gt; 0) {02172                     bound = score + 8;02173                     <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, score, bound, movelist);02174                     score = movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a>-&gt;<a class="code" href="structMoveList.html#o0">move</a>.<a class="code" href="structMove.html#o2">score</a>;02175                     <span class="keywordflow">if</span> (score &gt;= bound)02176                         <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, score, +MAX_SCORE, movelist);02177                 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (score &lt; 0) {02178                     bound = score - 8;02179                     <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, bound, score, movelist);02180                     score = movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a>-&gt;<a class="code" href="structMoveList.html#o0">move</a>.<a class="code" href="structMove.html#o2">score</a>;02181                     <span class="keywordflow">if</span> (score &lt;= bound)02182                         <a class="code" href="group__search.html#ga6">PVS_root</a>(board, hash_table, -MAX_SCORE, score, movelist);02183                 }02184                 <span class="keywordflow">break</span>;02185             }02186             bestmove-&gt;<a class="code" href="structMove.html#o2">score</a> = -movelist-&gt;<a class="code" href="structMoveList.html#o1">next</a>-&gt;<a class="code" href="structMoveList.html#o0">move</a>.<a class="code" href="structMove.html#o2">score</a>;02187             *bestmove-&gt;<a class="code" href="structMove.html#o0">position</a> = <a class="code" href="group__mac.html#gga56a57">PASS</a>;02188         }02189         <a class="code" href="group__board.html#ga8">board_restore_pass</a>(board);02190     }02191 }</pre></div>    </td>  </tr></table><hr size="1"><address style="align: right;"><small>Generated on Mon Apr 12 19:31:52 2004 for Othello Solver by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.5 </small></address></body></html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色视频在线观看| 精品国产乱码久久| 精品在线亚洲视频| 一区二区在线观看不卡| 久久亚洲精品国产精品紫薇| 欧美专区在线观看一区| 国产91清纯白嫩初高中在线观看| 亚洲成人福利片| 亚洲少妇30p| 国产精品午夜春色av| 日韩久久久精品| 欧美肥胖老妇做爰| 欧美自拍丝袜亚洲| 色激情天天射综合网| 懂色中文一区二区在线播放| 久久国产精品一区二区| 日韩精品一区第一页| 亚洲午夜电影在线观看| 亚洲精品成人天堂一二三| 国产精品久久久久天堂| 精品99999| 亚洲精品一区二区三区蜜桃下载| 欧美一区二区视频在线观看2022| 欧美日韩一区不卡| 在线欧美一区二区| 一本色道久久综合狠狠躁的推荐| 成人免费看视频| 成人免费视频一区| 成人免费视频国产在线观看| 粉嫩欧美一区二区三区高清影视 | 日韩三级视频在线观看| 欧美日韩一二三| 欧美性色aⅴ视频一区日韩精品| 成人av资源在线| av电影天堂一区二区在线观看| 国产精品一级片| 国产激情精品久久久第一区二区| 国产毛片一区二区| 国产不卡在线视频| 成人丝袜高跟foot| 91色九色蝌蚪| 91久久精品国产91性色tv| 在线日韩国产精品| 欧美男生操女生| 欧美一区日韩一区| 精品国精品国产尤物美女| 久久伊人中文字幕| 国产精品视频观看| 一区二区三区在线不卡| 亚洲国产精品久久久久婷婷884 | 国产精品久久久久aaaa樱花 | 91精品蜜臀在线一区尤物| 9191成人精品久久| 精品成人a区在线观看| 久久久www成人免费毛片麻豆| 久久午夜老司机| 国产精品第一页第二页第三页| 亚洲人妖av一区二区| 亚洲成人av一区二区| 蜜臀av国产精品久久久久| 国产精品亚洲第一区在线暖暖韩国| 懂色av一区二区在线播放| 色综合天天视频在线观看| 制服视频三区第一页精品| 久久综合九色综合97婷婷女人| 国产精品视频你懂的| 洋洋av久久久久久久一区| 日韩av电影一区| 成人开心网精品视频| 欧美日韩黄色影视| 久久中文娱乐网| 一区二区三区蜜桃网| 蜜臀99久久精品久久久久久软件| 国产成人欧美日韩在线电影| 91视频精品在这里| 欧美大黄免费观看| 国产精品久久久久影院色老大| 午夜精品一区在线观看| 国产在线视视频有精品| 色婷婷综合久久久| 精品国产乱码久久久久久图片| 最新久久zyz资源站| 麻豆国产精品一区二区三区| 99久久国产免费看| 精品三级av在线| 亚洲午夜久久久久| 成人免费视频网站在线观看| 欧美一区二区三区思思人| 综合婷婷亚洲小说| 激情综合色丁香一区二区| 色94色欧美sute亚洲线路一ni| 日韩精品在线看片z| 亚洲一区二区不卡免费| 国产成人在线视频网址| 3d成人动漫网站| 一区二区欧美国产| 成人毛片在线观看| 2023国产精品视频| 日本欧美在线看| 在线观看视频欧美| 国产精品成人在线观看| 久草在线在线精品观看| 欧美午夜一区二区三区| 国产精品久久久久久一区二区三区| 蜜臀av亚洲一区中文字幕| 欧美视频自拍偷拍| 亚洲人成7777| www.色综合.com| 久久午夜老司机| 久久国产精品第一页| 欧美巨大另类极品videosbest| 中文字幕一区二区三区在线播放| 紧缚奴在线一区二区三区| 欧美精选一区二区| 亚洲国产精品久久不卡毛片| 色一情一乱一乱一91av| 国产精品成人在线观看| 成人自拍视频在线| 国产欧美视频在线观看| 国产一区二区三区国产| 精品88久久久久88久久久| 免费高清成人在线| 日韩欧美在线网站| 日韩国产一区二| 欧美一区二区三区视频在线观看| 亚洲成人免费影院| 欧美日韩精品系列| 天天色图综合网| 3d动漫精品啪啪| 免费人成精品欧美精品| 日韩亚洲欧美一区| 美女一区二区视频| 日韩免费看网站| 国产一区二区伦理片| 国产亚洲精久久久久久| 国产福利91精品一区| 中文字幕高清不卡| 91亚洲国产成人精品一区二区三 | 欧美精品一区二区三区高清aⅴ| 看国产成人h片视频| 欧美精品一区二区不卡| 国产精品1024| 亚洲三级在线播放| 欧美日韩久久久久久| 婷婷国产在线综合| 欧美成人艳星乳罩| 成人一二三区视频| 日韩美女精品在线| 欧美日韩成人综合| 九九九久久久精品| 亚洲国产高清在线| 91国在线观看| 日韩成人免费在线| 久久久不卡网国产精品二区| 成人黄色片在线观看| 亚洲精品乱码久久久久久日本蜜臀| 色婷婷久久综合| 琪琪久久久久日韩精品| 久久久亚洲精华液精华液精华液| 成人免费视频caoporn| 亚洲国产一区二区a毛片| 日韩欧美国产三级电影视频| 国产精品一卡二卡| 亚洲午夜影视影院在线观看| 精品久久久影院| 99r国产精品| 日韩电影免费在线| 国产精品欧美一区二区三区| 欧美性色黄大片手机版| 国产一区二区三区精品欧美日韩一区二区三区| 日本一区二区成人| 欧美日韩激情一区| 粉嫩aⅴ一区二区三区四区| 亚洲高清免费一级二级三级| 久久夜色精品一区| 欧美性受xxxx黑人xyx| 国产精品综合二区| 一区二区日韩av| 国产亚洲成年网址在线观看| 欧美日韩国产欧美日美国产精品| 国产一区二区网址| 亚洲电影一区二区三区| 国产亚洲精品福利| 欧美日韩国产一级片| 国产91在线观看| 免费成人在线影院| 亚洲欧美激情插| 久久精品亚洲国产奇米99| 在线成人av网站| aaa亚洲精品一二三区| 久久国产剧场电影| 亚洲成人激情综合网| 国产精品久久久久aaaa| 精品国产亚洲在线| 欧美三级日韩在线| 99综合电影在线视频| 国产精品一区二区久激情瑜伽| 亚洲第一av色| 亚洲精品免费电影| 国产精品视频看|