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

正文內(nèi)容

基于android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文(參考版)

2024-09-01 19:53本頁(yè)面
  

【正文】 m_curPosition[][] = 。 chessID = m_curPosition[][]。 //當(dāng)前搜索深度 public static int m_maxDepth。 //估值產(chǎn)生器 public static Eveluation m_eve = new Eveluation()。 //記錄最佳走棋 public static ChessMove bestMove = new ChessMove()。 } } 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 41 package 。//棋子的目標(biāo)點(diǎn) x坐標(biāo) = toY。//棋子的起始坐標(biāo) = fromY。//值 ,估值時(shí)會(huì)用到 public ChessMove(int ChessID, int fromX,int fromY,int toX,int toY,int score){//構(gòu)造器 = ChessID。//目的地的坐標(biāo) int toY。//起始的坐標(biāo) int fromY。 /** * 該類為棋子的一個(gè)走法 * 包含是什么棋子 * 起始點(diǎn)的位置 * 目標(biāo)點(diǎn)的位置 * 以及估值時(shí)所用到的 score */ public class ChessMove { int ChessID。//切換 View } public void initHelpView(){//初始化幫助界面 (new HelpView(this,this))。 } if(){//是否播放聲音 ()。 //切換到游戲界面 } public void initMenuView(){//初始化菜單界面 if(startSound != null){//停止 ()。//切換到歡迎界面 if(isSound){//需要播放聲音時(shí) ()。//設(shè)置游戲聲音循環(huán)播放 ()。//設(shè)置游戲聲音循環(huán)播放 gamemusic = (this, )。 startSound = (this, )。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 39 //全屏 requestWindowFeature()。//初始化并切換到幫助界面 } } }。//初始化并切換到菜單界面 } else if( == 2){//MenuView傳來(lái)的消息,切換到 GameView initGameView()。//開(kāi)始和菜單時(shí)的音樂(lè) MediaPlayer gamemusic。 public class ChessActivity extends Activity { boolean isSound = true。 import 。 import 。//引入相關(guān)的包 import 。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 38 附錄: package 。 [7] 張從明、馬京成 . 網(wǎng)絡(luò)教學(xué)設(shè)計(jì) . 第四軍醫(yī)大學(xué)出版社, 2020。 [5] 付強(qiáng) , 陳煥文 . 中國(guó)象棋人機(jī)對(duì)弈的自學(xué)習(xí)方法研究 . 計(jì)算機(jī)技術(shù)與發(fā)展 , 2020, 17(12): 7679。 [3] 馬占欣 , 李亞 , 陸玉昌 . 用遺傳算法解決博弈問(wèn)題 . 河南科學(xué) , 2020, 25(2): 273277。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 37 參考文獻(xiàn) [1] 徐心和 , 王驕 . 中國(guó)象棋計(jì)算機(jī)博弈關(guān)鍵技術(shù)分析 .小型微型計(jì)算機(jī)系統(tǒng) , 2020, 27(6): 961– 965。此次畢業(yè)設(shè)計(jì)才會(huì)順利完成。在此我要向我的導(dǎo)師致以最衷心的感謝和深深的敬意。老師的嚴(yán)謹(jǐn)治學(xué)態(tài)度、淵博的知識(shí)、無(wú)私的奉獻(xiàn)精神使我深受啟迪。 我的設(shè)計(jì)較為復(fù)雜煩瑣,而且涉及到的一 些技術(shù)算法很是生僻,但是林老師仍然細(xì)心地糾正我程序設(shè)計(jì)中的錯(cuò)誤,并且為我提供閱讀資料和開(kāi)發(fā)文檔供我參考。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 36 致 謝 經(jīng)過(guò)這段時(shí)間的忙碌和工作,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,作為一個(gè)本科生的畢業(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒(méi)有導(dǎo)師的督促指導(dǎo),以及一起工作的同學(xué)們的支持,想要完成這個(gè)設(shè)計(jì)是難以 想象 的。對(duì)于人機(jī)博弈搜索算法只是用了 負(fù)極大值搜索,負(fù)極大值搜索由于搜索太多效率較差 由此設(shè)想可以通過(guò)對(duì)幾種不同的算法如歷史表法、迭代加深、極小窗口、渴望搜索、 alphabeta 等的同時(shí)實(shí)現(xiàn)然后選擇有效的搜索,來(lái)提高電腦人工智能的效率。 由于技術(shù)和時(shí)間的問(wèn)題,本系統(tǒng)對(duì)弈時(shí)電腦走棋相對(duì)比較粗糙,系統(tǒng)中還存在著許多不足的地方需要改正和完善,如人機(jī)對(duì)戰(zhàn)時(shí)電腦走棋人工智能還欠缺。對(duì) Android 手機(jī)的兼容,歡迎界面、菜單界面、幫助界面、游戲界面之間的切換,背景音樂(lè)的開(kāi)與關(guān),安全的退出游戲,棋子按規(guī)則行走等基本功能都得到實(shí)現(xiàn);而且粗 略的完成了象棋的人機(jī)對(duì)弈。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 35 7 結(jié)束語(yǔ) 本論文詳細(xì)論述了基于 Android 技術(shù)中國(guó)象棋人機(jī)對(duì)弈的設(shè)計(jì)與實(shí)現(xiàn),采用了JDK, Eclipse for IDE, Android SDK, ADT 等工具。 造成象棋對(duì)弈過(guò)程中電腦走棋思索時(shí)間太長(zhǎng),將使得玩家受不了。 通過(guò)對(duì)大量資料的了解學(xué)習(xí),最終初步設(shè)計(jì)實(shí)現(xiàn)了 負(fù)極大值搜索引擎的搜索和局面的評(píng)估代碼。 經(jīng)過(guò)最初的測(cè)試,系統(tǒng)能正常運(yùn)行,能夠很好地實(shí)現(xiàn)模塊界面間的切換,音樂(lè)聲音的開(kāi)關(guān),象棋能夠按照規(guī)則來(lái)行走等功能都能正常運(yùn)行;同時(shí)電腦也可以進(jìn)行走棋,實(shí)現(xiàn)人和電腦下棋。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 31 圖 游戲界面 ( 2) 玩家先走棋,玩家走一步棋;當(dāng)前位置顯示為黑帥,輪到電腦走棋如圖 所示: 圖 輪到電腦走棋 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 32 ( 3)電腦走完棋后當(dāng)前位置顯示紅將,輪到玩家走棋;如圖 所示: 圖 電腦走完棋轉(zhuǎn)換玩家 ( 4)對(duì)局結(jié)束紅方將輸了(電腦贏了 )如圖 所示: 圖 紅方玩家輸了(電腦勝利) 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 33 (5)對(duì)局結(jié)束紅方將贏了(電腦輸了)如圖 所示: 圖 紅方玩家贏了(電腦輸了) ( 5)點(diǎn)擊“您輸了”小框體或者點(diǎn)擊“退出”按鈕退出游戲界面切換到菜單界面,如圖 所示: 圖 從游戲界面返回菜單界面 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 34 6 運(yùn)行測(cè)試 系統(tǒng)測(cè)試是軟件開(kāi)發(fā)投入使用之前必不可少的一個(gè)步驟,同時(shí)也必須嚴(yán)格要求進(jìn)行測(cè)試,對(duì)程序的功能,性能、可用性、客戶端兼容性和美觀等測(cè)試。 ( 1)點(diǎn)擊“開(kāi)始游戲”按鈕 ,界面切換至游戲界面如(圖 5)所示。 圖 關(guān)閉聲音 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 30 幫助界面 點(diǎn)擊菜單界面中的“幫助”按鈕,界面切換至幫助界面如圖 所示。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 29 圖 菜單界面 (2)點(diǎn)擊“關(guān)閉聲音”按鈕來(lái)關(guān)閉聲音,顯示如圖 。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 28 5 游戲系統(tǒng)模塊的設(shè)計(jì)實(shí)現(xiàn) 歡迎界面 運(yùn)行該游戲,首先進(jìn)入的將是歡迎界面,效果如圖 所示。此時(shí)應(yīng)該結(jié)束估值返回失敗的估值。而如果此時(shí)輪到黑方走棋,就應(yīng)該認(rèn)為受到的危險(xiǎn)很 大,應(yīng)減去一個(gè)相對(duì)較大的值了。 棋子關(guān)系的評(píng)估應(yīng)考慮到該誰(shuí)走棋的問(wèn)題。類如紅車的位置在黑馬的合法走法當(dāng)中,此時(shí)我們可以把紅車的價(jià)值減去一個(gè)值如 200 來(lái)刻畫這種情形。能控制更多位置的一方應(yīng)該在這項(xiàng)得分上 更多。在象棋中,如果一位置落在某方棋子的合法走不上,就可以認(rèn)為被該方控制。 mobility 就是所有棋子的靈活性分?jǐn)?shù)。評(píng)估棋子的靈活性較為簡(jiǎn)單,將一個(gè)棋子的所有合法的走法羅列出來(lái),稱上該種棋子每一可移動(dòng)的價(jià)值就行了。 ( 2) 棋子的靈活性與棋盤控制 棋子的靈活性是指棋子的活動(dòng)范圍,通常越大越好。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 27 如果紅色棋子的價(jià)值總和大于黑色的棋子價(jià)值總和,通常意味著紅方的局勢(shì)優(yōu)于黑方。一方的棋子總值就是棋盤上存活的該方棋子乘以棋子的價(jià)值的和。根據(jù)我們的經(jīng)驗(yàn),可以讓一個(gè)車的價(jià)值為 500,一個(gè)馬的價(jià)值為 300,一個(gè)兵的價(jià)值為 100等等。這一過(guò)程對(duì)具體的棋類知識(shí)的依賴程度很深,但是仍有一般性的規(guī)律可循。而加粗的這條路徑就是極大極小算法思考的過(guò)程。 可以用一個(gè)簡(jiǎn)化的博弈樹(shù)模型來(lái)表示(如圖 )所示: 在這棵樹(shù)中,矩形代表紅方,圓代表黑方,分別取子節(jié)點(diǎn)的極大 / 極小值。讓始終從紅方的角度來(lái)考慮。由于雙方交替出著 在博弈過(guò)程中,任何一方都希望自己取得勝利。最終也就組成了一顆博弈樹(shù) (如圖 )所示 。 (3) 任何一方在采取行動(dòng)前都要根據(jù)當(dāng)前的實(shí)際情況,進(jìn)行得失分析,選取對(duì)自已為最有利而對(duì)對(duì)方最為不利的走法,不存在擲骰子之類的 碰運(yùn)氣 因素。 搜索算法 中國(guó)象棋博弈為二人零和,全信息,非偶然博弈,他的特征如下: (1) 對(duì)弈的 MAX、 MIN 雙方輪流采取思考走棋,對(duì)弈的結(jié)果有三種情況:和局;MAX 方勝, MIN方敗 ; MIN 方勝, MAX 方敗。 對(duì)于每一層的著法數(shù),也就是當(dāng)前下棋方針對(duì)當(dāng)前局面的所有可選的合法著法,據(jù)有關(guān)數(shù)據(jù)統(tǒng)計(jì)在象棋實(shí)戰(zhàn)中一般最多情況下也就五六十種。搜索層數(shù)的增加會(huì)顯著提高電腦的下棋水平(當(dāng)然計(jì)算機(jī)的棋力在很大程度上也依賴于局面評(píng)估)。因此可以將著法隊(duì)列定義為二維數(shù)組 MoveList[10][100],其中第一個(gè)數(shù)組下標(biāo)為層數(shù),第二個(gè)數(shù)組下標(biāo)為每一層的全部著法數(shù)。 游戲人機(jī)會(huì)話的實(shí)現(xiàn) 著法的生成 在著法生成器中,采用的基本思想就是遍歷整個(gè)棋盤(一個(gè)接一個(gè)地查看棋盤上的每個(gè)位置點(diǎn)),當(dāng)發(fā)現(xiàn)有當(dāng)前下棋方的棋子時(shí)先判斷它是何種類型的棋子,然后根據(jù)其棋子類型而相應(yīng)地找出其所有合法著法并存入著法隊(duì)列。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 23 玩家走棋是通過(guò)對(duì)屏幕進(jìn)行監(jiān)聽(tīng),從而記錄棋子類型,原有位置坐標(biāo)和目標(biāo)位置坐標(biāo),通過(guò)調(diào)用規(guī)則類 GuiZe 中的 CanMove 判斷該 棋子走法是否可行符合棋子走棋規(guī)則,可行就改變?cè)形恢煤湍繕?biāo)位置數(shù)據(jù),達(dá)到行棋的目的 輪到走棋的一方,游戲界面當(dāng)前位置顯示走棋一方的“黑帥”或者“紅將”,將某個(gè)棋子從一個(gè)交叉點(diǎn)走到另一個(gè)交叉點(diǎn),或者吃掉對(duì)方的棋子而占領(lǐng)其交叉點(diǎn),這樣一方走棋結(jié)束當(dāng)前位置顯示改變輪到另一方走棋。 電腦走棋時(shí)通過(guò)構(gòu)造一個(gè)走法類 ChessMove , 創(chuàng) 建一 個(gè) 對(duì) 象 調(diào) 用NegamaxEngine 類中的 Search()函數(shù) 根據(jù)當(dāng)前局勢(shì)查詢一個(gè)最好的走法 記錄棋子的原有位置坐標(biāo)、目標(biāo)位置坐標(biāo)、棋子類型并對(duì)該對(duì)象進(jìn)行初始化。 棋盤上各種棋子以及棋盤的初始布局的設(shè)計(jì)采用 10*9 的數(shù)組來(lái)進(jìn)行標(biāo)識(shí),如下圖 所示 : 圖 棋盤初始布局 各個(gè)數(shù)字的對(duì)應(yīng)關(guān)系如下: 0無(wú)棋子; 1黑方的帥; 2黑方的車; 3黑方的馬; 4黑方的炮; 5黑方的士;6黑方的象; 7黑方的卒; 8紅方的將; 9紅方的車; 10紅方的馬; 11紅方的炮;12紅方的士; 13紅方的相; 14紅方的兵。 基于 Android技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的設(shè)計(jì)與實(shí)現(xiàn) 22 棋盤的表示 針對(duì)棋盤的設(shè)計(jì),每一種棋子對(duì)應(yīng)一個(gè)固定的值用以識(shí)別該棋子的類型,那么設(shè)計(jì)就根據(jù)紅黑雙方的棋子以及每個(gè)類型的棋子,設(shè)計(jì)規(guī)則類( GuiZe 類
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1