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

正文內(nèi)容

基于android貪吃蛇游戲本科畢業(yè)設(shè)計論文(編輯修改稿)

2025-07-19 04:39 本頁面
 

【文章內(nèi)容簡介】 ,也包括了從特殊到一般的歸納思維過程。人在認(rèn)識和解決復(fù)雜問題時使用的最強(qiáng)有力的思維工具是抽象,也就是在處理復(fù)雜對象時,為了達(dá)到某個分析目的集中研究對象的與此目的有關(guān)的實質(zhì),忽略該對象的那些與此目的無關(guān)的部分。 面向?qū)ο蠓椒▽W(xué)的出發(fā)點和基本原則,就是分析、設(shè)計和實現(xiàn)一個軟件系統(tǒng)的方法和過程.盡可能接近人們認(rèn)識世界解決問題的方法和過程,也就是使描述問題的問題空間和描述解法的解空間在結(jié)構(gòu)上盡可能一致。也可以說,面向?qū)ο蠓椒▽W(xué)的基本原則,是按照人們習(xí)慣的思維方式建立問題域的模型,開發(fā)出盡可能直觀、自然地表現(xiàn)求解方法的軟件系統(tǒng)。面向?qū)ο蟮能浖到y(tǒng)中廣泛使用的對象,是對客觀世界中實體的抽象,對象實際上是抽象數(shù)據(jù)類型的實例,提供了理想的數(shù)據(jù)抽象機(jī)制,同時又具有良好的過程抽象機(jī)制(通過發(fā)消息使用公有成員函數(shù))。對象類是對一組相似對象的抽象,類等級中上層的類是對下層類的抽象。因此,面向?qū)ο蟮沫h(huán)境提供了強(qiáng)有力的抽象機(jī)制,便于人在利用計算機(jī)軟件系統(tǒng)解決復(fù)雜問題時使用習(xí)慣的抽象思維工具。此外,面向?qū)ο蠓椒▽W(xué)中普遍進(jìn)行的對象分類過程,支持從特殊到一般的歸納思維過程;面向?qū)ο蠓椒▽W(xué)中通過建立類等級而獲得的繼承特性,支持從一般到特殊的演繹思維過程。 面向?qū)ο蟮能浖夹g(shù)為開發(fā)者提供了隨著對某個應(yīng)用系統(tǒng)的認(rèn)識逐步深入和具體化的過程,而逐步設(shè)計和實現(xiàn)該系統(tǒng)的可能性,因為可以先設(shè)計出由抽象類構(gòu)成的系統(tǒng)框架,隨著認(rèn)識深入和具體化再逐步派生出更具體的派生類。這樣的開發(fā)過程符合人們認(rèn)識客觀世界解決復(fù)雜問題時逐步深化的漸進(jìn)過程。 開發(fā)工具及環(huán)境簡介 開發(fā)工具Eclipse簡介Eclipse是一個開放源代碼的、與NetBeans、Sun ONE Studio和Borland Jbuilder類似的一種基于Java的整合型可擴(kuò)展開發(fā)平臺,也是目前最著名的開源項目之一,Eclipse 附帶了一個標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。其未來的目標(biāo)不僅僅是成為專門開發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過開發(fā)插件,它能擴(kuò)展到任何語言的開發(fā),甚至能成為圖片繪制的工具?!∧壳?,Eclipse已經(jīng)開始提供C語言開發(fā)的功能插件。更難能可貴的是,Eclipse是一個開放源代碼的項目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功能插件。也就是說未來只要有人需要,就會有建立在 Eclipse之上COBOL,Perl,Python等語言的開發(fā)插件出現(xiàn)。同時可以通過開發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,可以無限擴(kuò)展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是Eclipse的潛力所在。 Eclipse的主要組成。 Eclipse是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目三個項目組成,具體包括四個部分組成—— Eclipse Platform、JDT、CDT支持C開發(fā)、PDE用來支持插件開發(fā),Eclipse Platform則是一個開放的可擴(kuò)展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。 Eclipse SDK(軟件開發(fā)者包)是Eclipse Platform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse項目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目生產(chǎn)的軟件以 CPL發(fā)布,第三方組件有各自自身的許可協(xié)議。 開發(fā)環(huán)境簡介本項目在windowsXP操作系統(tǒng)上進(jìn)行開發(fā),Google為開發(fā)者提供了SDK(Software Development Kit)。Android SDK的下載地址為。因為本項目的開發(fā)工具是Eclipse,所以還需要安裝ADT(Android Development Tools)插件。具體安裝步驟就不在本文中介紹了。第3章 需求分析需求分析工作是軟件生存周期中重要的一步,也是起決定性的一步。通過它可以全面了解整個系統(tǒng)的功能和性能方面的要求,為軟件設(shè)計打下堅實的基礎(chǔ)。該部分的目標(biāo)主要有:獲得目標(biāo)系統(tǒng)的物理模型,了解目標(biāo)系統(tǒng)是如何運(yùn)行的;抽象出目標(biāo)系統(tǒng)的邏輯模型,對物理模型進(jìn)行篩選,得到與軟件系統(tǒng)有關(guān)的部分;建立目標(biāo)系統(tǒng)的邏輯模型,得出數(shù)據(jù)流圖和數(shù)據(jù)字典;補(bǔ)充目標(biāo)系統(tǒng)的邏輯模型,對目標(biāo)系統(tǒng)的用戶界面,至今尚未考慮的細(xì)節(jié)進(jìn)行說明。本系統(tǒng)主要是完成貪吃蛇游戲的基本操作。用戶可以自己練習(xí)和娛樂。本系統(tǒng)需要滿足以下幾點要求。(1) 利用方向鍵來改變蛇的運(yùn)行方向。 (2) 空格鍵暫?;蚶^續(xù)游戲,并在隨機(jī)的地方產(chǎn)生食物。 (3) 吃到食物就變成新的蛇體,碰到壁或自身則游戲結(jié)束,否則正常運(yùn)行。 系統(tǒng)開發(fā)目標(biāo)采用基于Android的程序設(shè)計技術(shù),以及用Eclipse開發(fā)Android程序的相關(guān)技術(shù)開發(fā)出具有良好用戶界面,操作簡單易學(xué),游戲功能齊全且有益于智力開發(fā)的貪吃蛇游戲。 系統(tǒng)需求分析 業(yè)務(wù)需求分析雖然現(xiàn)在市面上存在著各種各樣的游戲版本,不論是手機(jī),還是小游戲機(jī),不可能花費大量時間在娛樂上,大型游戲是行不通的,這樣的小游戲剛好迎合了他們的需求。手機(jī)貪吃蛇游戲基于JAVA平臺編寫,采用Android技術(shù)開發(fā)的一款手機(jī)游戲。手機(jī)游戲程序是一項精度要求很高的程序系統(tǒng),因為其代碼利用率很高。一個實時運(yùn)行的最終作品,每秒都會運(yùn)行成千上萬行程序,繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應(yīng),若有絲毫的差別都將很容易導(dǎo)致程序在運(yùn)行不久后可能出現(xiàn)嚴(yán)重錯誤,甚至死循環(huán)。因此,其邏輯設(shè)計應(yīng)當(dāng)相當(dāng)嚴(yán)謹(jǐn),需將所有可能發(fā)生的事件及意外情況考慮在設(shè)計中。JAVA是基于虛擬機(jī)的半解釋型編譯系統(tǒng),其執(zhí)行效率較C++等完全編譯后的程序會低很多,程序如果不進(jìn)行精簡和優(yōu)化,將可能導(dǎo)致運(yùn)行的不流暢。 用戶需求分析本項目中用戶的需求如下圖31。開始游戲操作游戲退出游戲player圖31用戶需求游戲開發(fā)成功后,最終用戶為各個年齡段的人群,用戶范圍相當(dāng)廣泛。但是用戶對軟件產(chǎn)品也有一定的要求。1. 簡單易學(xué)時間不管對于誰來說都是寶貴的,用戶不會愿意花大量時間去學(xué)習(xí)使用一款軟件。一款軟件如果操作界面不友好,讓用戶難以上手使用,那就說明這款軟件開發(fā)得不夠成功,從而失去大量的用戶。所以本項目必須擁有良好的交互界面,讓用戶安裝之后就能進(jìn)行游戲。2. 運(yùn)行穩(wěn)定一款軟件設(shè)計得不夠好,那么就有可能在運(yùn)行的時候出現(xiàn)一些不可預(yù)料的錯誤從而造成軟件崩潰。如果用戶正在游戲突然軟件崩潰了,無疑會讓用戶感到非常不舒服,有可能就把軟件給卸載了,這樣也會失去很多用戶。3. 操作簡便用戶不是程序員,他們不知道程序的內(nèi)部邏輯。所以程序員必須提供給用戶便捷的操作接口來供用戶操作,靈活便捷的操作性直接影響了一款軟件的好壞。 功能需求分析本項目是一個運(yùn)行在Android手機(jī)上的游戲,所以在應(yīng)該實現(xiàn)以下功能。1. 響應(yīng)鍵盤事件玩家可以從手機(jī)鍵盤或者觸屏開始游戲,操控游戲,暫停游戲,結(jié)束游戲。2. 繪制游戲圖形界面玩家開始游戲后,在手機(jī)屏幕上繪制出一條初始由7個節(jié)點組成小蛇。蛇能夠在屏幕上移動,屏幕上隨機(jī)位置出現(xiàn)食物,當(dāng)蛇吃到食物后蛇的身體會增長一截同時移動速度也會響應(yīng)加快。蛇不能向相反方向移動,例如蛇頭朝南時則不能向北移動。當(dāng)蛇頭碰到墻壁或者碰到自己的身體時游戲結(jié)束。3. 記錄玩家分?jǐn)?shù)當(dāng)游戲結(jié)束后,顯示玩家在游戲中所獲得的分?jǐn)?shù)。貪吃蛇詳細(xì)設(shè)計 程序流程設(shè)計本游戲的流程如下圖41所示。觸摸屏幕游戲開始,蛇開始移動鍵盤操作: 向上左移右移 向下沒有吃到食物且蛇碰到邊界游戲結(jié)束游戲中途欲中斷,稍后繼續(xù)游戲觸摸屏幕暫停游戲游戲暫停進(jìn)入游戲畫面再次觸摸屏幕游戲恢復(fù)圖11 游戲處理流程圖 概要設(shè)計 模塊劃分從面向?qū)ο蟪绦蛟O(shè)計的角度,本項目總體可以分為游戲界面模塊、數(shù)據(jù)存儲模塊和控制模塊。如下圖42所示。游戲數(shù)據(jù)存儲模塊貪吃蛇游戲游戲主界面模塊游戲控制模塊圖12 游戲總設(shè)計模塊 游戲主界面模塊游戲界面主框架主要包括游戲圖形區(qū)域界面、游戲的開始按鈕、暫停按鈕、游戲的退出按鈕。游戲界面主框架的主要結(jié)構(gòu)圖如圖13所示。游戲的主界面架游戲圖形區(qū)域界面游戲控制按鈕界面圖13 游戲主界面 游戲控制模塊 游戲控制模塊主要通過手機(jī)鍵盤上的按鈕來控制游戲的開始、游戲的退出這兩個功能以及控制游戲分?jǐn)?shù)變化。在這個模塊中,需要給各個按鈕添加響應(yīng)事件代碼,來對上述的功能加以進(jìn)一步的實現(xiàn)。游戲控制模塊的主要框架如圖44所示。游戲控制模塊游戲的移動速度功能能游戲的暫停功能游戲的重新開始圖14 游戲控制模塊框架 模塊實現(xiàn)原理 游戲界面模塊實現(xiàn)1. 實現(xiàn)游戲背景本游戲采用Activity作為游戲背景的載體,在Android中一個Activity就相當(dāng)于windows中的一個窗口,Activity上可以放置許多類型的控件。一個activity主要有三個狀態(tài)。當(dāng)在屏幕前臺時(位于當(dāng)前任務(wù)堆棧的頂部),它是活躍或運(yùn)行的狀態(tài)。它就是相應(yīng)用戶操作的activity。 當(dāng)它失去焦點但仍然對用戶可見時,它處于暫停狀態(tài)。即是:在它之上有另外一個activity。這個activity也許是透明的,或者未能完全遮蔽全屏,所以被暫停的activity仍對用戶可見。暫停的activity仍然是存活狀態(tài)(它保留著所有的狀態(tài)和成員信息并連接至窗口管理器),但當(dāng)系統(tǒng)處于極低內(nèi)存的情況下,仍然可以殺死這個activity。如果它完全被另一個activity覆蓋是,它處于停止?fàn)顟B(tài)。它仍然保留所有的狀態(tài)和成員信息。然而它不在為用戶可見,所以它的窗口將被隱藏,如果其它地方需要內(nèi)存,則系統(tǒng)經(jīng)常會殺死這個activity。如果一個activity處于暫停或停止?fàn)顟B(tài),系統(tǒng)可以通過要求它結(jié)束(調(diào)用它的 finish() 方法)或直接殺死它的進(jìn)程來將它驅(qū)出內(nèi)存。當(dāng)它再次為用戶可見的時候,它只能完全重新啟動并恢復(fù)至以前的狀態(tài)。當(dāng)一個activity從這個狀態(tài)轉(zhuǎn)變到另一個狀態(tài)時,它被以下列protected方法所通知。void onCreate(Bundle savedInstanceState) 、void onStart() 、void onRestart() 、void onResume() 、void onPause() 、void onStop() 、void onDestroy()2. 實現(xiàn)蛇的身體蛇可以看做是一個個節(jié)點組成的,因此可以用一個鏈表來存儲蛇身的元素,在畫蛇時遍歷這個鏈表講里面的元素一一畫出,這樣就實現(xiàn)了一條蛇。3. 實現(xiàn)蛇的移動用一個timer(定時器)來不斷地刷新游戲畫面,每刷新一次就再蛇頭的前面(鏈表的尾部)增加一個新元素,同時把蛇尾的一個元素刪掉,這樣從視覺上看起來就實現(xiàn)了蛇的移動。4. 實現(xiàn)蛇吃食物蛇移動的過程中如果蛇頭的坐標(biāo)與食物出現(xiàn)的坐標(biāo)重合了,那么就在蛇頭的位置增加一個元素同時不刪除蛇尾的最后一個元素,這樣蛇每遲到一個食物 身體就會變長一截。 游戲控制模塊實現(xiàn)1. 實現(xiàn)操作蛇的移動方向在Android系統(tǒng)中,手機(jī)上的每個按鈕都會有一個對應(yīng)的鍵值跟它對應(yīng),所在可以給對應(yīng)的按鈕設(shè)置監(jiān)聽器OnClickListener,監(jiān)聽器是一個接口,該接口中有一個方法onClick(View v)。當(dāng)按鈕被點擊的時候系統(tǒng)會自動調(diào)用該監(jiān)聽器的onClick(View v)方法。所以實現(xiàn)游戲控制的具體代碼將被寫到該方法中。因為本游戲中不允許蛇向與蛇頭相反的方向移動,所以當(dāng)用戶操作時需要判斷用戶操作的方向是不是跟規(guī)則沖突,若沖突則無視該操作,若不沖突則響應(yīng)該操作,所以需要用一個變量來記錄蛇頭的當(dāng)前方向。2. 實現(xiàn)游戲暫停在Activity的生命周期中,有一個onPause(),如果有來電或是其它事件中斷,這時應(yīng)該把當(dāng)前狀態(tài)保存。以便返回時,還可以繼續(xù)玩游戲。這就使用onSaveInstanceState實現(xiàn)保存當(dāng)前狀態(tài)。3. 實現(xiàn)游戲恢復(fù)Activity生命周期的onResume()。4. 實現(xiàn)游戲退出當(dāng)一個Activity退出或者被調(diào)用finish()方法后,系統(tǒng)會調(diào)用其生命周期方法onDestroy().當(dāng)用戶退出游戲時,可以在這個方法中對資源進(jìn)行釋放。 TileView類的設(shè)計TileView是游戲的界限,即蛇頭若觸碰到界限則游戲結(jié)束。因為界限也需要被現(xiàn)實到屏幕上。View會繪制一個包含Drawing是event事件的方形塊。View是所有與用戶交互的組件的Widgets的基類(Buttons,textField等),View的子類ViewGroup是layouts類的基類,layouts類可以包含其他的View/ViewGroup組件并且定義展示的屬性。實現(xiàn)一個View,首先需要實現(xiàn)框架中一些所有Views公用的方法。不必重寫所有所有的方法,可以僅僅重寫onDraw()。 SnakeView類的設(shè)計SnakeView是本游戲的業(yè)務(wù)邏輯類,該類中包含了游戲數(shù)據(jù)和一些處理數(shù)據(jù)的方法以及一些內(nèi)部類。SnakeView的方法摘要。1. 判斷按鍵的方法在Android手機(jī)上,每個按鍵都會有一個唯一的鍵值與它對應(yīng),可以通過獲得鍵值來判斷哪個鍵被按下了并采取相應(yīng)的動作。2. 設(shè)置提示信息的方法通過程序判斷動態(tài)地設(shè)置用戶提示信息,如游戲結(jié)束。3. 在隨機(jī)位置出現(xiàn)食物的方法通過隨機(jī)數(shù)在屏幕范圍內(nèi)隨機(jī)出現(xiàn)一個食物,但是不允許同一時刻有兩個食物存在。4. 刷新蛇的當(dāng)前位置的
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1