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

正文內(nèi)容

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

2025-06-23 21:12本頁面
  

【正文】 Manager 類,用于聊天的 chatDialog 窗體類,走棋、棋盤同步更新模塊的類、請求回復(fù)窗體類等。 下面就 DataManager()函數(shù)簡要介紹一個數(shù)據(jù)管理類是怎樣實(shí)現(xiàn)的 : 1) 變量設(shè)置: 管理類中有屬性為 private 的變量,存取都必須通過函數(shù)內(nèi)置的 get、 set 函數(shù)進(jìn)行; 2) 判斷表是否存在: 管理數(shù)據(jù),必須先是有你需要管理的表,isScoreTable()函數(shù) 通過系統(tǒng) API 中的 query()函 數(shù) 對系統(tǒng)表 sysobject進(jìn)行查詢, 若系統(tǒng)表中沒有所要查找的對象,則需建立 scoreTable 表; 3) 表的創(chuàng)建與刪除、記錄的添刪修:數(shù)據(jù)的存取都是通過系統(tǒng) API 接口中的 execSQL()函數(shù)來完成的,例如:當(dāng)需要刪除 scoreTable 這張表,語句為 (sql), db 為所要操作的數(shù)據(jù)庫的句柄, sql 為所要執(zhí)行的語句。 實(shí)踐編程難點(diǎn)在類 Umpire、 Manager,由分析設(shè)計的結(jié)果生成各模塊的詳細(xì)編碼單元以及各類的模型。系統(tǒng)源碼包中,帶 Manager 后綴的都是屬于數(shù)據(jù)管理相關(guān)類。 如圖 46 所示,各類作用相關(guān)作用如下: 圖 46 查看戰(zhàn)績、連接設(shè)置以及走棋模塊的類圖 第 4 章 模塊的實(shí)現(xiàn) 20 本程序采用輕量級數(shù)據(jù)庫 SQLite[3]存儲管理數(shù)據(jù),數(shù)據(jù)庫名稱為 。 表 41 scoreTable存儲對局的勝負(fù)信息: 字段 含義 數(shù)據(jù)類型 是否為空 初始值 id 記錄的編號 Int 否 0 winning 獲勝次數(shù) Int 否 0 falling 失敗次數(shù) Int 否 0 peace 平局次數(shù) Int 否 0 表 42 settingsTable 存儲 XMPP的連接設(shè)置: 字段 含義 數(shù)據(jù)類型 是否為空 初始值 id( PK) 記錄的編號 Int 否 0 host 服務(wù)器地址 String 否 port 服務(wù)器端口 Int 否 5222 service Jabber服務(wù)提供商 String 否 partnerID 對手 gmail帳號 String 否 userID 用戶 gmail帳號 String 否 userPWD 用戶密碼 String 是 123456 數(shù)據(jù)傳輸模塊 數(shù)據(jù)傳輸模塊有兩個類, 很多算法及技術(shù)難點(diǎn) 都需要用到第三方開發(fā)包第 4 章 模塊的實(shí)現(xiàn) 21 中的 XMPP 組件 及其 API 完成 [9],模塊說明如下: ConnectDialog 用來連接 或者斷開 XMPP 網(wǎng)絡(luò) 連接 , 當(dāng)連接上服務(wù)器后, 啟動對局模塊 ,進(jìn)行游戲; XMPPClite 接受 startGame 模塊轉(zhuǎn)交過來的數(shù)據(jù),在信息分類、格式化、加密后,發(fā)送給網(wǎng)絡(luò)中的 jabber 服務(wù)器; 同時,監(jiān)聽服務(wù)器發(fā)送過來的 Chess 格式化數(shù)據(jù),解密、解包分類后轉(zhuǎn)交給 startGame 模塊;另外, 也監(jiān) 聽對手的在線狀態(tài)等信息,以便在發(fā)生突發(fā)情況時進(jìn)行相應(yīng)的處理,從而真正的達(dá)到即時游戲的效果。 游戲 的網(wǎng)絡(luò)連接配置 UI 界面 以及各配置項的說明 如圖 47 及表 43 所示 , 配置信息的 數(shù)據(jù) 存儲 流程圖如圖 47 所示。 表 43 XMPP設(shè)置界面各項目詳細(xì)定義 標(biāo)識 名稱 數(shù)據(jù)類型 數(shù)據(jù)值有效范圍 輸入媒體 安全保密條件 UserID 用戶 Gmail帳號 String SettingsDialog SQLite限制訪問 Password 用戶密碼 String * SettingsDialog SQLite限制訪問、 MD5加密 PartnerID 對方 Gmail帳號 String SettingsDialog SQLite限制訪問 第 4 章 模塊的實(shí)現(xiàn) 22 Host 提供 IM服務(wù)的主機(jī) String . SettingsDialog SQLite限制訪問 Port 提供 IM服務(wù)主機(jī)的端口號 Int 5222 SettingsDialog SQLite限制訪問 Service 所用的服務(wù)類型 String SettingsDialog SQLite限制訪問 系統(tǒng)使用 SQLite 數(shù)據(jù)庫,若無游戲配置信息或者配置信息無效,系統(tǒng)將提示進(jìn)行正確的網(wǎng)絡(luò)連接配置,并對正確的配置進(jìn)行存儲。 用 戶X M P P 設(shè) 置 處 理S Q L i t e數(shù) 據(jù) 庫輸 入 數(shù) 據(jù)存 入 數(shù) 據(jù)查 看 數(shù) 據(jù)讀 取 數(shù) 據(jù) 圖 48 XMPP 網(wǎng)絡(luò)連接設(shè)置數(shù)據(jù)流程圖 為保證用戶手機(jī)之間數(shù)據(jù)傳輸中各類數(shù)據(jù)的區(qū)分,系統(tǒng)在數(shù)據(jù)發(fā)送前需對各類數(shù) 據(jù)信息進(jìn)行一定的格式化,待數(shù)據(jù)信息到達(dá)對方的手機(jī)后,系統(tǒng)再進(jìn)行相應(yīng)的解包。 用 戶聊 天 對 話 框 : 聊天 信 息 的 輸 入 與顯 示 處 理X M P P 客 戶 端 :聊 天 信 息 的 發(fā) 送與 接 收 處 理格 式 化 數(shù) 據(jù)格 式 化 數(shù) 據(jù)互 聯(lián) 網(wǎng)輸 入 信 息未 格 式 化 聊 天 信 息解 包 后 的 聊 天 信 息顯 示 信 息 圖 49 Chat 聊天模塊數(shù)據(jù)流程圖 對局 模塊 對局模塊是本系統(tǒng)設(shè)計編碼中較復(fù)雜,內(nèi)容比較多的一個模塊。 對局模塊主要處理的是用戶之間對弈的過程同步、規(guī)則控制等信息。 在接收到對手發(fā)來的走棋信息時,系統(tǒng)則先通過 類庫進(jìn)行解密,然后解包,進(jìn)行走棋信息的邏輯處理,最后通過界面顯示類呈現(xiàn)于用戶的手機(jī)屏幕。 聊天框如圖 411 所示。 圖 411 chatDialog 對話框輸入項 圖 412 startGame 對弈界面 第 4 章 模塊的實(shí)現(xiàn) 24 XML 界面布局模塊 Chess 系統(tǒng)使用 XML 進(jìn)行游戲界面的基礎(chǔ)布局 [1],主要有以下布局界面 ,各界面的布局內(nèi)容以及與各 Java 類的映射關(guān)系為: 1) : 回復(fù)對話框 的界面布局 ; 2) :聊天對話框的界面布局; 3) :顯示開發(fā) 商信息以及用戶幫助文件; 4) :錯誤信息提示框布局; 5) :退出游戲提示框; 6) :游戲主界面布局; 7) :游戲 XMPP 連接配置界面布局; 8) :游戲?qū)纸缑娌季郑? 9) :確認(rèn)進(jìn)行網(wǎng)絡(luò)連接對話框布局; 10) :確認(rèn)回復(fù)對方請求的對話框布局; 11) :查看戰(zhàn)績界面布局。 圖 413 XML 界面布局文件 系統(tǒng)中關(guān)鍵技術(shù)的 應(yīng)用及 實(shí)現(xiàn) SQLite3 的應(yīng)用 SQLite 是集成在 Android 平臺上的嵌入式關(guān)系型數(shù)據(jù)庫。 SQLite3 支持的數(shù)據(jù)類型有 NULL、 INTEGER、第 4 章 模塊的實(shí)現(xiàn) 25 REAL(浮點(diǎn)數(shù)字 )、 TEXT(字符串文本 )和 BLOB(二進(jìn)制對象 )數(shù)據(jù)類型,雖然它支持的類型雖然只有五種,但實(shí)際上 sqlite3 也接受 varchar(n)、 char(n)、 decimal(p,s)等數(shù)據(jù)類型,只不過在運(yùn)算或保存時會轉(zhuǎn)成對應(yīng)的五 種數(shù)據(jù)類型。 為了實(shí)現(xiàn)對數(shù)據(jù)庫版本進(jìn)行管理, SQLiteOpenHelper 類有兩種重要的方法,分別是 onCreate(SQLiteDatabasedb)和 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)。 XML 界面設(shè)計 在本系統(tǒng) 的 軟件設(shè)計開發(fā)過程中, xml 的布局是最先開始的。做 Android 的界面有點(diǎn)像寫 html(連注釋代碼的方式都一樣 ),要先給 Android 定框架,然后再在框架里面放控件, Android 提供了幾種框架 ,AbsoluteLayout,LinearLayout,RelativeLayout,TableLayout,FrameLayout,FrameLayout:里面只可以有一個控件,并且不能設(shè)計這個控件的位置,控件會放到左上角 LinearLayout:里面可以放多個控件,但是一行只能放一個控件 TableLayout:這個要和 TableRow 配合使用,很像 html 里面的 table AbsoluteLayout:里面可以放多個控件,并且可以自己定義控件的 x,y 的位置 RelativeLayout:里面可以放多個控件,不過控件的位置都是 相對位置 (界面的布局好像還可以直接引用一些 view,如 ScrollView 等 )框架的 xml 如下: Android:id=+id/widget36 Android:layout_width=fill_parent Android:layout_height=fill_parent 上面代碼中以 Android:開頭,表示控件的屬性, fill_parent 是系統(tǒng)自帶參數(shù),表示最大的寬或高,還有一個 wrap_content,表示剛好合適的寬或高。 框架弄好,就可以 在 里面添加 控件了,控件的基本寫法也和框架一樣,后面用到的時候?qū)?具體研究各個控件的細(xì)節(jié)。 SGL 編程是本系統(tǒng)設(shè)計中的難點(diǎn),在系統(tǒng)的開發(fā)過程中主要使用了 Android第 4 章 模塊的實(shí)現(xiàn) 26 系統(tǒng)類庫中的 2D 圖形庫接口 [2],達(dá)到了預(yù)期的 效果,實(shí)現(xiàn)了項目的目標(biāo)。這種方式根據(jù)環(huán)境還分為兩種:一種就是使用普通 View 的 canvas 畫圖,還有一種就是使用專門的SurfaceView 的 canvas 來畫圖。前面一種適合處理量比較小,幀率比較小的動畫,比如說象棋游戲之類的;而后一種主要用在游戲, 高品質(zhì)動畫方面的畫圖。 在本項目中, BoardView 類主要是做 棋盤模型的構(gòu)建、更行以及 圖像方面的處理 工作 。 1) 模型構(gòu)建: 棋盤的模型實(shí)際上是一個 int[10][9]的二維數(shù)組, 二維數(shù)組中每一個數(shù)值代表棋盤上相應(yīng)十行九列交叉點(diǎn)上的棋子代碼 。 對弈模塊初次啟動或者對弈完一局后,將進(jìn)行棋盤的數(shù)學(xué)模型以及手機(jī)屏幕上棋盤、棋子的初始化,初始化后的棋盤數(shù)學(xué)模型如圖414 所示。系統(tǒng)取更新后的棋盤模型中的數(shù)據(jù),并調(diào)用相關(guān)方法把棋盤重新繪制出來。 第 4 章 模塊的實(shí)現(xiàn) 27 一個棋盤數(shù)學(xué)模型的圖像繪制過程是這樣的:設(shè)置桌布底色、在桌布上繪制黑色 十行九列的橫線和縱線 以及棋盤邊框 、 在四個炮的初始點(diǎn) 繪制 十字架 以及“楚河漢界”字樣、 根據(jù)棋盤數(shù)學(xué)模型在棋盤上相應(yīng)位置 繪制棋子 圓圈 并填充 黑色或者紅色 、 根據(jù)棋盤數(shù)學(xué)模型中棋子的代碼繪制出棋子上相應(yīng)的中文文字 、根據(jù)觸摸屏返回的擇點(diǎn)所屬區(qū)域繪制棋子選擇框 。每一次數(shù)學(xué)模型的改動,都將使系統(tǒng)進(jìn) 行一次棋盤、棋子的重繪。 XMPP 數(shù)據(jù)傳輸 XMPP(可擴(kuò)展消息處理現(xiàn)場協(xié)議)是基于可擴(kuò)展標(biāo)記語言( XML)的協(xié)議,它用于即時消息( IM)以及在線現(xiàn)場探測, 最終要實(shí)現(xiàn)不同即時通信系統(tǒng)間的互通 [5]。 Google Talk 是基于 XMPP 協(xié)議,而且它還允許其它 IM 自由使用 XMPP 協(xié)議。 XMPP 中定義了三個角色,客戶端,服務(wù)器,網(wǎng)關(guān)。服務(wù)器同時承擔(dān)了客戶端信息記錄,連接管理和信息的路由功能?;镜木W(wǎng)絡(luò)形式是單客戶端通過 TCP/IP 連接到單服務(wù)器,然后在之上傳輸 XML。 走棋規(guī)則的 判斷 “棋子選擇框”(或稱選擇域)是以棋盤上每條橫線和豎線的交點(diǎn)為中心,并以棋子的直徑為邊長的正方形,一般情況下,棋子選擇框顏色為綠色,當(dāng)選定己方棋子時,棋子選擇框變?yōu)樗{(lán)色; 選定每個選擇域的時候, startGame 里的 onTouch()函數(shù)將返回選擇域的中心點(diǎn)作為域的代表點(diǎn); 根據(jù)返回的代表點(diǎn)和棋盤基點(diǎn)(棋盤最左上角點(diǎn),可確定棋盤在手機(jī)屏幕上的位置),可以算出該代表點(diǎn)是棋盤模型數(shù)組 int[10][9]中的哪個元素(十行九列的整形數(shù)組記錄了棋盤上每個橫豎 交叉點(diǎn)是否有棋子,有的話,記錄棋子編號,沒有記錄為 0); 走一步棋,需有選定棋子的源位置和目標(biāo)位置,分別記錄為 m,n,sx,sy; 根據(jù)選定的棋子的源 m,n 可在棋盤模型數(shù)組中查處其為哪類哪個棋子,根據(jù)棋子的類別,由 Umpire 裁判類判斷走棋是否合法,合法則允許走棋; 例如,如果選定了“車”,并且選擇了目標(biāo)位置,則系統(tǒng)將調(diào)用裁判函數(shù)中車的走棋規(guī)則函數(shù),進(jìn)行走棋合法性的判別,走棋合法時,將執(zhí)行走棋函數(shù),改變該棋子編號在棋盤模型數(shù)組中的位置; 對方每走一步,裁判對象根據(jù)對方傳過來的參數(shù) m,n,sx,sy 會對對局的 勝負(fù)進(jìn)行判斷,當(dāng)某方將或帥被吃,或無路可走的時候,即判定該方為負(fù)。 走一步棋,需要有一個原點(diǎn) (X, Y)和目標(biāo)點(diǎn) (tgtX, tgtY)。 若有棋子間隔,則 theRuleOfChe()函數(shù)返回 fault,系統(tǒng)判定這步棋不能走;若間隔數(shù) g 為 0,則規(guī)則函數(shù)返回 true。 至此,完成了“車”這個對象的一步走棋。根據(jù)目前的研究進(jìn)展,未來 的研究工作將從以下幾個方面進(jìn)一步加強(qiáng): ( 1) 手機(jī)游戲 系統(tǒng)模型的進(jìn)一步改進(jìn),包括 RUP 在 對局控制模塊、網(wǎng)絡(luò)信息傳輸模塊 上的應(yīng)用及模型的進(jìn)一步細(xì)化和完善,使模型在迭代、循環(huán)、重復(fù)的過程中不斷改進(jìn)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1