【文章內(nèi)容簡(jiǎn)介】
ava 開發(fā)工具JDK。被應(yīng)用最多的 Java SDK 就是 JDK 了。Java 的運(yùn)行環(huán)境、工具、基礎(chǔ)類庫(kù)都需要以 JDK 為基礎(chǔ)。Eclipse 的開發(fā)環(huán)境如圖 21 所示:圖 21: Eclipse 的 開 發(fā) 環(huán) 境 Android 平臺(tái)手機(jī)與人們的生活息息相關(guān),形形色色的手機(jī)充斥著全球的手機(jī)市場(chǎng)。各種手機(jī)平臺(tái)競(jìng)爭(zhēng)此起彼伏。市場(chǎng)上比較常見的手機(jī)平臺(tái)有塞班、Windows Phone、IOS、BlackBerry Android 這五種。塞班這個(gè)操作系統(tǒng)廣泛應(yīng)用與諾基亞手機(jī),但由于缺乏創(chuàng)新,塞班面臨著各種困境。Windows Phone 是微軟發(fā)布的一款手機(jī)操作系統(tǒng),它將微軟旗下的 Xbox Live 游戲、 Xbox Music 音樂與獨(dú)特的視頻體驗(yàn)整合至手機(jī)中。IOS 是由蘋果公司開發(fā)的手持設(shè)備操作系統(tǒng)。IOS 操作系統(tǒng)簡(jiǎn)潔易上手,能不斷給用戶不同的用戶體驗(yàn)。第 2 章 相關(guān)技術(shù)介紹BlackBerry 10,是黑莓公司的手機(jī)系統(tǒng),只有黑莓手機(jī)利用這種系統(tǒng),市場(chǎng)份額不大,但是有一批忠實(shí)的客戶。上述四種平臺(tái),不是發(fā)展時(shí)間短就是市場(chǎng)份額低,而 Android 一枝獨(dú)秀,它是 Google 于 2022 年 11 月 05 日宣布的基于 Linux 平臺(tái)的開源移動(dòng)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。Android 的架構(gòu)分底層、中層、上層三部分。底層只提供基本功能,利用C 語(yǔ)言開發(fā)的 Linux 被當(dāng)作基礎(chǔ);中間層的結(jié)構(gòu)是由 C++開發(fā)的函數(shù)庫(kù) Library和虛擬機(jī) Virtual Machine。最上層是各種由不同公司開發(fā)的軟件。 Android 體系構(gòu)架【引用】 在 Android SDK 中,定義了讓開發(fā)者使用與核心應(yīng)用程序相同 API的權(quán)限。但要被應(yīng)用程序架構(gòu)的安全機(jī)制限制,使用者以用同樣的機(jī)制來新增、置換組件。目前所有的應(yīng)用程序是由服務(wù)及系統(tǒng)來組成,包含有: 內(nèi)容提供者、資源管理器、通知管理器、活動(dòng)管理器、視窗管理器、位置管理器、電話管理器、包管管理器。具體的框架如圖 22 所示:圖 22: Android 架 構(gòu) 的 五 個(gè) 部 分第 2 章 相關(guān)技術(shù)介紹一些 C/C++的類庫(kù)被 Android 使用,使用這些類庫(kù)的組件各不相同。這些功能可以通過應(yīng)用程序框架被開發(fā)者使用。包含以下核心類庫(kù): surface Manager、 3Dlibraries: SGL、Media Frame work、Free Type、 SSL、SQLite:SQLite、web Kit、lib c 。雖然 Android 開發(fā)、撰寫應(yīng)用程序是利用 Java 語(yǔ)言,但不使用 Java 相應(yīng)的組件來運(yùn)行程序,而是利用 Google 開發(fā)的 Android 組件運(yùn)行。核心類庫(kù)和Dalvik 虛擬機(jī)是 Android 運(yùn)行時(shí)的兩個(gè)重要的部分。 Android 系統(tǒng)核心一個(gè)應(yīng)用程序可以利用其它應(yīng)用程序的元素是 Android 的主要特點(diǎn)。應(yīng)用程序發(fā)出請(qǐng)求的時(shí)候,不管它請(qǐng)求的是哪個(gè)部分,系統(tǒng)都應(yīng)該能啟動(dòng)這些進(jìn)程而且要把它的 Java 對(duì)象實(shí)例化。Android 應(yīng)用程序的入口點(diǎn)可能不止一個(gè)。實(shí)例化和運(yùn)行所需要活動(dòng)、服務(wù)、 廣播接收者、內(nèi)容提供者這四種組件。如圖 23 所示:實(shí)例化和運(yùn)行所需組件活動(dòng) ( A c t i v i t i e s ) 服務(wù) ( S e r v i c e s )廣播接收者 ( B r o a dc a s t r e c e i v e r s )內(nèi)容提供者 ( C o n te n t p r o v i d e r s )圖 23: 實(shí) 例 化 和 運(yùn) 行 所 需 組 件不是所有的應(yīng)用程序都一定需要這四種組件,可能只有一個(gè)或者幾個(gè)組成。確定了要用什么組件的話,就應(yīng)該把所需要的組件列在 文件中,在這個(gè)文件中你可以聲明應(yīng)用程序組件以及它們的特性和要求。 人工智能人工智能是一種新的技術(shù)科學(xué),是計(jì)算機(jī)科學(xué)的一個(gè)分支。它能產(chǎn)生出模擬人類智能的反應(yīng),根據(jù)不同算法把各種人類模擬完善。第 2 章 相關(guān)技術(shù)介紹在人工智能方面,一般有極大極小樹、剪枝、深度優(yōu)先搜索這三種方法。目前絕大部分的博弈類游戲中的人工算法都采用極大極小樹這種方法。假設(shè)己方為 MAX 點(diǎn),對(duì)方則為 MIN 點(diǎn)。如果當(dāng)層的節(jié)點(diǎn)為奇數(shù)時(shí)那么就為 MAX 層,同樣 為偶數(shù)時(shí)就為 MIN 層。當(dāng)在 MAX 層時(shí),該層的值就應(yīng)該為下一個(gè) MIN 層中的 最大一個(gè)的值。當(dāng)在 MIN 層是,該層的值就應(yīng)該為它子層 MAX 的最小的一個(gè)。 深度優(yōu)先搜索與廣度優(yōu)先搜索的區(qū)別在于下一個(gè)節(jié)點(diǎn)的選擇。DFS 先選擇好節(jié)點(diǎn),如果下個(gè)節(jié)點(diǎn)不存在或者都已經(jīng)遍歷過了,就向上返回到上一個(gè)節(jié)點(diǎn),在遍其他的未被訪問過的點(diǎn)。很容易想到這要用到堆棧 結(jié)構(gòu),使用一個(gè)遞歸來實(shí)現(xiàn)。而 BFS 則是逐個(gè)的遍歷它的聯(lián)接接點(diǎn),將已經(jīng)訪 問過的點(diǎn)放入隊(duì)列中。然后再依次取出繼續(xù)這個(gè)過程。不必要的節(jié)點(diǎn)可以被 AlphaBeta 剪枝去除,并且去除了這些節(jié)點(diǎn)也不會(huì)影響結(jié)果。第 3 章 系統(tǒng)設(shè)計(jì)10第 3 章 系統(tǒng)設(shè)計(jì) 總體設(shè)計(jì)該設(shè)計(jì)是 Android 平臺(tái)下的五子棋游戲。本游戲略過了歡迎界面直接進(jìn)入程序主界面。系統(tǒng)的總體設(shè)計(jì)模型如圖 31 所示:初始化模塊主控制模塊人工智能模塊 落子模塊勝負(fù)判斷模塊圖 31 : 總 體 設(shè) 計(jì) 模 型該游戲又分為以下幾個(gè)模塊:初始化模塊、主控制模塊、人工智能模塊、落子模塊 、勝負(fù)判斷模塊。 相應(yīng)的數(shù)據(jù)流動(dòng)如圖 32 所示:游戲界面初始化選擇游戲模式主控制人機(jī)對(duì)戰(zhàn)部分 主控制人人對(duì)戰(zhàn)部分分析盤面得出最佳落子位置玩家落子 玩家一落子 玩家二落子電腦落子勝負(fù)判斷 勝負(fù)判斷Y Y輸出勝者并重開局N N圖 32: 系 統(tǒng) 主 流 程 圖第 3 章 系統(tǒng)設(shè)計(jì) 模型建立五子棋分黑白兩種顏色,若那種顏色首先在橫、豎、左斜、右斜這任意方向大于等于五個(gè)棋子,就勝利了。所以,該游戲模型的重點(diǎn)就在于棋盤和棋子。流程如圖 33 所示:設(shè)置棋盤每個(gè)點(diǎn)大小根據(jù)點(diǎn)大小計(jì)算根據(jù)橫豎坐標(biāo)產(chǎn)生棋盤上的線把棋子數(shù)據(jù)載入設(shè)置好的點(diǎn)模型建立完成游戲界面上的橫豎坐