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

正文內(nèi)容

基于android平臺(tái)的中國(guó)象棋設(shè)計(jì)與實(shí)現(xiàn)碩士學(xué)位論文-資料下載頁(yè)

2025-07-02 11:47本頁(yè)面

【導(dǎo)讀】及取得的研究成果。據(jù)我所知,除了文中特別加以標(biāo)注和致謝的地方。獲得電子科技大學(xué)或其它教育機(jī)構(gòu)的學(xué)位或證書而使用過的材料。說明并表示謝意。的規(guī)定,有權(quán)保留并向國(guó)家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和磁盤,允許論文被查閱和借閱。等復(fù)制手段保存、匯編學(xué)位論文。開始獲得用戶的廣泛接受和良好的體驗(yàn)。作為移動(dòng)終端設(shè)備的數(shù)字信息產(chǎn)品己經(jīng)。從僅僅將通信作為唯一目標(biāo)的模式演變成了具有更多市場(chǎng)的移動(dòng)微型機(jī)平臺(tái)。息服務(wù)和信息資源。無處不在的移動(dòng)通信方式使得人們的工作方式、生活方式以。及交流方式產(chǎn)生巨大的影響。得以實(shí)現(xiàn),極大地豐富了用戶的文化生活。用戶在工作之余如乘坐公車、地鐵以。及候機(jī)等場(chǎng)合進(jìn)行一些有意義的娛樂活動(dòng)。通過無線網(wǎng)絡(luò),人們可以在更大的范。計(jì)和實(shí)現(xiàn)了中國(guó)象棋。本文主要完成了以下工作:。內(nèi)外開發(fā)手機(jī)網(wǎng)絡(luò)游戲的相關(guān)技術(shù),并深入研究和分析中國(guó)象棋搜索算法。描述和分析了系統(tǒng)各個(gè)模塊所使用到的類。

  

