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

正文內(nèi)容

基于android系統(tǒng)的掃雷游戲程序的開發(fā)-在線瀏覽

2025-01-10 22:11本頁面
  

【正文】 ,有利于更好的就業(yè)。該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件等組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正的開放的移動(dòng)開發(fā)平臺(tái)。 Google 與運(yùn)營(yíng)商、設(shè)備制造商、開發(fā)商和其他的 第三方結(jié)成了深層次的合作伙伴關(guān)系,希望通過建立標(biāo)準(zhǔn)化、開放式的移動(dòng)電話軟件平臺(tái),在移動(dòng)產(chǎn)業(yè)內(nèi)形成一個(gè)開 放式的生態(tài)系統(tǒng)。全球?yàn)閿?shù)眾多的移動(dòng)電話用戶從未使用過任何基于Android 的移動(dòng)通訊設(shè)備, Google 的目標(biāo)是讓移動(dòng)通訊不依賴于設(shè)備甚至平臺(tái)。 Android 的系統(tǒng)架構(gòu): Linux Kernel, Android Runtime, Library, Application Framework, Application。 開發(fā)流程 (1)首先分析掃雷游戲的 需求,然后用列出要開發(fā)的 軟件 的大功能模塊,每個(gè)大功能模塊有哪些小功能模塊,對(duì)于有些需求比較明確相關(guān)的界面時(shí),在這一步里面可以初步定義好少量的界面。這次的文檔會(huì)清楚 說明軟件 大致的大功能模塊,大功能模塊有哪些小功能模塊,并且還列出相關(guān)的界面和界面功能。 首先, 編程 者需要對(duì)軟件系統(tǒng)進(jìn)行概要設(shè)計(jì),即系統(tǒng)設(shè)計(jì)。 在概要設(shè)計(jì)的基礎(chǔ)上, 編程 者需要進(jìn)行軟件系統(tǒng)的詳細(xì)設(shè)計(jì)。應(yīng)當(dāng)保證軟件的需求完全分配給整個(gè)軟件。 在軟件編碼階段, 編程 者 對(duì)照需求分析 對(duì)數(shù)據(jù)結(jié)構(gòu)、算法分析和模塊實(shí)現(xiàn)等方面的設(shè)計(jì)要求,開始具體的編寫程序工作,分別實(shí)現(xiàn)各模塊的功能,從而實(shí)現(xiàn)對(duì)目標(biāo)系統(tǒng)的功能、性能、接口、界面等方面的要求。 開發(fā)工具介紹 Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。幸運(yùn)的是, Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具( Java Development Kit, JDK)。 Eclipse 還包括插件開發(fā)環(huán)境( Plugin Development Environment, PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。 這種平等和一致性并不僅限于 Java 開發(fā)工具。 Eclipse 框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。 使用 Eclipse 進(jìn)行 android 應(yīng)用開發(fā)需要給 Eclipse 裝 adt 插件,這樣 Eclipse 就可以和 android sdk 建立連接,可以在 Eclipse 中啟動(dòng) android 模擬器進(jìn)行程序調(diào)試等 ADT 插件安裝這里不再累贅,也可以下載 adt 的 zip包安裝 安裝完插件后,需要做一些簡(jiǎn)單的配置 : ( 1) 在 Eclipse 中,選擇 Window Preference; ( 2) 從左側(cè)的菜單中,選擇 Android 項(xiàng); ( 3) 設(shè)置 SDK Location,點(diǎn) Browse 選擇 SDK 的安裝根目錄; ( 4) OK,完成。 Android 適用于各種各樣的手機(jī),從最低端直到最高端的智能手機(jī)。這些 API之所以是“可選的”,主要是因?yàn)橐粋€(gè)手持設(shè)備并不一定要完全支持這類 API,甚至于完全不支持。其規(guī)則簡(jiǎn)單,上手容易,不論男女老少皆可娛樂。踩到地雷格子就算失敗。使用鼠標(biāo)隨機(jī)點(diǎn)擊一個(gè)方格,方格即被打開并顯示出方格中的數(shù)字;方格中數(shù)字則表示其周圍的 8個(gè)方格隱藏了幾顆雷;如果點(diǎn)開的格子為空白格,即其周圍有 0顆雷 ,則其周圍格子自動(dòng)打開。在確實(shí)是地雷的方格上點(diǎn)了旗子,就安全了,不是地雷的被點(diǎn)了旗子,后面會(huì)被炸死。這樣格子在自動(dòng)打開時(shí),被標(biāo)示的格子就不會(huì)被打開,導(dǎo)致游戲結(jié)束。而當(dāng) 格子都被翻掉后除了標(biāo)了地雷的 ,說明地雷全部被查到,游戲結(jié)束,玩家勝利。 而且為了要方便用戶玩完游戲, 就要給游戲增加插旗子功能,這樣用戶可以在找到的雷上插上旗子,這樣就不會(huì)出現(xiàn),點(diǎn)錯(cuò)導(dǎo)致游戲結(jié)束,設(shè)置成插過旗的不能再點(diǎn)擊,就可以保證不會(huì)出錯(cuò)了,可以提高用戶體驗(yàn)。 最后總結(jié)一下用戶需求就是 : ( 1) 布置雷區(qū) ,掃雷游戲最基本的需求。 ( 3) 游戲難度等級(jí)模塊, 玩家可以快速選擇游戲難度進(jìn)行游戲, 適合各種玩家。 ( 5) 插旗模塊,方便游戲玩家的游戲進(jìn)行,更好的識(shí)別已經(jīng)發(fā)現(xiàn)的雷。 掃雷 游戲算法分析 程 序 開 始點(diǎn) 擊 屏 幕判 斷 方 塊 中 的值遞 歸 調(diào) 用 翻 開 方 塊= 0= 1顯 示 方 塊 中 數(shù) 值 0是 否 掃 完否結(jié) 束是 圖 21 掃雷主要的流程圖 掃雷游戲的主要流程就是一個(gè)循環(huán)的過程 如圖 21 所示 ,當(dāng)用戶點(diǎn)擊屏幕后,程序就去判斷當(dāng)前用戶點(diǎn)擊的方格里的數(shù)字,如果數(shù)字是 9 證明用戶點(diǎn)擊了地雷,游戲直 接結(jié)束,如果是 18 則沒有點(diǎn)到雷,而且周圍的方塊中有 18 個(gè)雷,那就將周圍雷數(shù)顯示在當(dāng)前方格中,最后繼續(xù)等待用戶點(diǎn)擊,如果是 0 就是周圍沒有雷,那樣自動(dòng)翻開周圍的方格,周圍有方格有 0的話繼續(xù)翻開直到?jīng)]有 0 為止,最后等待用戶繼續(xù)點(diǎn)擊屏幕。 掃雷 游戲 初步 的 設(shè)計(jì) 游戲的基本設(shè)計(jì)思想是 雷區(qū)的生成和圖形界面的繪制,然后雷區(qū)的數(shù)字與圖形界面的方格一一對(duì)應(yīng)。 圖形界面 的繪制 首先 是在系統(tǒng)里產(chǎn)生一個(gè) Activity,然后再在 Activity 上產(chǎn)生一個(gè) view,最后就可以將 產(chǎn)生的圖形界面利用 Android 的繪圖函畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 7 頁 共 34 頁 數(shù)繪制在 view 上面。 然后雷區(qū)與圖形界面對(duì)應(yīng) 完成之后 , 游戲會(huì)根據(jù)用戶在界面上的操作進(jìn)行操作 , 這里的操作主要是翻開用戶點(diǎn)擊的方格,用戶點(diǎn)擊方格,程序判 斷好要做什么操作之后,按照要求,將這個(gè)方格的圖片替換掉之后,然后 就把 view 上的畫面全部重新繪制一遍,人的肉眼看不出來,其實(shí)游戲的過程, view 界面是在不斷的重新畫圖的 , 通過不斷重新畫圖使用戶看起來像在翻開一個(gè)個(gè)小格子 ,效果如圖 22。 畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 8 頁 共 34 頁 第 3 章 游戲功能 的實(shí)現(xiàn) 布雷模塊 的設(shè)計(jì) 經(jīng)過分析,可以看出關(guān)鍵是 生 成雷區(qū) ,首先需要 產(chǎn)生一個(gè)雷區(qū) , 然后再對(duì)用戶的操作進(jìn)行監(jiān)聽,這樣一個(gè) 游戲的 雛形便產(chǎn)生了,然后在添加對(duì)用戶點(diǎn)擊屏幕的操作的響應(yīng),這樣掃雷游戲的框架就算完成了,接下來在添加其他功能模塊來完善軟件,直到最 終完成軟件的所有模塊。 //隨機(jī)函數(shù) int m , n , i 。 for(i=0。){ int a = (m_height*m_width)。 //計(jì)算在矩陣中的位置 n = a%m_width。 updatasurround( m1 , n1)。 //上 updatasurround( m1 , n+1)。 //左 updatasurround( m, n+1)。 //左下 updatasurround( m+1 , n )。 //右下 i++。 break。具體流程如圖 31 所示。 隨 即 函 數(shù) 產(chǎn) 生 x, y值本 格 值 為 1, 周 圍非 1的 格 子 都 加 1是 否 全 部 雷 都布 完布 雷 結(jié) 束程 序 開 始 圖 31 布雷流程 最后當(dāng)計(jì)數(shù) 變量 等于設(shè)置的雷數(shù)時(shí)則布雷結(jié)束,成功生 成 雷區(qū)。 畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 10 頁 共 34 頁 圖 32 布雷結(jié)束的界面 屏幕參數(shù)的獲得 為了 界面的美觀考慮游戲 界面 要 可以按照不同手機(jī) 屏幕 要求布局 , 所以屏幕參數(shù)就是必須的 ,并且屏幕參數(shù)的獲取對(duì)于后面的掃雷模塊的編寫也是有幫助的,這里主要獲取屏幕參數(shù)用到了 GetX 和 GetY 兩個(gè)函數(shù),這兩個(gè)函數(shù)可以直接獲取到屏幕的長(zhǎng)和寬,再用獲取雷區(qū)的長(zhǎng)和寬 Playfield pf = ().get_m_playfield()。 m_height = ()。 從創(chuàng)建好的 雷區(qū)獲得雷區(qū)的長(zhǎng)寬,再調(diào)用系統(tǒng)的 函數(shù) getWidth 和 getHeight 函數(shù)獲得屏幕的長(zhǎng)和寬,進(jìn)行除運(yùn)算從而計(jì)算出每一格 長(zhǎng)和寬各是多少,這樣按照換算出的長(zhǎng)和寬 , 再進(jìn)行畫圖就可以了。 隨機(jī) 數(shù)的 實(shí)現(xiàn) 隨機(jī)函數(shù)基本都是 偽隨機(jī)數(shù),并不是真正意義上的隨機(jī)函數(shù),大部分利用了形同時(shí)間或者數(shù)學(xué)公式來作為產(chǎn)生隨機(jī)數(shù)的方法。 線性同余法產(chǎn)生的偽隨機(jī)數(shù)具有隨機(jī)性好、周期長(zhǎng) ,易于計(jì)算機(jī)實(shí)現(xiàn)和速度快等特點(diǎn)而被廣泛采用。 Java 語言通過 類產(chǎn)生一個(gè)隨機(jī)數(shù)發(fā)生器。隨機(jī)數(shù)發(fā)生器即 Random 對(duì)象產(chǎn)生以后,可以通過對(duì)象調(diào)用不同的函數(shù): nextInt()、 nextLong()、 nextFloat()、 nextDouble()等來獲得不同類型的隨機(jī)數(shù)。因?yàn)?2 個(gè) Random對(duì)象如使用相同的種子(比如都是100),并且以相同的順序調(diào)用相同的函數(shù),那么它們的返回值完全相 同。 因此,在實(shí)際應(yīng)用中我們要用 Random()來產(chǎn)生隨機(jī)數(shù)發(fā)生器, Random()使用當(dāng)前時(shí)間即 ()作為發(fā)生器的種子,由于每次調(diào)用時(shí)的時(shí)間不同,所以產(chǎn)生的隨機(jī)數(shù)序列也不同。 圖形界面的 繪制 圖形界面的繪制,這個(gè)要 覆寫系統(tǒng)的函數(shù), 已達(dá)到所畫的圖是自己要用的圖 的目的,將用到的圖片改 好名稱格式,復(fù)制到工程目錄下的素材文件夾中,在雷區(qū)文件里面創(chuàng)建變量,將你的圖片賦值給變量,就可以調(diào)用相應(yīng)的圖片繪制圖形界面了,繪制界面 代碼如下 : protected void onDraw(Canvas canvas){ display_width = getWidth()/m_width。 for(int i = 0。 i++) for(int j = 0。 j++){ ( m_imgCell[i][j].m_picture, null, new RectF(j*display_width, i*display_height, (j+1)*display_width, (i+1)*display_height), null)。按照計(jì)算好的長(zhǎng)和 寬一張一張的在界面上繪制好圖片 ,將默認(rèn)圖片替換為設(shè)置的圖片變量,按照一行一行的順序?qū)⒔缑娈嬐?,這里用到 2 個(gè) for 循環(huán),需要注意的是不要把長(zhǎng)和寬弄反, 也就是哪個(gè)是里層循環(huán),哪個(gè)是外層循環(huán),不然 程序會(huì)出 現(xiàn)越界的 錯(cuò) 誤 。 主要的思想就是增加雷區(qū) 長(zhǎng)和寬和雷的個(gè)數(shù),這個(gè)就需要修改最先在 生 成 雷區(qū)的 文件內(nèi)把設(shè)置好的 常數(shù)值 改為可以修改的變量,然后 添加相應(yīng) 函數(shù),只要調(diào)用到相應(yīng)的函數(shù), 函數(shù)就會(huì)做賦值操作給產(chǎn)生雷區(qū)的幾個(gè)變量從新賦值,再調(diào)用 restart_game 函數(shù) 將雷區(qū)重新布局,并且重新繪制圖形界面 ,流程如圖 33所示。 m_height = 24。 } 設(shè)置寬度為 20,高度為 24,雷的數(shù)量為 99 個(gè)。注意的一點(diǎn)是,由于屏幕 很小,所以建議值的設(shè)置不要太大,以免產(chǎn)生錯(cuò)誤。 ().()。 (view)。 圖 34 等級(jí)界面 首先是重新獲得雷區(qū),接下來再對(duì)來去重新布雷,產(chǎn)生新的 view,最后把新 界面繪制 到 Activity 上就可以了。 public 其他包 都可用, protected 子類 可用, packageprivate 和 private 當(dāng)前包 可用。這一環(huán)節(jié)的雷區(qū)的重置可以延續(xù)上面提到 ,這邊唯一的不同是修改的變量值是要從用戶那邊收集的,而不是游戲中自己設(shè)置好了,寫在程序內(nèi)部 的數(shù)值 。 數(shù)據(jù)的接 收 系統(tǒng)生成一個(gè)界面,界面上有幾個(gè)輸入框來接收用戶輸入的關(guān)于雷區(qū)的數(shù)據(jù),包含長(zhǎng)和寬,還有雷的個(gè)數(shù)。 ed_h = (EditText) findViewById()。 聲明 3 個(gè)變量,將界面上的輸入框賦值給變量,方便調(diào)用。 ((height))。 將輸入框的 輸入的字符串變量 強(qiáng)制轉(zhuǎn)換成雷區(qū)變量類型相同的變量 保存下來。 首先是頁面的按鈕設(shè)置,設(shè)置按鈕的名字方便系統(tǒng)能夠找到相應(yīng)的輸入文本框, 然后是給文本框輸入的 字符串變量 強(qiáng)制轉(zhuǎn)換保存,這樣在文本框輸入了內(nèi)容就被保存成了雷區(qū) int 變量 。 畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 15 頁 共 34 頁 圖 35 自定義游戲界面 數(shù)據(jù)的傳輸 雷區(qū)的長(zhǎng)和寬還有雷的個(gè)數(shù)接收到了之后要賦值給生成雷區(qū)的函數(shù),這里就是數(shù)據(jù)的傳輸了。 if (() == ){ try{ width = new Integer(().toString())。 mines = new Integer(().toString())。 (width, height,mines)。 View view = new MyView()。 畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 16 頁 共 34 頁 用新的變量值調(diào)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1