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

正文內(nèi)容

基于android技術的中國象棋人機對弈游戲的設計與實現(xiàn)畢業(yè)設計論文(參考版)

2024-09-01 19:53本頁面
  

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