【正文】 oid 源碼之前,先要安裝其構(gòu)建工具 Repo 來初始化源碼。 Repo 是 Android 用來輔助 Git 工作的一個(gè)工具。 Android 游戲開發(fā)框架 Android 系統(tǒng)提供的一些組件和布局用來完成一些應(yīng)用程序的界面設(shè)計(jì),但如果 需要在 Android 平臺(tái)上完成游戲,這些組件還遠(yuǎn)遠(yuǎn)不能滿足其需求。在游戲的時(shí)候需要使用大量的美工資源圖片來構(gòu)成,因此單純地使用 Android 提供的 Layout方式來實(shí)現(xiàn)布局是非常受限制。 Android 提供了 View 和 SurfaceView 兩種框架用以實(shí)現(xiàn)用戶自定義視圖,游戲的整體結(jié)構(gòu)是通過 Activity 來實(shí)現(xiàn)的。通過 View 管理UI,繪制 UI 與處理 UI event,通過 XML 描述定義,也可以在代碼中生成。將 UI設(shè)計(jì)和邏輯分離 , android UI 設(shè)計(jì)類似 swing,通過布局組織 UI 組件。 游戲開發(fā)同樣遵 循 MVC 模式。也即業(yè)務(wù)邏輯和描述相互分開。 J2ME 的游戲都是以一種 ―狀態(tài)機(jī) ‖的形式來寫的,嵌套許多 CASE 語(yǔ)句,整體代碼非?;靵y,代碼可維護(hù)性也不強(qiáng)。因此使用 MVC 模式可以解決此問題。其基本思想為: ( 1)將原本繼承于 View 的 ―畫布 ‖單獨(dú)抽離出來做成一個(gè) UIManager,UIManager 只負(fù)責(zé)管理每一個(gè) UI,其本身不包含繪圖、邏輯處理等代碼,它更像是一個(gè)容器,裝有很多 UI 在里面,因此有了一種 ―層 ‖的概念。 ( 2)定義一個(gè) UI 接口,并定義下圖那些方法。讓其實(shí)現(xiàn)類去重寫繪圖、邏輯處理、按鍵事件處理、觸碰處 理等等方法。這樣不同的 UI 就有自己獨(dú)有的實(shí)現(xiàn)方式,從而將其與 ―畫布 ‖分離。避免一大堆代碼都寫在 ―畫布 ‖上,必須通過 case 來判斷游戲狀態(tài)的傳統(tǒng)方式。 ( 3)接下來是將游戲中每種狀態(tài)的 UI 都去實(shí)現(xiàn) UI 接口,并重寫相應(yīng)方法。當(dāng)游戲需要顯示某個(gè) UI 的時(shí)候,我們只需要將這個(gè) UI put進(jìn) UIManager的容器中,由 UIManager 來處理這個(gè) UI 相應(yīng)的邏輯 。 使用 MVC 模式具有以下幾個(gè)優(yōu)點(diǎn): ( 1)將游戲 UI 與 ―畫布 ‖相隔離,這樣有利于 UI 的管理,脫離傳統(tǒng)的 ―狀態(tài)機(jī) ‖電子科技大學(xué)碩士學(xué)位論文 14 機(jī)制。如果是團(tuán)隊(duì)開發(fā),就可以按功能模塊分工,減 少相互間的干擾。 ( 2) UI 與 UI 相互間有一種 ―層 ‖的概念,這樣使得切換將變得更加容易。比如在 RPG 游戲中,打開了角色背包,如果這時(shí)想要返回游戲,只需要將 UIManager最上層的 UI 從 ArrayList 中 remove 即可,當(dāng)需要再次顯示時(shí),可以 new 一個(gè)出來put 進(jìn) UIManager。 如果需要在這種模式上添加一些控件( EditText、 Button 等),就需要做一些特殊的處理。因?yàn)?Android UI 操作并不是線程安全的,并且這些操作必須在 UI 線程中執(zhí)行。可以用 ( Runnable )來處理,具體的這里不再闡述。 Android 數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)存儲(chǔ)是所有的應(yīng)用程序最基本的問題,每一個(gè)軟件都必須解決這一問題,數(shù)據(jù)必須以某種特定的方式保存,不會(huì)被丟失,同時(shí)還能夠簡(jiǎn)便、有效地使用和更新處理。然而,在 Android 平臺(tái)中采用了一種截然不同的系統(tǒng),其所有應(yīng)用程序數(shù)據(jù)皆為本應(yīng)用所私有。下面我們分別來學(xué)習(xí)各種存儲(chǔ)操作來解決這些疑問。 ( 1) SharedPreferences SharedPreferencesy 是一個(gè)輕量級(jí)別的鍵值存儲(chǔ)機(jī)制,其主要用于存儲(chǔ)類似于鍵值對(duì) 格 式的數(shù)據(jù),并且只可以存儲(chǔ)基本數(shù)據(jù)類型。 SharedPreferencesy 主要是通過鍵盤值對(duì)來存儲(chǔ)簡(jiǎn)單數(shù)據(jù),可以使用 SharedPreferencesy 的 get 方法來獲取鍵盤值數(shù)據(jù)的內(nèi)容,同時(shí)也可以通過 SharedPreferencesy 的 put 方法來實(shí)現(xiàn)鍵值數(shù)據(jù)的存儲(chǔ)。存儲(chǔ)的 SharedPreferencesy 是以 XML 文件的格式方式自動(dòng)保存的。 ( 2) 文件存儲(chǔ) 文件存儲(chǔ)是通過 java 語(yǔ)言中的輸入輸出流來對(duì)文件進(jìn)行操作的,然而在Android 中文件是屬于一個(gè)應(yīng)用程序所私有的,這樣一個(gè)應(yīng)用程序便無法讀寫其 他應(yīng)用程序的文件。 Android 操作系統(tǒng)中,可以在外接的存儲(chǔ)設(shè)備中或設(shè)備自身的存儲(chǔ)設(shè)備中,創(chuàng)建用于保存數(shù)據(jù)的文件,文件是不能在不同的程序之間共享的,我們?cè)?Android 中實(shí)現(xiàn)文件的操作都是使用 JAVA 中輸入輸出流的文件操作。在使用文件用于存儲(chǔ)數(shù)據(jù)時(shí),如果使用絕對(duì) PATH 來存儲(chǔ)文件,那么在其他應(yīng)用程序中一樣不能通過這個(gè)絕對(duì) PATH 來訪問和操作該文件。 ( 3) SQLite 存儲(chǔ) SQLite 是 Android 自身向外提供的一個(gè)標(biāo)準(zhǔn)小型數(shù)據(jù)庫(kù)。它是一個(gè)輕量級(jí)嵌入式數(shù)據(jù)庫(kù),支持 SQL 語(yǔ)法,它可以處理一些數(shù)據(jù)關(guān)系復(fù)雜, 需要長(zhǎng)期記錄的應(yīng)用第二章 Android 游戲開發(fā)關(guān)鍵技術(shù) 15 項(xiàng)目。我們可以使用 SQLiteDatabase 以及 SQLiteOpenHelper 來實(shí)現(xiàn)數(shù)據(jù)庫(kù)的創(chuàng)建、打開以及使用 (SQL 語(yǔ)法 )。 ( 4) ContentProvider ContentProvider 在所有應(yīng)用程序之間數(shù)據(jù)存儲(chǔ)和檢索中起到一個(gè)連接作用,其主要作用就是使得各個(gè)應(yīng)用程序之間實(shí)現(xiàn)數(shù)據(jù)共享。在 Android 操作系統(tǒng)中ContentProvider 是一個(gè)特殊存儲(chǔ)數(shù)據(jù)的類型,它提供了用來獲取、操作數(shù)據(jù)的標(biāo)準(zhǔn)接口。 Android 的應(yīng)用程序完成數(shù)據(jù)的共享可以通過實(shí)現(xiàn) ContentProvider 的接口來完成,利用接口將應(yīng)用程序中私有的數(shù)據(jù)暴露提供其他應(yīng)用程序來使用。如果需要提供其他應(yīng)用程序來使用我們的私有數(shù)據(jù),就必須要實(shí)現(xiàn) ContentProvider 接口中的方法,并生成讓外界的應(yīng)用程序來訪問數(shù)據(jù)的 URI。 ( 5) 網(wǎng)絡(luò)存儲(chǔ) 通過網(wǎng)絡(luò)資源來存儲(chǔ)和獲得存儲(chǔ)空間進(jìn)行數(shù)據(jù)存儲(chǔ)。通過網(wǎng)絡(luò)上提供的存儲(chǔ)空間來上傳數(shù)據(jù) (存儲(chǔ) )和下載數(shù)據(jù) (獲取 )存儲(chǔ)在網(wǎng)絡(luò)空間中的數(shù)據(jù)信息。 Android 網(wǎng)絡(luò)通信 Socket 通信模型 Socket 通信模型向下兼容同時(shí)與協(xié)議無關(guān),其通信能力可以使用任何底層 傳輸協(xié)議提供,來為上層應(yīng)用程序完成網(wǎng)絡(luò)數(shù)據(jù)通訊,而不關(guān)心底層網(wǎng)絡(luò)鏈路的通信情況,真正的實(shí)現(xiàn)了底層網(wǎng)絡(luò)通信對(duì)應(yīng)用程序的透明特性。 Socket 接口是 TCP/IP 網(wǎng)絡(luò)的 API,該接口定義了許多函數(shù)和例程,我們可以用其來開發(fā) TCP/IP 網(wǎng)絡(luò)上的應(yīng)用程序。 Socket 接口設(shè)計(jì)者最先是將接口放在 Unix操作系統(tǒng)里面的, Socket 是一種文件描述符,網(wǎng)絡(luò)的 Socket 數(shù)據(jù)傳輸是一種特殊的 I/O。 Socket 也具有一個(gè)類似于打開文件的函數(shù)調(diào)用 Socket(),該函數(shù)返回一個(gè)整型的 Socket 描述符,然后該 Socket 實(shí)現(xiàn)連接建立、數(shù)據(jù)傳輸?shù)玫焦δ?。常用的Socket 類型主要有兩種:數(shù)據(jù)報(bào)式 Socket( SOCK_DGRAM)和流式 Socket( SOCK_STREAM)。數(shù)據(jù)報(bào)式 Socket 是一種無連接的 Socket,提供無連接服務(wù),對(duì)應(yīng)于無連接的 UDP 服務(wù)應(yīng)用。數(shù)據(jù)包以獨(dú)立包形式發(fā)送,不提供無錯(cuò)保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂。流式是一種面向連接的 Socket,針對(duì)于面向連接的 TCP 服務(wù)應(yīng)用,提供面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無差錯(cuò)、無重復(fù)的發(fā)送,且按發(fā)送順序接收。 電子科技大學(xué)碩士學(xué)位論文 16 Android 網(wǎng)絡(luò)通信基礎(chǔ) Android 除了界面設(shè)計(jì)和強(qiáng)大的數(shù)據(jù)管理功能出色的外,其在網(wǎng)絡(luò)通信方面的應(yīng)用也十分優(yōu)秀。 Android 是基于 Linux 內(nèi)核,包含一組優(yōu)秀的聯(lián)網(wǎng)功能。當(dāng)前Android 平臺(tái)可以使用網(wǎng)絡(luò)接口有 3 種,分別是: .*(Android 網(wǎng)絡(luò)接口 )、.*(標(biāo)準(zhǔn) Java 接口 )和 (Apache 接口 )。 ( 1) Java 的標(biāo)準(zhǔn)接口: 包提供 4 種套接字: ServerSocket 是 TCP 服務(wù)器 API,通常接受 () 源于客戶端套接字的連接。而Socket 則是 TCP 客戶端 的 API,它在網(wǎng)絡(luò)中的主要作用通常用于將套接字((SocketAddress)) 連接到遠(yuǎn)程主機(jī)。 DatagramSocket 是 UDP 端點(diǎn)的 API,用于發(fā)送接收 。 MulticastSocket 在處理多播組時(shí)使用,它是 DatagramSocket 的子類。使用 TCP 套接字的發(fā)送和接收操作需要借助 InputStream 和 OutputStream 來 完 成 , 這 兩 者 是 通 過 和 方法獲取的。 ( 2) Apache 接口: Apache HttpClient 是一個(gè)開源項(xiàng)目, .* 有靈活性不足的缺點(diǎn),該接口也正彌補(bǔ)了該缺點(diǎn),為客戶端的 HTTP 的編程提供高效、最新、功能豐富的工具包支持。 Android 平臺(tái)不僅引入了 Apache HttpClient ,同時(shí)還提供了對(duì)它的一些封裝和擴(kuò)展,例如設(shè) 置缺省的 HTTP 超時(shí)和緩存大小等。早期的 Android 曾同時(shí)包括 Commons HttpClient ( .*) 和 HttpComponents ( .* ),不過當(dāng)前版本 () 中開發(fā)者只能使用后者,也就是說類似以下的一些類: 使用這部分接口的基本操作與 .* 基本類似。主要包括:設(shè)置連接參數(shù)、創(chuàng)建 HttpClient 以及 GetMethod / PostMethod, HttpRequest 等對(duì)象、執(zhí)行 HTTP 操作、處理服務(wù)器返回結(jié)果。 ( 3) Android 網(wǎng)絡(luò)接口: .*包實(shí)際上是一個(gè) HTTP 編程接口,它主要通過對(duì) Apache 中 HttpClient 的封裝來實(shí)現(xiàn)的,同時(shí)還提供了 HTTP 連接池管理以及 HTTP 請(qǐng)求隊(duì)列管理,從而提高了并發(fā)請(qǐng)求情況下的處理效率,此外,還有網(wǎng)絡(luò)訪問的 Socket、網(wǎng)絡(luò)狀態(tài)監(jiān)聽等接口、常用的 URL 類以及有關(guān) WiFi 相關(guān)的類等。 本章小結(jié) 本章主要介紹 在 Android 平臺(tái)下開發(fā)游戲所使用的 關(guān)鍵技術(shù) ,包括 系統(tǒng)架構(gòu) 、第二章 Android 游戲開發(fā)關(guān)鍵技術(shù) 17 游戲開發(fā)框 架 、 數(shù)據(jù)存儲(chǔ) 和 網(wǎng)絡(luò)通信 等。 電子科技大學(xué)碩士學(xué)位論文 18 第 三 章 計(jì)算機(jī)博弈實(shí)現(xiàn) 中國(guó)象棋計(jì)算機(jī)博弈程序主要由六個(gè)部分組成,分別是開局庫(kù)、殘局庫(kù)、象棋的數(shù)據(jù)結(jié)構(gòu)、招法生成、 搜索 引擎以及評(píng)估函數(shù) , 計(jì)算機(jī)博弈的研究非常廣泛并且還很深入 , 有人設(shè)想過利用計(jì)算機(jī)智能來實(shí)現(xiàn)計(jì)算機(jī)與人的對(duì)戰(zhàn) 早在上世紀(jì)五十年代 , 國(guó)內(nèi)外許多知名學(xué)者和知名科研機(jī)構(gòu)都曾經(jīng)涉足這方面的研究,歷經(jīng)半個(gè)多世紀(jì),到目前為止已經(jīng)取得了許多驚人的成就 , 1997 年 IBM 的 ―深藍(lán) ‖戰(zhàn)勝了國(guó)際象棋世界冠軍卡斯帕羅夫,驚動(dòng)了世界 , 同樣計(jì)算機(jī)博弈在中國(guó)象棋方面也有了很深入的研究 [9]。 機(jī)器博弈的基本思想 中國(guó)象棋博弈雙方任何時(shí)候都清楚彼此棋子的狀態(tài)和處于什么位置,它是一種完全知識(shí)博弈 , 其棋盤采用 10 行 9 列,共記 90 個(gè)交點(diǎn),在棋盤的中間有 ―楚河漢界 ‖, 雙方各有 7 種棋子總共 16 個(gè),每個(gè)棋子皆位于棋盤上的交叉點(diǎn)上,雙方棋子的顏色只有紅與黑兩種 , 比賽時(shí)雙方交替進(jìn)行走棋,取勝方式是看誰(shuí)先吃掉對(duì)方的 ―將 ‖或 ―帥 ‖[10]。 計(jì)算機(jī)博弈的核心思想是對(duì)博弈樹搜索過程和對(duì)博弈樹節(jié)點(diǎn)的估值過程的結(jié)合。在博弈過程中的任何一個(gè)階段,站在博弈雙方其中一方的立場(chǎng)上,可以構(gòu)想出一個(gè)博弈樹。該博弈樹的根節(jié)點(diǎn)是當(dāng)前時(shí)刻的 棋盤局面,它的子節(jié)點(diǎn)是假設(shè)再走一步棋以后的各種棋局,子節(jié)點(diǎn)的子節(jié)點(diǎn)是從子節(jié)點(diǎn)的棋盤局面再走一步棋的各種棋盤局面,以此類推,構(gòu)造整棵博弈樹,直到可以分出勝負(fù)或和棋的局面。整棵的博弈樹是相當(dāng)龐大的,再者,不同的棋類博弈樹是有所不同的 [1315]。 博弈算法的主要任務(wù)就是對(duì)博弈樹進(jìn)行搜索并找出對(duì)當(dāng)前局面來講決定出下一步最佳走位。對(duì)博弈樹進(jìn)行極大極小搜索,可以達(dá)到這一目的。之所以要進(jìn)行極大極小搜索,主要是因?yàn)椴┺牡碾p方共同目的是贏得對(duì)方,他們的目的正好相反,對(duì)一方有利的局面恰好對(duì)另一方是不利的,所以博弈的一方總是 希望下一步的走法是子節(jié)點(diǎn)中取值最大者,而另一方則剛好相反。如此一來便形成了極大極小這樣一個(gè)過程。 第三章 計(jì)算機(jī)博弈實(shí)現(xiàn) 19 圖 31 博弈樹示意圖 因?yàn)樵摬┺乃惴ú荒芡瑫r(shí)也沒有必要去搜索整棵博弈樹的所有節(jié)點(diǎn),對(duì)于一些已經(jīng)確定為不佳的走法可以將以它為根節(jié)點(diǎn)的子樹剪掉 , 搜索的深度只需要在一定深度范圍內(nèi)對(duì)局面進(jìn)行評(píng)價(jià)就已經(jīng)足夠了,而沒有必要深入到分出勝負(fù)的棋局 ,只有搜索空間縮小到一定程度,搜索才可以真正的進(jìn)行 , 當(dāng)搜索進(jìn)行到一定深度,用局面評(píng)價(jià)機(jī)制來評(píng)價(jià)棋局,按照極大極小的原則選出最優(yōu),依次網(wǎng)上推,便可給出這一局面的父親節(jié)點(diǎn)的價(jià)值評(píng) 價(jià),然后再繼續(xù)向上推,一直到根節(jié)點(diǎn),最優(yōu)走步就是這樣一步一步的搜索出來的 [1718]。 在搜索的 整個(gè) 過程中,搜索算法是最為重要的,高效率的搜索算法可以保證用最少的時(shí)間和空間損耗來達(dá)到尋找高價(jià)值的走步 , 但是真的想要博弈程序走出高質(zhì)量的走位,一個(gè)很好的局面評(píng)價(jià)機(jī)制是必不可少的,即以估值算法來作后盾 ,也就是說,用這個(gè)估值算法必須以客觀的、正確
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1