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

正文內(nèi)容

畢業(yè)論文-基于android系統(tǒng)的中國象棋手機(jī)游戲設(shè)計(jì)(參考版)

2025-06-07 21:12本頁面
  

【正文】 。 第 5章 結(jié)束語 30 第 5 章 結(jié)束語 后續(xù)研究展望 論文提出了 Android 平臺上中國象棋手機(jī)游戲 系統(tǒng)的軟件建模方法,并以模型為指導(dǎo)開發(fā)了 Chess 手機(jī)有機(jī)游戲 系統(tǒng),一定程度上驗(yàn)證了建模方法的正確性和構(gòu)建模型的有效性。 系統(tǒng)進(jìn)行棋盤數(shù)據(jù)模型的更新以及棋盤界面的重繪。 首先,判斷車是走縱線還是走橫線 ,以此確定需要 檢測 的是哪條走棋線路 ; 其次, 判斷車走的方向 ,以此確定 檢測的方向是從哪邊開始的 ; 然后, 在原點(diǎn) Y 和目標(biāo)點(diǎn) tgtY 之間共有 Y – tgtY 各交叉點(diǎn),檢查在這些交叉點(diǎn)上有沒有棋子,若有,則記錄棋子個(gè)數(shù) g; 最后根據(jù) 原點(diǎn)和目 標(biāo)點(diǎn)之間 棋子個(gè)數(shù) g 是否為 0 判斷車在原點(diǎn)和目標(biāo)點(diǎn)之間是否有棋子間隔 。 第 4 章 模塊的實(shí)現(xiàn) 29 圖 416 車的規(guī)則控制代碼 舉例說明下“車”的規(guī)則控制代碼,如圖 416 所示。 Chess 的網(wǎng)絡(luò)通信模塊使用第三方開源開發(fā)包 提供的 XMPP 接口進(jìn)行網(wǎng)絡(luò)部分的開發(fā),較好的實(shí)現(xiàn)了 XMPP 連接 的建立 , 狀態(tài)的改變控制 , 消 息的即時(shí)傳遞等 網(wǎng)絡(luò)數(shù)據(jù)的傳送。網(wǎng)關(guān)承擔(dān)著與異構(gòu)即時(shí)通信系統(tǒng)的互聯(lián)互通,異構(gòu)系統(tǒng)可以包括 SMS(短信), MSN, ICQ 等。通信能夠在這三者的任意兩個(gè)之間雙向發(fā)生。如此一來,任何 IM 供應(yīng)商在遵循 XMPP 協(xié)議的前提下,都可以隨時(shí)與 Google Talk 實(shí)現(xiàn)免費(fèi)第 4 章 模塊的實(shí)現(xiàn) 28 連接 [15]。 本系統(tǒng)采用開源的 XMPP 開源即時(shí)通信協(xié)議進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的傳輸。 圖 415 BoardView 中的畫面繪制函數(shù) 對弈過程中雙方棋盤上棋子的同步 當(dāng)是輪到己方走棋時(shí) :己方進(jìn)行一步合法的走棋后,將由 startGame 對局控制類將所走棋子的源位置和目標(biāo)位置通過信息收發(fā)類 XMPPClient 類把 m,n,sx,sy 發(fā)送給對方,對方收到這四個(gè)參數(shù)后,將改變棋盤模型數(shù)組中棋子編號的位置,并調(diào)用 boardView 類中的棋盤更新函數(shù) updateChessBoard()進(jìn)行棋盤畫面的重繪; 對方根據(jù)更新后棋盤模型數(shù)組由裁判函數(shù)判別他自己是否死棋; 若未分勝負(fù),則交換己方和對方的角色,繼續(xù)上面兩步的循環(huán),直到一方由裁判判負(fù)或選擇菜單中的“認(rèn)輸”、“求和”選項(xiàng)。至此,完成了一次重繪過程。 2) 棋盤、棋子的重繪: 本游戲 使用到 的 Android 平臺的 系統(tǒng) 2D 函數(shù)庫中的drawLine()、 drawCircle()、 drawText()三種線條繪制 、填充 方法。 圖 414 棋盤數(shù)學(xué)模型 當(dāng)棋子走動(dòng)時(shí),棋盤的數(shù)學(xué)模型里的各項(xiàng)數(shù)據(jù)隨之更新,模型里面的數(shù)據(jù)每一次的更新,都將使函數(shù)調(diào)用系統(tǒng) 2D 函數(shù)庫中的 invalidate()方法,此方法通知系統(tǒng)屏幕已過期無效,需重新取數(shù)據(jù)繪制屏幕。象棋一共 32個(gè)棋子,每個(gè)棋 子的代碼從 1 至 32 不等,棋盤網(wǎng)格線上沒有棋子的交叉點(diǎn)代碼為 0。 下面簡要介紹下 在本項(xiàng)目的開發(fā)中, 是如何構(gòu)建棋盤模型以及如何實(shí)現(xiàn)棋盤圖形的重繪。 本系統(tǒng)使用的是前一種圖像處理方式,系統(tǒng)棋盤棋子以及對局信息的繪制、棋盤的顯示更新等圖像處理部分主要使用了系統(tǒng) API 中的 .* 類庫 進(jìn)行處理 。兩種的主要是區(qū)別就是可以在 SurfaceView 中定義一個(gè)專門的線程來完成畫圖工作,應(yīng)用程序不需要等待 View 的刷圖,提高性能。 通過使用 Android 提供的 2D 畫圖 API,程序員能一筆一劃或者使用 Graphic來畫所需要的東西了,要畫什么要顯示什么都完全可控。 Chess 的 2D 圖像編程 本系統(tǒng)的 2D 圖像編程主要用于對局模塊中 棋盤、棋子、選擇框、提示信息等圖像元素的更新 。除了上面的三個(gè)屬性外,還有一些其他的屬性,如 Android:background=“ FF0000FF” ,設(shè)置框架的背景色, Androidrientation=“ vertical”用來設(shè)置這個(gè)框架里面的走向?qū)傩浴? Android 的界面 [1], 需要寫在 res/layout 的 xml 里面,一般情況下一個(gè) xml 對應(yīng)一個(gè)界面。 在項(xiàng)目的實(shí)現(xiàn)過程中: 和 兩個(gè)類都是通過調(diào)用 Android的 SQLiteOpenHelper 類對 SQLite數(shù)據(jù)庫進(jìn)行數(shù)據(jù)庫以及其中的數(shù)據(jù)進(jìn)行創(chuàng)建、修改和刪除。 在 Android 系統(tǒng),為我們提供了一個(gè)名為 SQLiteOpenHelper 的類,該類用于對數(shù)據(jù)庫版本進(jìn)行管理,該類是一個(gè)抽象類,必須繼承它才能使用。它是一個(gè)支持結(jié)構(gòu)化存儲、查詢輕量級開源數(shù)據(jù)庫。 圖 413 為 res 文件夾下 layout(界面布局資源)的文件組織結(jié)構(gòu)。 對局的棋盤界面以及菜單的設(shè)置顯示如圖 412 所示 。 用 戶對 局 界 面 顯 示 處理X M P P 客 戶 端 :聊 天 信 息 的 發(fā) 送與 接 收 處 理格 式 化 數(shù) 據(jù)格 式 化 數(shù) 據(jù)互 聯(lián) 網(wǎng)走 棋 信 息走 棋 數(shù) 據(jù)對 方 棋 子 移 動(dòng) 數(shù) 據(jù)棋 子 移 動(dòng) 信 息對 局 數(shù) 據(jù) 邏 輯 處理走 棋 數(shù) 據(jù)對 方 棋 子 移 動(dòng) 數(shù) 據(jù) 圖 410 走棋模塊數(shù)據(jù)流程圖 對弈過程中,可打開聊天框與對手進(jìn)行即時(shí)聊天。 用戶走棋,產(chǎn)生走棋信息,系統(tǒng)捕獲到按鍵事件或者觸摸屏事件后,會進(jìn)行數(shù)據(jù)的分類以及格式化,然后加密發(fā)送到對手的手機(jī)中。主要有以下子模塊: 1) startGame: 用來啟動(dòng)對局、網(wǎng)絡(luò)連接以及 對 各 局子模塊 進(jìn)行 協(xié)調(diào) ; 2) Umpire: 裁判類, 定義走棋規(guī)則, 用來控制走棋 的順序以及對弈雙方 的第 4 章 模塊的實(shí)現(xiàn) 23 同步, 判定對局的勝負(fù) ; 3) AnswerDialog: 回話類,回答對方的對局請求等信息 ; 4) ChatDialog: 對話聊天類,走棋的過程中,用來啟動(dòng)對話框以和對方進(jìn)行即時(shí)聊天 ; 5) RestorePoint:用來記錄游戲過程中的一定走棋記錄 ,創(chuàng)建還原點(diǎn) ,以方便悔棋時(shí),棋盤上棋子的回滾 ; 6) panyInfo: 用來顯示開發(fā)商信息以及用戶幫助信息的 UI 類 ; 7) ErrorDialog: 用來顯示游戲過程中出現(xiàn)的錯(cuò)誤信息 ; 8) ExitGameDialog: 用來結(jié)束游戲進(jìn)程,包括游戲相關(guān)的各線程 ; 9) : 第三方開 發(fā)包,提供 XMPP 服務(wù)接口 ,數(shù)據(jù)加密等功能 。另外,為保證數(shù)據(jù)在網(wǎng)絡(luò)間傳輸?shù)陌踩?,在手機(jī)發(fā)送信息至互聯(lián)網(wǎng)這一段使用了 類庫中的加密函數(shù)。配置信息的存儲數(shù)據(jù)流程圖如圖 48 所示。 圖 47 SettingsDialog 對話框輸入項(xiàng) 游戲連接配置對話框 各輸入項(xiàng)的詳細(xì)定義如表 43 所列。 系統(tǒng)在進(jìn)行聯(lián)網(wǎng)對局前,必須對網(wǎng)絡(luò)連接進(jìn)行有效的配置。 數(shù)據(jù)庫含有兩張表, scoreTable 表用來儲存對局的勝負(fù)信息,settingsTable 用來儲存 XMPP 網(wǎng)絡(luò)連接配置。Manager 類主要調(diào)用系統(tǒng) API 如 . * 或者 . * 進(jìn)行數(shù)據(jù)的存取。 Umpire 是裁判員類,主要用于判斷棋子走動(dòng)是否規(guī)則、對弈的勝負(fù)結(jié)果。 Manager 的 這兩個(gè)類有些 類似 JavaBean, 是 為 了 保證數(shù)據(jù)的安全、完整、一致,其他類必須通過數(shù)據(jù)庫 Manager 類才能 與 SQLite 數(shù)據(jù)庫進(jìn)行溝通,完成對數(shù)據(jù)的操作。 數(shù)據(jù)存儲模塊 數(shù)據(jù)存儲模塊有四個(gè)類,分為儲存 控制類和界面信息顯示 兩種,說明 如下:第 4 章 模塊的實(shí)現(xiàn) 19 類 SettingsDialog、 viewScore 用來做 用戶 UI 界面 輸入設(shè)置等信息的獲取 和查看、清除對局勝負(fù)情況 ;類 DataManager 與 SettingsManager 是數(shù)據(jù)管理類。 對弈流程控制主要作用為協(xié)調(diào)各對弈子模塊的通信與調(diào)用。 關(guān)于總體流程控制類 Chess, 如圖 44 所示,各類相關(guān)作用簡介如下: 負(fù)責(zé)啟動(dòng)游戲,控制協(xié)調(diào)各模塊的運(yùn)行; startGame:負(fù)責(zé)啟動(dòng)對局模塊以及對局時(shí)候各對局子模塊的相互協(xié)調(diào); SettingsDialog:負(fù)責(zé)游戲網(wǎng)絡(luò)配置的 UI 顯示以及數(shù)據(jù)獲取、數(shù)據(jù)儲存等; ViewScore:負(fù)責(zé)游戲勝負(fù)戰(zhàn)績的 UI 顯示以及管理功能; panyInfo:負(fù)責(zé)游戲開發(fā)商信息的顯示以及用戶幫助文檔的 UI 顯示;ExitGameDialog:負(fù)責(zé)結(jié)束游戲相關(guān)進(jìn)程、 線程,保存相關(guān)游戲數(shù)據(jù),安全退出游戲。 依據(jù)上一階段中 UML 設(shè)計(jì)出來的模型及相關(guān)的文檔,對系統(tǒng)的各類進(jìn)行細(xì)化后,得出系統(tǒng)各模塊的類以及各類之間的相互關(guān)聯(lián) 關(guān)系。 Chess: 用于控制各子模塊 ( Activity) 的啟動(dòng)、休眠以及消亡 ; 例 如 , 當(dāng) 用 戶 按 下 “ 開 始 游 戲 ” 按 鈕 時(shí) , startGame 內(nèi) 置 的 監(jiān) 聽 器 將獲取 onClick 事件并調(diào)用 showStartGame()函數(shù),啟動(dòng)對弈相關(guān)的模塊。在引入了體系結(jié)構(gòu)的軟件開發(fā)之后, Chess 中國象棋手機(jī)游戲 系統(tǒng)的構(gòu)造過程變?yōu)椤皢栴}定義 — 軟件需求 — 軟件體系結(jié)構(gòu)設(shè)計(jì) — 軟件詳細(xì)設(shè)計(jì) — 軟件實(shí)現(xiàn)”。 系統(tǒng)的項(xiàng)目文件組織結(jié)構(gòu)如 圖 43 所示,其中 : 源代碼包中的 View 類和 Dialog 類以及 res 資源文件夾中的所有 XML 文件,充當(dāng)視圖的角色,負(fù)責(zé)手機(jī)界面的顯示和與用戶的交互; Chess,startGame 兩個(gè)類充當(dāng)“C”的角色,重要控制程序界面的切換和信息的分發(fā);BoardView,Umpire,XMPPClient 分別是棋盤類、裁判類、信息收發(fā)類,充當(dāng)模型的角色,分別負(fù)責(zé)棋盤模型的顯示與更新、裁判對象模型的建立、即時(shí)信息通信模型的建立; DataManager,SettingsManager 兩個(gè)類負(fù)責(zé)與 SQLite 數(shù)據(jù)庫的溝 通,分別負(fù)責(zé)戰(zhàn)績勝負(fù)次數(shù)、 XMPP 聯(lián)接設(shè)置的數(shù)據(jù)存取。 ( 8)設(shè)計(jì)建模的評審。 ( 6)數(shù)據(jù)模型的 設(shè)計(jì)。 ( 4)構(gòu)造設(shè)計(jì)類圖模型。 ( 2)設(shè)計(jì)邊界類的功能組成和操作。 詳細(xì)設(shè)計(jì)中首先要詳細(xì)描述每一個(gè)類,包括類的屬性、操作、類之間的關(guān)系,同時(shí)對系統(tǒng)用例進(jìn)行設(shè)計(jì)。 ( 2)體系結(jié)構(gòu)的子系統(tǒng)劃分。 MVC 分層結(jié)構(gòu) 在 Chess 系統(tǒng)的設(shè)計(jì)建模階段,是回 答如何實(shí)現(xiàn)系統(tǒng)功能的問題,主要完成軟件體系結(jié)構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)方面的工作。當(dāng)有緊急事 件(如電話打入,電池沒電等)發(fā)生時(shí),需全局模塊對當(dāng)前的游戲狀態(tài)進(jìn)行保存或退出等處理,并發(fā)送相關(guān)信息給對局的伙伴;用戶通過觸摸屏進(jìn)行走棋,棋子的走動(dòng)規(guī)則由軟件進(jìn)行智能規(guī)則判斷;對局結(jié)束,軟件將對對局的過程及結(jié)果使用與國際接軌的棋譜記錄格式第 4 章 模塊的實(shí)現(xiàn) 16 ( PGN, FEN)進(jìn)行記錄,在對局結(jié)束后,用戶可用軟件讀入 PGN 格式的對局過程文件,進(jìn)行戰(zhàn)局的回放。人工智能程序設(shè)計(jì)是一項(xiàng)對算法要求很高的程序設(shè)計(jì),特別是在手機(jī)這種硬件資源緊缺的環(huán)境中,更是需要一個(gè)高效的算法來提供強(qiáng)大的 AI 對局支持。 第三部分是對局智能程序的設(shè)計(jì)。 3G 時(shí)代,手機(jī)通信受流量的限制很大,所以必須盡可能的使用簡潔的通信協(xié)議,減少數(shù)據(jù)的流量,減少用戶的通訊資費(fèi) ;再者,雙人對局這樣的在線游戲,必須體現(xiàn)其即時(shí)性,在一方因?yàn)殡娫挻蛉牖蚱渌驅(qū)е掠螒驋炱鸹虻艟€時(shí),另一方能及時(shí)得知道對方的狀態(tài),以便做出處理。和 PC 上的游戲開發(fā)有些許不同,手機(jī)游戲更加的注重用戶體驗(yàn),一個(gè)人性化的、時(shí)尚靚麗的游戲界面和優(yōu)美個(gè)性化的音效設(shè)計(jì)是一個(gè)成功的手機(jī)游戲要達(dá)到的基本要求。 圖 41 Chess 的項(xiàng)目開發(fā)流程 項(xiàng)目 要實(shí)現(xiàn)的模塊 主要有四 部分 。 在 Chess 手機(jī)游戲 系統(tǒng)的軟件設(shè)計(jì)建模階段,主要是以需求分析階段的成果(需求分析模型)作為輸入,進(jìn)行系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)、類的詳細(xì)設(shè)計(jì)和 用例實(shí)現(xiàn)設(shè)計(jì)。 u s e r s e t t i n g s D i a l o g W i n d o w sS Q L i t e D a t a b a s ev i e w s e t t i n g sq u e r y s e t t i n g s d a t as e t t i n g s d a t ai n p u t s e t t i n g su p d a t e s e t t i n g s d a t a 圖 39 Setting 用例的順序圖 游戲?qū)钟美?startGame 涉及到相關(guān)的類較多 ,如圖 310 所示: 一、 用戶按下開始游戲鍵,系統(tǒng)提示是否要聯(lián)網(wǎng) 游戲,用戶確認(rèn)“是”后,系統(tǒng)讀取 XMPP 配置信息建立手機(jī)到服務(wù)器端的網(wǎng)絡(luò)連接 ;若第 3 章 系統(tǒng)的分析與實(shí)現(xiàn) 14 用戶確認(rèn)“否”,則系統(tǒng)退回到游戲主界面(此時(shí)系統(tǒng)未連上互聯(lián)網(wǎng)); 二、 用戶 選擇聊天菜單 , startGame 進(jìn)行相應(yīng)的邏輯處理 ,啟動(dòng)聊天對話框; 用戶輸入聊天信息,按下發(fā)送按鈕,消息發(fā)送到對方的服務(wù)器帳號,與此同時(shí),在用戶自己的聊天記錄單里面顯示; 三、 用戶 進(jìn)行 走動(dòng)棋子 或者悔棋 等 請求信息 , startGame 接收到按鍵事件或者觸摸屏事件后, 將相應(yīng)的信息轉(zhuǎn)交
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1