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

正文內(nèi)容

象棋數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-01-19 01:57本頁(yè)面
  

【正文】 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à)值。詳見下表: 卒 士 象 馬 炮 車 將 10 20 20 40 45 90 1000 根據(jù)基本價(jià)值,可以得到一個(gè)最初的評(píng)估算法: 輸入:棋盤數(shù)組 輸出:局面估值 wValue:紅方棋子價(jià)值的總和 bValue:黑方棋子價(jià)值的總和 wValue = bValue = 0 。 1 行變量 row = 3 to 12 2 列變量 list = 3 to 11 對(duì)應(yīng)一維數(shù)組下標(biāo) chessman = row4 + j 。 如果 chessman 位置已出界,則 返回第 2 步 pc 為 chessman 位置對(duì)應(yīng)的棋子 如果 pc 為紅方棋子,則 wValue += pc 棋子對(duì)應(yīng)的子力值 否則 bValue += pc 棋子對(duì)應(yīng)的子力值 return wValue – bValue 棋子位置分值 一個(gè)棋子在棋局中的真正價(jià)值,不僅與固定分值有關(guān),還與所處位置有關(guān)。 定義一個(gè)三 維數(shù)組來表示在不同棋子在不同位置的分值: static const unsigned char PositionValues[2][7][256] 。 第一維表示走方, 0 為黑方, 1 為紅方,第二維表示棋子種類, 0 到 6 分別表示士、象、炮、將、馬、卒、車,第三維表示位置。 位置分值根據(jù)棋手多年的經(jīng)驗(yàn)而得,有些難以量化,只能盡量模擬。 棋子靈活性分值 棋子所在位置的重要性,通過位置分值已經(jīng)體現(xiàn)。但即使是在同一位置,如果周圍全是棋子,限制了棋子的靈活性,這樣往往會(huì)陷入被動(dòng)挨打的局面。由此可見,靈 活性在行棋中還是占有相當(dāng)重要的作用。 棋子靈活性的度量: 棋子靈活性的度量只能以棋子能走棋步數(shù)來體現(xiàn),能走的位置越多,靈活性越高。因此,在估值函數(shù)中計(jì)算每一個(gè)棋子的行棋步數(shù),然后再給以一定分值的獎(jiǎng)勵(lì)。 各個(gè)棋子的靈活性分值分別為: 13 將: 2,士: 2,馬: 5,車: 4,炮: 3,卒: 2 棋子每有一種走法,就增加一個(gè)靈活性分值。 其他復(fù)雜的局面評(píng)估 一盤棋局的局勢(shì)跟本方棋子間的協(xié)作有關(guān),跟對(duì)方棋子的牽制有關(guān)。 馬踏在九宮格附近威脅較大,應(yīng)該加分,而當(dāng)馬踏在四條邊線上時(shí),因走法受限很容易被對(duì)方攻擊,應(yīng)該減 分。 當(dāng)兩個(gè)馬踏成連環(huán)馬時(shí),威力比兩個(gè)單馬要大,這是棋子之間的協(xié)作,應(yīng)該加分。一個(gè)棋子處于另一個(gè)棋子的保護(hù)范圍內(nèi),都可以說是協(xié)作。還有一些固定的進(jìn)攻組合和防守組合,也應(yīng)該考慮,如馬炮,車馬,過河卒連在一起,擔(dān)子炮,等等。 當(dāng)一個(gè)棋子收到對(duì)方棋子的攻擊時(shí),就是受到對(duì)方棋子的牽制,應(yīng)該減分。 還有更多的因素: 區(qū)域合作問題,典型的三子歸邊。凡有車、馬、炮等三個(gè)進(jìn)攻性的棋子集結(jié)在一起,就有可能構(gòu)成各種殺勢(shì)。 對(duì)將得威脅。如,車炮置中路或底路,都有潛在對(duì)將的威脅。 每一種情況的加分減分只有通過實(shí)驗(yàn)來解決。設(shè)置不同的 加減分值,看程序如何表現(xiàn),通過不斷調(diào)整,最后達(dá)到一個(gè)相對(duì)合理的值。 14 5.運(yùn)行結(jié)果與分析 運(yùn)行正常, 所有的錯(cuò)誤操作都有判斷。 15 6.總結(jié) 通過本次課程設(shè)計(jì)課,我們的編程能力得到了加強(qiáng),而且使我們更深刻的體會(huì)到數(shù)據(jù)結(jié)構(gòu)與算法的重要性。為了讓電腦能更快速的做出更準(zhǔn)確的判斷,我們不斷改進(jìn)算法。 在技術(shù)上,知道了很多先進(jìn)的算法,例如 AlphaBeta 搜索算法。還學(xué)會(huì)了用 MFC 編寫窗口程序。 在團(tuán)隊(duì)合作上,我們分工明確,這使得我們的進(jìn)展一直按著計(jì)劃進(jìn)行。同時(shí),我們的團(tuán)隊(duì)意識(shí)也得 到了提高。 16 參考文獻(xiàn) 1 蔣鵬 , 雷貽祥 ,陳園園 . C\C++中國(guó)象棋程序入門與提高 . 電子工業(yè)出版社 , 2021: 1166 2 王小春 . PC 游戲編程 (人機(jī)博弈 ). 重慶大學(xué)出版社 , 2021: 1200
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1