freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

象棋數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-畢業(yè)設(shè)計(jì)-全文預(yù)覽

2025-02-16 01:57 上一頁面

下一頁面
  

【正文】 判 斷 深 度 d e p t h 是 否 小 于 0 紅 方 走 棋 判 斷 v a l u e 是 否 大 于 b e s t定 義 搜 索 深 度 d e p t h ,本 方 最 優(yōu) 值 b e s t判 斷 d e p t h 是 否 等 于 M a x d e p t h Y Y對(duì) d e p t h , b e s t , w o r s t進(jìn) 行 s e a r c h 搜 索 N調(diào) 用 局 面 評(píng) 估函 數(shù) 分 析 局 面NB e s t = v a l u eB e s t m o v e = 當(dāng) 前 走 法 Y 圖 35 9 4.算法的實(shí)現(xiàn)與分析 走法生成 馬的走法生成 輸入:馬的位置 p 輸出:馬的所有可能走法 1) 現(xiàn)在位置 p 2) 八個(gè)可行方向( i=0? 7) 3) 計(jì)算下一個(gè)位置 n 4) n 是否在棋盤上 是,轉(zhuǎn)第 5 步 否,轉(zhuǎn)第 2 步 5) 從 p 到 n 的馬腿位置 m 上是否有棋子 有,轉(zhuǎn)第 2 步 沒有,轉(zhuǎn)第 6 步 6) n 是否被本方棋子占據(jù) 是,轉(zhuǎn)第 2 步 否,保存可行的走法,考慮下一位置轉(zhuǎn)第 2 步 炮的走法生成 輸入:炮的位置 p 輸出:炮的所有可能走法 1) 現(xiàn)在位置 p 2) 四個(gè)可行方向 翻山標(biāo)志 0, OverFlag=0 3) 沿這個(gè)方向繼續(xù)前進(jìn)一步(最多前進(jìn) 9 步) 4) 計(jì)算下一個(gè)位置 n 5) n 是否在棋盤上 是,轉(zhuǎn)第 6 步 否,轉(zhuǎn)第 2 步 6) n 位置上是否有棋子 沒有棋子 如果 OverFlag==0,保存可行的走法(不吃子走法),轉(zhuǎn)第 3 步 否則,轉(zhuǎn)第 3 步 有棋子則 如果 OverFlag==0,則令 OverFlag=1(翻山) 否則,該棋子是否為本方棋子 不是,保存可行的走法(吃子走法),轉(zhuǎn)第 2 步 是,轉(zhuǎn)第 2 步 10 車的走法生成 輸入:車的位置 position 輸出:車的所有可能走法 1) 現(xiàn)在位置 position 2) 四個(gè)可行方向 //第一重循環(huán) 3) 沿著這個(gè)方向繼續(xù)前進(jìn)一步(最多 9 步) //第二重循環(huán) 4) 計(jì)算下一位置 next 5) next 是否在棋盤上 是,轉(zhuǎn)第 6 步 否,轉(zhuǎn)第 2 步 6) next 位置上是否有棋子 沒有,保存可行走法,考慮下一位置轉(zhuǎn)第 3 步(不吃子走法) 有棋子,判斷該棋子是否本方棋子 是,轉(zhuǎn)第 2 步 否,保存可行走法,考慮下一位置轉(zhuǎn)第 2 步(吃子走法) 兵的走法生成 輸入:兵的位置 position 輸出:兵的所有可能的走法 1) 現(xiàn)在的位置 position 2) 三個(gè)可行方向 3) 計(jì)算下一個(gè)位置 next=position+PawnDir[side][n]。 撤銷算法 If 紅方走棋 If(value best) Best=value If(depth=Maxdepth) //Maxdepth 為設(shè)置的最多搜索層數(shù) Bestmove = 當(dāng)前走法 Else If(valuebest) Best=value If(depth=Maxdepth) Bestmove=當(dāng)前走法 Return best } 12 局面評(píng)估 棋子價(jià)值評(píng)估 不同的棋子都有不同的價(jià)值。 定義一個(gè)三 維數(shù)組來表示在不同棋子在不同位置的分值: static const unsigned char PositionValues[2][7][256] 。但即使是在同一位置,如果周圍全是棋子,限制了棋子的靈活性,這樣往往會(huì)陷入被動(dòng)挨打的局面。 各個(gè)棋子的靈活性分值分別為: 13 將: 2,士: 2,馬: 5,車: 4,炮: 3,卒: 2 棋子每有一種走法,就增加一個(gè)靈活性分值。一個(gè)棋子處于另一個(gè)棋子的保護(hù)范圍內(nèi),都可以說是協(xié)作。凡有車、馬、炮等三個(gè)進(jìn)攻性的棋子集結(jié)在一起,就有可能構(gòu)成各種殺勢(shì)。設(shè)置不同的 加減分值,看程序如何表現(xiàn),通過不斷調(diào)整,最后達(dá)到一個(gè)相對(duì)合理的值。 在技術(shù)上,知道了很多先進(jìn)的算法,例如 AlphaBeta 搜索算法。
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1