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

正文內(nèi)容

基于android的中國(guó)象棋的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-文庫(kù)吧資料

2024-09-04 15:38本頁(yè)面
  

【正文】 這個(gè)項(xiàng)目時(shí),就能多思考。我們小組在老師的協(xié)助下最終成功的完成實(shí)訓(xùn)項(xiàng)目。在這短暫的三周之內(nèi),有成功有失敗;有喜悅有心酸。 } 系統(tǒng) 流程圖 游戲流程圖 如圖 所示 圖 系統(tǒng)流程圖 菜單開(kāi)始游戲紅方走棋黑方是否被將死紅方勝利 黑方走棋結(jié)束游戲紅方是否被將死黑方勝利 20 5 運(yùn)行測(cè)試 測(cè)試 用例表 測(cè)試編號(hào) 測(cè)試目標(biāo) 期望結(jié)果 實(shí)際結(jié)果 001 測(cè)試象棋“馬”是否“絆馬腿” 游戲過(guò)程中,“馬”在絆馬腿情況下不能移動(dòng)。//睡眠四秒鐘,以便調(diào)試 } catch (InterruptedException e) {//捕獲異常 ()。 public ChessMove searchAGoodMove(int[][] qizi){//查詢一個(gè)好的走法 ListChessMove ret = allPossibleMoves(qizi)。 } .......... } } } 19 return () ? null : ret。 y++){//循環(huán)所有的棋牌位置 int chessman = qizi[x][y]。 x++){ for (int y = 0。//用來(lái)裝所有可能的走法 for (int x = 0。 游戲人機(jī)對(duì)戰(zhàn)的實(shí)現(xiàn) (1) 首先產(chǎn)生所有可能的走法,定義 一個(gè) ArrayList 容器,把可能的走法放入 ArrayList 容器里面。 玩家走棋是通過(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紅方的兵。 (2) 棋盤的表示 針對(duì)棋盤的設(shè)計(jì),每一種棋子對(duì)應(yīng)一個(gè)固定的值用以識(shí)別該棋子的類型,那么設(shè)計(jì)就根據(jù)紅黑雙方的棋子以及每個(gè)類型的棋子,設(shè)計(jì)規(guī)則類( GuiZe 類,調(diào)用其中的 canMove方法用以判斷某一步走棋的是否可行。 } if(((fromYtoY)+(toXfromX))1){//只能走一步 return false。 } break。 圖 將帥的走法 case 1://黑帥 if(toY2||toX3||toX5){//出了九宮格 return false。//相眼處有棋子 } break。//返回 false } if((fromXtoX) != 2 || (fromYtoY) != 2){//相走“田”字 16 return false。//相眼處有棋子 } break。 } if((fromXtoX) != 2 || (fromYtoY) != 2){//相走“田”字 return false。 15 象、相:只可以在己方 陣營(yíng)走動(dòng),且僅限于 7 個(gè)點(diǎn),即己方“田”字格上的 7 個(gè)點(diǎn),走的是斜線,走動(dòng)時(shí),起始點(diǎn)與目標(biāo)點(diǎn)構(gòu)成一條斜線,若該斜線的中點(diǎn)位置存在其他棋子,則被絆住無(wú)法走動(dòng)。//返回 false } } if(count!=1){ return false。jfromY。//返回 false } } if(count!=1){ return false。jtoY。 } } if(count!=1){ return false。ifromX。 } } if(count != 1){ return false。itoX。//返回 false } } } } } else{//吃子時(shí) int count=0。 j fromY。 j++){ if(qizi[j][fromX] != 0){ return false。//返回 false } } } } else{//豎線 if(fromY toY){//向下走 for(j = fromY + 1。 i fromX。 i++){ if(qizi[fromY][i] != 0){ return false。//返回 false } if(qizi[toY][toX] == 0){//不吃子時(shí) if(fromY == toY){//橫線 if(fromX toX){//想右走 for(i = fromX + 1。amp。炮吃子的條件是與目標(biāo)棋子在一條直線上,且兩子之間必須有且只有一個(gè)棋子作為“跳板 ”,讓炮進(jìn)行跳躍式攻擊。//絆馬腿 break。//移動(dòng) j=fromY1。//移動(dòng) j=fromY+1。//移動(dòng) j=fromY。//移動(dòng) j=fromY。 (toYfromY)==1))){ return false。 (toYfromY)==2) || ((toXfromX)==2 amp。 圖 馬的走法 紅黑馬規(guī)則走法的介紹: case 10://紅馬 case 3://黑馬 if(!(((toXfromX)==1 amp。 圖 游戲界面 10 中國(guó)象棋的規(guī)則及走法的實(shí)現(xiàn) (1) 行棋規(guī)則 中國(guó)象 棋分為紅黑雙方,以楚河漢界為分界線,雙方各執(zhí) 16 字,分別為 2 車 2 馬 2相 2 仕 2 炮 1 將 5 卒,各自走法不同,具體如下: 馬:只可以走“日”字方格,因此一匹馬的最理想落子點(diǎn)有 8 個(gè),但存在絆馬腿的情況,即從馬的位置到要走到的目標(biāo)位置,順著此方向,“日”字方格有兩個(gè)方向,即兩格長(zhǎng)度和一個(gè)長(zhǎng)度,馬緊挨的兩格長(zhǎng)度方向的位置不能有子,否則即被絆住,不能走動(dòng)?;蛘唿c(diǎn)擊退出按鈕也可結(jié)束游戲切換至菜單界面。 9 圖 菜單界面 游戲界面相關(guān)類的實(shí)現(xiàn) 游戲界面 GameView,該類是整個(gè)程序中最主要的類,該類首先是繪制屏幕上的內(nèi)容棋盤和對(duì)應(yīng)的棋子。 圖 游戲歡迎界面 MenuView類中通過(guò)監(jiān)聽(tīng)“開(kāi)始游戲”切換到游戲界面;通過(guò)監(jiān)聽(tīng)“打開(kāi)聲音” /“關(guān)閉聲音”進(jìn)行聲音的打開(kāi)與關(guān)閉,與此同時(shí)“打開(kāi)聲音”、“關(guān)閉聲音”按鈕進(jìn)行切換;通過(guò)監(jiān)聽(tīng)“幫助”來(lái)切換都幫助界面;通過(guò)監(jiān)聽(tīng)“退出游戲”結(jié)束游戲用行退出游戲。之間關(guān)系如圖 : 圖 類圖 8 共有類 ChessActivity 的實(shí)現(xiàn) 該類的主要作用是通過(guò)接受 Handler 消息變量,根據(jù)各個(gè)界面發(fā)送的 Handler消息的類型判斷所需要執(zhí)行的操作。 7 4 游戲 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 類框架的設(shè)計(jì) 通過(guò)對(duì)中國(guó)象棋游戲的了解,對(duì)基于 Android 技術(shù)的中國(guó)象棋人機(jī)對(duì)弈游戲的需求分析,游戲?qū)崿F(xiàn)的理解并結(jié)合自己對(duì)知識(shí)點(diǎn)所掌握的程度;對(duì)中國(guó)象棋游戲總體設(shè)計(jì),主要由三個(gè)類組成:共有類,輔助界面相關(guān)類,游戲界面相關(guān)類。程序需要讓計(jì)算機(jī)在輪到它走子的時(shí)候能夠執(zhí)行一步它認(rèn)為最有利的著法,而不是亂走;那么它就要有在諸多可供選擇的著法,提供所有候選著法的列表就是著法生成器所要完成的。 游戲走棋需求設(shè)計(jì)分析 進(jìn)入游戲界面,游戲提示當(dāng)前走棋為“帥”或者“將”,雙方 各走一著,直至分出勝負(fù)或者直接點(diǎn)擊退出結(jié)束游戲,輪到走棋的一方,將某個(gè)棋 子從一個(gè)交叉點(diǎn)走到另一個(gè)交叉點(diǎn),或者吃掉對(duì)方的棋子而占領(lǐng)其交叉點(diǎn),都算走一著,雙方各走一著即一個(gè)回合,吃子時(shí),任何棋子走動(dòng),如果目標(biāo)位置上有對(duì)方的棋子,就可以把對(duì)方的棋子拿出棋盤,即屏幕上消失在顯示自己的棋子。做好這些工作需要對(duì) Android 開(kāi)發(fā)平臺(tái)了解,并搭建平臺(tái);深入了解數(shù)據(jù)結(jié)構(gòu)、Android 應(yīng)用程序以及各種組件 (API)庫(kù)函數(shù)。本游戲設(shè)計(jì)無(wú)疑是模擬現(xiàn)實(shí)人人博弈,虛擬的替換了真實(shí)的棋子棋盤,由人來(lái)和電腦直接對(duì)弈;在一個(gè)人閑暇 時(shí)也可以體驗(yàn)博弈的樂(lè)趣。 中國(guó)象棋游戲是棋牌類游戲,體現(xiàn)的是一種策略。 安裝 Android Development Tool plugin,打開(kāi) Eclipse IDE。依次單擊 Menu 項(xiàng)中的windowsAndroid SDK Manager 項(xiàng),進(jìn)入 Android SDK Manager 界面選擇 Tool 和需要的Android 版本項(xiàng)進(jìn)行更新安裝。通過(guò) SDK 提供的一些工具將其打包成安卓平臺(tái)使用的 apk文件,然后在使用 SDK中的模擬器( Emulator)來(lái)模擬和測(cè)試軟件在安卓平臺(tái)運(yùn)行情況和效果。它不僅包括了安卓模擬器和用于 Eclipse 的安卓開(kāi)發(fā)工具插件( ADT),而且包括了各種用來(lái)調(diào)試,打包盒在模擬器上安裝應(yīng)用的工具。出現(xiàn)類似下面的畫(huà)面表示安裝成功了: 圖 JDK 測(cè)試 Eclipse 如果你還 沒(méi) 有 Eclipse 的話 ,從官網(wǎng)上下載 Eclipse IDE for Java Developers解壓之后即可使用。安裝完成之后,可以在檢查 JDK 是否安裝成功。 安裝 Eclipse 的開(kāi)發(fā)環(huán)境需要 JDK 的支持,如果沒(méi)有 JDK,則啟動(dòng) Eclipse 時(shí)會(huì)報(bào)告錯(cuò)誤。包括運(yùn)行環(huán)境 Java 工具和 Java 基礎(chǔ)類庫(kù)。自從 Java 推出以來(lái), JDK已經(jīng)成為使用最廣泛的 java SDK。對(duì)于游戲中的人機(jī)會(huì)話的要點(diǎn): a 某種在及其上表示棋 局的方法,讓程序知道會(huì)話的狀態(tài); b 產(chǎn)生合法的走棋法則,使得會(huì)話雙方公正,并可以判斷人類對(duì)手是否亂走; c 從所有和法定的走法中選擇最佳的走法的技術(shù); d 一種評(píng)估局面優(yōu)化的方法,同上面技術(shù)配合做出智能選擇; e 一個(gè)實(shí)現(xiàn)游戲的界面; 通過(guò)對(duì)游戲的設(shè)計(jì),來(lái)實(shí)現(xiàn)游戲中棋牌的表示,著法的生成,對(duì)著法的搜索,最后對(duì)局面的評(píng)估來(lái)實(shí)現(xiàn)中國(guó)象棋的人機(jī)會(huì)話。因此,對(duì)游戲開(kāi)發(fā)過(guò)程中的人工智能技術(shù)的研究自然也就成了業(yè)界的一個(gè)熱門研究方向。 3 本論文研究意義 中國(guó)象棋是一項(xiàng)智力和策略的游戲,以往都是人和人下棋,現(xiàn)在有了計(jì)算機(jī)我們可以和計(jì)算機(jī)競(jìng)技,人可以與計(jì)算機(jī)進(jìn)行對(duì)弈。它提供了核心系統(tǒng)服務(wù),如安全,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。 Android 的運(yùn)行環(huán)境包括一套核心庫(kù)和 Java 虛擬機(jī)( Dalvik 虛擬機(jī)),已經(jīng)由谷歌重新設(shè)計(jì)和優(yōu)化來(lái)適合 Android 平臺(tái)。 ? 活動(dòng)管理器可以管理應(yīng) 用程序的生命周期,并提供一個(gè)通用的后臺(tái)堆棧導(dǎo)航。 ? 資源管理器提供了訪問(wèn)的非編碼資源的途徑,如本地化的字符串,圖形,布局文件。 Android 應(yīng)用框架包括: ? 豐富及可擴(kuò)展性的視圖,可以用來(lái)建立一個(gè)美
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1