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

正文內容

基于j2me的藍牙中國象棋游戲的設計與實現(xiàn)-wenkub

2023-07-03 14:34:35 本頁面
 

【正文】 可以組成 MIDlet 套件,以 jar MIDlet 套件中的不同 MIDlet 能共享 jar 文件的資源. 當 MIDlet 被應用程序管理器成功的初始化之后, 就展開了它的生命周期. 24 圖 說明了 MIDlet 一個完整的生命周期. 10 圖 24 MIDlet 的生命周期 (3)持久性數(shù)據(jù)存儲 RMS MIDP 應用程序的標準持久化方案就是使用 類似于一個小型數(shù)據(jù)庫, Recordstore 相當于數(shù)據(jù)庫的表,每個表由若干記錄(Record)構成,一條記錄就 是一個用 int 表示的記錄號 RecordID 和用 byte[]表示的內容. 記錄號可以看作是 主 鍵 ,byte[] 提供的記錄操作可以實現(xiàn)根據(jù) ID 直接獲得記錄或者 結構如圖 25 所示. 圖 25 RMS 結構 (4)基于 的網(wǎng)絡(使用 CLDC 通用連接框架) 通用連接框架是在 CLDC 中定義的,MIDP 規(guī)范以標準 GCF 集成體系為基礎擴充, 定義了 HttpConnection, 有如下 幾個特性:基于接口設計,便于擴展,提供創(chuàng)建連接的上層方法,使用標準 URL 簡化 了 程 序 員 的 工 作 . GCF 在 中 進 行 了 擴 展 , 提 供 了 HttpConnection , HttpsConnection 接口,使 MIDlet 具備了通過 Http 或者 Https 協(xié)議與 server 通信 的 能 力 。//標明是什么棋子 public CHESSMANPOS From = new CHESSMANPOS()。 (2)針對某一局面進行評估. 走法生成 在走法生成器中,基本思想就是:掃描整個棋盤,當發(fā)現(xiàn)有當前下棋方的棋子 時先判斷它是何種類型的棋子,然后根據(jù)其棋子類型而相應地找出其所有合法走法 并存入走法隊列. 15 合法走法包括以下幾點: (1)各棋子按其行子規(guī)則走子. (2)走子不能越出棋盤的界限. (3)走子的半路上不能有子阻攔(炮吃子除外)以及走子的目的點不能有本方棋 子(不能自己吃自己) . (4)將帥不能碰面. 產(chǎn)生了走法后將其存入走法隊列以供搜索之用,由于會搜索多層(即考慮雙方 你來我往好幾步),所以在把走法存入走法隊列的時候還要同時存儲該走法所屬的搜 MoveList[8][80],其中第一個數(shù)組下 標為搜索層數(shù),第二個數(shù)組下標為每一層的全部走法數(shù). 關于搜索層數(shù),我將數(shù)組下標設定為 8,實際使用的是 2 到 會顯著提高引擎的下棋水平(當然計引擎的棋力在很大程度上也依賴于局面評估) . 在手機模擬器上最多只能搜索 4 層,再多將導致搜索時間達到令人無法容忍的地步. 對于每一層的走法數(shù),也就是當前下棋方針對當前局面的所有可選的合法走法, 為 80,應當可以保證十分的安全. 走法生成為搜索部分提供了原料 ,接下來的任務就交給搜索和局面評估了. 搜索算法 ,驅動著 (從某種角度上,它影響著 ,引擎必須在有限的時間內完成思考,搜索速度快意味著在 相同的時間內程序可以看得更遠, 想的更多) .關于棋類對弈程序中的搜索 算法,經(jīng)前人的努力已形成了非常成熟的 AlphaBeta 搜索算法以及其它一些輔助增 強算法(還有眾多基于 AlphaBeta 算法的派生,變種算法) .鑒于目前知識儲備, 時間,精力等均達不到推陳出新,另開爐灶的要求,再加之前人的算法著實已相當 完善,所以我在程序中直接借鑒了 AlphaBeta 搜索算法并輔以了歷史啟發(fā). 用一棵博弈樹 (一棵 n 叉樹)來表示下棋的過程——樹中每一個結點代表棋 盤上的一個局面,對每一個局面(結點)根據(jù)不同的走法又產(chǎn)生不同的局面(生出 新的結點) ,如此不斷直到再無可選擇的走法,即到達葉子結點(棋局結束) .中國 16 象棋的博弈樹的模型如圖 33 所示: 圖 33 象棋博弈樹 該樹包含三種類型的結點: (1)奇數(shù)層的中間結點(以及根結點) ,表示輪到紅方走棋。 //產(chǎn)生所有合法走法 while (MovesLeft()){ //遍歷所有走法 MakeMove ()。 if (val alpha) //保留最大值 alpha = val。同樣, 活性較為簡單,將一個棋子的所有合法走法羅列出來,乘上該種棋子每一可走步的 : Mobility=Sum(MoveNumber*MoveValue) 其中,MoveNumber 是某種棋子的合法走法數(shù)量,MoveValue 是該種棋子每一走法的 價值,Sum 就是所有棋子的靈活性分數(shù). ,如果某一位置落在 某方棋子的合法走步上, 法走步上,我們可以根據(jù)雙方控制該位置的棋子數(shù)量及棋子價值來決定孰優(yōu)孰劣. (3)棋子關系的評估 棋子間的關系也是估值的重要內容之一,我們可以將某個棋子被對方棋子威脅 ,此時我們可以把 ,紅馬同時也在紅卒的 合法走步之中,我們可以認為紅馬置于紅卒的保護之下,沒有受到威脅,價值不變. 之內,但此時輪到紅方走棋, 棋,就應認為紅馬受到的威脅很大,將被對 方威脅,且輪到對方走棋,那么無論有何種棋子可以走到將位都沒有意義,將 (通常是極大或極小值) . 4. J2ME 藍牙中國象棋的設計與實現(xiàn) 本章將詳細討論藍牙聯(lián)網(wǎng)游戲——中國象棋的具體設計與開發(fā)流程,包括系統(tǒng) 總體設計和系統(tǒng)詳細設計,并演示了系統(tǒng)的運行結果,給出了關鍵代碼. 系統(tǒng)總體設計 系統(tǒng)目標 中國象棋是一款家喻戶曉的游戲,不僅能豐富文化生活,陶冶情操,更有助于 開發(fā)智力,啟迪思維,鍛煉辨證分析能力和培養(yǎng)頑強的意志. 本文要實現(xiàn)以下功能: (1)實現(xiàn)人機對弈,包括正常下棋,悔棋,認輸?shù)? (2)實現(xiàn)游戲存檔,讀檔功能. (3)實現(xiàn)雙人聯(lián)網(wǎng)對弈,也包括正常下棋,悔棋,認輸?shù)? (4)實現(xiàn)聯(lián)網(wǎng)游戲過程中的聊天功能. (5)實現(xiàn)游戲音效的播放. 系統(tǒng)結構 系統(tǒng)結構圖如圖 41 所示: 圖 41 系統(tǒng)結構圖 界面模塊:負責與用戶交互,包括顯示和對用戶輸入的響應. 22 象棋引擎模塊:負責生成人工智能的象棋走法. 藍牙通信模塊:負責雙人游戲過程中的所有消息傳遞. 存儲模塊:負責存儲游戲設置和單人游戲時的游戲存檔. 音效模塊:負責根據(jù)游戲設置播放背景音效和下棋音效. 輔助模塊:用于顯示一些提示信息. 系統(tǒng)主要流程圖如圖 42 所示: 圖 42 系統(tǒng)主要流程圖 系統(tǒng)用例 43 所示: 圖 43 系統(tǒng)頂層用例圖 人機對弈用例圖 圖 44 人機對弈用例圖 要可以進行存檔,讀檔,悔棋,認輸,重新開局,和聲音播放等操作. 以下是用例描述: 表 41 人機對弈用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 人機對弈 玩家 玩家進入游戲界面 繼續(xù)下棋 玩家選擇要走的棋和棋要走到的位置 系統(tǒng)判斷走棋合法性 24 其他事件流 A1:走棋不合法 系統(tǒng)顯示玩家走棋后的棋盤 系統(tǒng)判斷未分出勝負 A2:已分出勝負 系統(tǒng)產(chǎn)生走法 系統(tǒng)顯示系統(tǒng)走棋后的棋盤 系統(tǒng)判斷未分出勝負 A3:已分出勝負 用例結束 A1:走棋不合法 玩家繼續(xù)選擇要走的棋和棋要走到的位置 系統(tǒng)判斷走棋直到合法 進入人機對弈主事件流第 3 步 A2,A3:已分出勝負 系統(tǒng)提示游戲結束,顯示游戲勝負結果 進入人機對弈主事件流第 8 步 表 42 存檔用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 存檔 玩家 玩家開始游戲,還未分出勝負,輪到玩家回合 保存成功 玩家選擇存檔命令 系統(tǒng)保存當前棋盤信息 系統(tǒng)提示存檔成功 用例結束 讀檔 玩家 玩家進入單機游戲界面 系統(tǒng)顯示存檔時的棋盤狀態(tài) 玩家選擇讀檔命令 系統(tǒng)顯示存檔時的棋盤狀態(tài) 用例結束 其他事件流 用例名稱 參與者 前置條件 后置條件 主事件流 其他事件流 表 44 讀檔用例描述 用例名稱 參與者 前置條件 后置條件 讀檔 玩家 玩家進入單機游戲界面 系統(tǒng)顯示存檔時的棋盤狀態(tài) 25 主事件流 玩家選擇讀檔命令 系統(tǒng)顯示存檔時的棋盤狀態(tài) 用例結束 其他事件流表 44 悔棋用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 悔棋 玩家 玩家進入游戲,還未分出勝負,輪到玩家回合 系統(tǒng)恢復玩家操作的上一步 玩家選擇悔棋 系統(tǒng)恢復玩家操作的上一步 用例結束 其他事件流表 45 認輸用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 認輸 玩家 玩家進入游戲,還未分出勝負,輪到玩家回合 系統(tǒng)顯示游戲結果 玩家選擇認輸 系統(tǒng)顯示游戲結束 用例結束 其他事件流 表 46 重新開局用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 重新開局 玩家 玩家進入游戲,分出勝負 開始新棋局 玩家選擇重新開局命令 系統(tǒng)顯示初始棋局,交換雙方棋子顏色 用例結束 其他事件流 雙人對弈用例圖 圖 45 雙人對弈用例圖 游戲雙方在聯(lián)網(wǎng)后可以進行雙人對弈,在對弈過程中可根據(jù)需要進行悔棋,認 輸,重新開局等操作,另外可以隨時發(fā)送聊天信息. 以下是用例描述: 表 47 雙人對弈用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 其他事件流 雙人對弈 玩家 進入雙人游戲界面 繼續(xù)下棋 玩家選擇要走的棋子和棋子要走到的位置 系統(tǒng)判斷走法合法 A1:走棋不合法 系統(tǒng)改變棋盤內容 系統(tǒng)判斷未分出勝負 A2:已分出勝負 系統(tǒng)發(fā)送走棋信息到對方端 系統(tǒng)收到對方發(fā)來的走棋信息 系統(tǒng)改變棋盤內容 系統(tǒng)判斷未分出勝負 A3:已分出勝負 用例結束 A1:走棋不合法 玩家繼續(xù)選擇要走的棋和棋要走到的位置 系統(tǒng)判斷直到走棋合法 進入雙人對弈主事件流第 3 步 27 A2,A3:已分出勝負 系統(tǒng)提示游戲結束,顯示勝負結果 系統(tǒng)發(fā)送走棋信息到對方端 進入雙人對弈主事件流第 9 步 表 48 悔棋用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 其他事件流 悔棋 玩家 進入游戲界面,游戲未分出勝負,玩家回合 繼續(xù)游戲 玩家選擇悔棋命令 系統(tǒng)發(fā)送悔棋命令到對方端 系統(tǒng)收到對方同意消息 A1:系統(tǒng)收到對方不同意消息 系統(tǒng)恢復玩家操作的上一步 繼續(xù)下棋 A1:系統(tǒng)收到對方不同意消息 系統(tǒng)提示對方不同意 進入對戰(zhàn)悔棋主事件流第 5 步 表 49 認輸用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 認輸 玩家 進入游戲,未分出勝負,玩家回合 游戲結束 玩家選擇認輸命令 系統(tǒng)提示游戲結束 系統(tǒng)顯示游戲戰(zhàn)果 系統(tǒng)發(fā)送認輸消息到對方端 用例結束 其他事件流 表 410 重新開局用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 重新開局 主機端玩家 主機端與客戶端已建立連接或游戲已分勝負 開始新棋局,交換雙方棋子顏色 主機端玩家選擇開始新棋局命令 系統(tǒng)發(fā)送開始命令到客戶端 客戶端返回確認消息 28 系統(tǒng)顯示游戲界面 用例結束 其他事件流 表 411 聊天用例描述 用例名稱 參與者 前置條件 后置條件 主事件流 其他事件流 聊天 玩家 進入游戲界面 繼續(xù)游戲 玩家選擇聊天 系統(tǒng)顯示信息輸入界面 玩家編輯信息并選擇發(fā)送命令 A1:玩家選擇取消發(fā)送 系統(tǒng)發(fā)送信息 系統(tǒng)回到游戲界面 A1:玩家選擇取消發(fā)送 (1)進入發(fā)送信息主事件流第 5 步 系統(tǒng)詳細設計 界面模塊 界面是整個游戲最重要的部分,通過繼承 Canvas 制和用戶交互(包括按鍵,指針和 Command 等)都由 Canvas 類是 低
點擊復制文檔內容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1