“大魚吃小魚”課程設(shè)計(jì) 報(bào)告
《“大魚吃小魚”課程設(shè)計(jì) 報(bào)告》由會員分享,可在線閱讀,更多相關(guān)《“大魚吃小魚”課程設(shè)計(jì) 報(bào)告(15頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 學(xué)號 1208020211 2013-2014學(xué)年 第二學(xué)期 《面向?qū)ο蟪绦蛟O(shè)計(jì)》 課程設(shè)計(jì)報(bào)告 題目: 大魚吃小魚 專業(yè): 網(wǎng)絡(luò)工程 班級: 網(wǎng)絡(luò)工程12(2) 姓名: 管蔚雄 指導(dǎo)教師: 徐寧 成績: 計(jì)算機(jī)與信息工程系 2014年 6 月 6 日 目 錄 第一章 設(shè)計(jì)的目的與要求............................................................
2、................2目錄中,頁碼應(yīng)該從正文的第一頁算起。你的頁碼設(shè)置是錯(cuò)誤的。另外,word有目錄的自動生成功能,請查詢其使用方式。 1.1設(shè)計(jì)目的......................................................................................................2 1.2設(shè)計(jì)要求....................................................................................................
3、..2 1.3實(shí)現(xiàn)功能......................................................................................................2 1.4界面設(shè)計(jì)......................................................................................................2 第二章 開發(fā)平臺與技術(shù)......................................................
4、.............................3 2.1java語言....................................................................................................3 2.2greenfoot....................................................................................................4 2.3環(huán)境配置..................
5、...................................................................................5 第3章 模塊具體實(shí)現(xiàn)和主要動畫觸發(fā).......................................................7 小結(jié)........................................................................................................................8 參考文獻(xiàn)........
6、.......................................................................................................8 附錄........................................................................................................................9 2 計(jì)算機(jī)與信息工程系 《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)報(bào)告 大魚吃小魚
7、 第一章 設(shè)計(jì)目的與要求 1.1 設(shè)計(jì)目的 通過用greenfoot來設(shè)計(jì)“大魚吃小魚”這個(gè)游戲,來熟悉 并學(xué)會運(yùn)用greenfoot這個(gè)軟件的同時(shí)鞏固我們專業(yè)課java知識。你這課程設(shè)計(jì)的目的寫的比我給的任務(wù)書還少啊。請從網(wǎng)絡(luò)中參考別人的課程設(shè)計(jì)目的,多寫幾行。 1.2 設(shè)計(jì)要求 1.熟悉GreenFoot平臺; 2.對游戲中所需類進(jìn)行設(shè)計(jì); 3.寫出源程序文件; 4.對游戲進(jìn)行調(diào)試和分析。 1.3 實(shí)現(xiàn)功能 敵方有三類魚(鯊魚、藍(lán)魚和小黃魚),每一類魚的對象出現(xiàn)后,在游戲中處于隨機(jī)自由移動狀態(tài),敵方大魚能吃小魚;主角為紅魚且紅魚只有一
8、條,玩家通過鍵盤方向鍵控制移動,紅魚有兩級狀態(tài),初始時(shí)處于低級狀態(tài),只能吃黃魚,能被藍(lán)魚或鯊魚吃掉。初級狀態(tài)的紅魚經(jīng)過重重險(xiǎn)惡且吃掉一定數(shù)量的黃魚升級后,能吃黃魚和藍(lán)魚,但還是能被鯊魚吃。 吃掉一定數(shù)量的魚,則顯示成功信息,結(jié)束游戲;若紅魚被鯊魚或藍(lán)魚吃掉,則顯示失敗信息。 1.4 界面設(shè)計(jì) 紅魚是主角,玩家通過鍵盤方向鍵控制移動,紅魚有兩級狀態(tài):初級狀態(tài)只能吃小黃魚,會被藍(lán)魚和鯊魚吃掉;吃掉20條小黃魚后回升級即長大,能吃掉藍(lán)魚,但還是能被鯊魚吃掉。紅魚升級后,吃黃魚數(shù)量達(dá)到40,藍(lán)魚數(shù)量達(dá)到20,顯示成功信息,結(jié)束游戲;若紅魚被鯊魚或藍(lán)魚吃掉,顯示失敗信息。 敵方大
9、魚能吃小魚,即鯊魚吃藍(lán)魚和黃魚,藍(lán)魚吃黃魚。1.這不是界面設(shè)計(jì),而是實(shí)現(xiàn)功能。你的游戲可以升級,但是游戲的背景界面只牽涉到一個(gè)。 2.文本中有圖時(shí),要在圖片下方居中給圖一個(gè)名字,“圖1 用戶界面”,在文檔中要寫“如圖1所示”這樣的提示內(nèi)容。 3.此處用戶界面的截圖,應(yīng)該是你導(dǎo)出后用戶操作界面。不應(yīng)該是你的開發(fā)界面。 第二章 開發(fā)平臺和技術(shù) 2.1 Java語言 簡單性:Java最初是為對家用電器進(jìn)行集成控制而設(shè)計(jì)的一種語言,因此它必須簡單明了。Java語言的簡單性主要體現(xiàn)在以下三個(gè)方面: Java的風(fēng)格類似于C+
10、+,但是Java摒棄了C++中容易引發(fā)程序錯(cuò)誤的地方,如指針和內(nèi)存管理。 Java提供了豐富的類庫。 Java自身的基本系統(tǒng)所占用空間小于250KB(即編譯器和解釋器),它實(shí)現(xiàn)了垃圾自動收集,簡化了內(nèi)存的管理工作。 可靠性和安全性:Java不支持指針,這杜絕了內(nèi)存的非法訪問。 Java的自動單元收集防止了內(nèi)存丟失等動態(tài)內(nèi)存分配導(dǎo)致的問題。 Java解釋器運(yùn)行時(shí)實(shí)施檢査,可以發(fā)現(xiàn)數(shù)組和宇符串訪問的越界;Java提供了異常處理機(jī)制,以便從錯(cuò)誤處理任務(wù)恢復(fù)。 Java通過自己的安全機(jī)制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。當(dāng)Java字節(jié)碼進(jìn)進(jìn)入解釋器時(shí),首先必須經(jīng)過字節(jié)
11、碼校驗(yàn)器的檢查,然后Java解釋器將決定程序中類的內(nèi)存布局,隨后,類裝載器負(fù)責(zé)把來自網(wǎng)絡(luò)的類裝載到單獨(dú)的內(nèi)存區(qū)域。此處的內(nèi)容介紹顯得沒頭沒腦,如果你想說明其特點(diǎn),應(yīng)該在前面加一個(gè)提示信息,如“java語言的特點(diǎn)”等。 跨平臺性:文檔中應(yīng)有簡單說明,不應(yīng)該加一副圖就結(jié)束。 面向?qū)ο螅喊殉绦驅(qū)崿F(xiàn)的每一個(gè)具體功能作為類,然后用類來構(gòu)成對象。 優(yōu)點(diǎn)是代碼可重用、系統(tǒng)易擴(kuò)展。 多線程:通過使用多線程,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行為,提高系統(tǒng)的運(yùn)行效率。 分布性:分布式包括數(shù)據(jù)分布和操作分布。數(shù)據(jù)分布是指數(shù)
12、據(jù)可以分散在網(wǎng)絡(luò)的不同主機(jī)上;操作分布是指把一個(gè)計(jì)箅分散在不同主機(jī)上處理。它支持以上兩種分布性。 對于前者,Java提供了一個(gè)叫做URL的對象,利用這個(gè)對象,可以訪問Internet上的所有網(wǎng)絡(luò)資源;對于后者,Java提供的基于流套接字的網(wǎng)絡(luò)編程接口,為實(shí)現(xiàn)網(wǎng)絡(luò)的應(yīng)用和Web應(yīng)用提供了方便。 豐富的類庫和API文檔特點(diǎn)無需面面具到。你的文章是介紹你的設(shè)計(jì)思路和內(nèi)容的,對所用工具做簡單介紹就可以了。 2.2 GreenFoot Greenfoot是由肯特大學(xué)的Michael和Martin開發(fā)的一款游戲程序設(shè)計(jì)平臺,主要用于程序設(shè)計(jì)的輔助教學(xué)。它是一個(gè)功能完整的開發(fā)環(huán)
13、境,可以方便地編寫游戲和進(jìn)行游戲模擬。Greenfoot也可看做是一個(gè)二維圖形程序框架和集成開發(fā)環(huán)境的結(jié)合體,它支持面向?qū)ο蟪绦蛟O(shè)計(jì)的全部特性,特別適;多打了符號 合進(jìn)行基于組件的可視化編程。 Greenfoot具備以下幾個(gè)特點(diǎn): (1) 可視化程序設(shè)計(jì)界面 (2)游戲案例作為項(xiàng)目單元 (3)良好的社區(qū)支持 2.3 環(huán)境配置 只需給出自己開發(fā)時(shí)的環(huán)境配置就可以。下面的集成開發(fā)環(huán)境介紹和安裝步驟不需要。 開發(fā)運(yùn)行環(huán)境: JDK(Java Development Kit)+文本編輯器( UltraEdit ) JDK是java開發(fā)工具包,包括java
14、類庫、java編譯器、java解釋器、java 運(yùn)行環(huán)境和java命令行工具。 IDE:集成開發(fā)工具 JCreator (Xinox) JBuilder (Borland) Visual J++(MicroSoft) VisualAge for Java(IBM) NetBeans beans.org Eclipse http://www.eclipse.org/downloads
15、 JDK的安裝 安裝:和一般應(yīng)用程序相似,有向?qū)е敢? 環(huán)境變量的設(shè)置: Path使得系統(tǒng)可以在任何路徑下識別java命令。 Classpath為java加載類(class or lib)路徑,只有類在classpath中,java命令才能識別。 JDK的安裝路徑:C:\Java\jdk path路徑為:C:\Java\jdk\bin classpath路徑為:. ; C:\Java
16、\jdk\lib Greenfoot安裝: Greenfoot軟件直接在自己的pc機(jī)上安裝即可用。 第3章 模塊具體實(shí)現(xiàn)和主要動畫觸發(fā)此處應(yīng)該是你文章的主要部分,你應(yīng)該有條理的介紹自己的思路。以及問題的解決思路,你的介紹太過簡單潦草,缺乏條理性。 涉及的類及類名給出編號,如3.1之類。 本實(shí)驗(yàn)中world類中有一個(gè)子類sea,actor類中有十個(gè)子類,分別是主角類即紅魚類Redfish,黃魚兩個(gè)類yellowfish1與yellowfish2,藍(lán)魚兩個(gè)類bluefish1與bluefish2,鯊魚類shark,水泡類blister,一個(gè)計(jì)數(shù)器Coun
17、ter,一個(gè)Scoreboard,一個(gè)success。1.應(yīng)首先對主界面做介紹,給出用戶界面的截圖,該圖應(yīng)是你導(dǎo)出后的用戶操作界面。不應(yīng)該是你的開發(fā)界面。你可以將環(huán)境中類的組織結(jié)構(gòu)截圖下來。 2.文本中有圖時(shí),要在圖片下方居中給圖一個(gè)名字,“圖1 用戶界面”,在文檔中要寫“如圖1所示”這樣的提示內(nèi)容。 3.分別介紹游戲中用到的類,類的組織結(jié)構(gòu)可以用開發(fā)環(huán)境中類組織結(jié)構(gòu)圖,截圖下來放在文檔中,更易于人們理解。 各類實(shí)現(xiàn)的效果給出主要問題的解決思路。如使魚更換方向,如何升級等。你的介紹實(shí)在需要好好理一理思路。 sea類:添加了一個(gè)紅魚的對象即主角;計(jì)數(shù)器的兩個(gè)對象分別
18、是用于計(jì)數(shù)吃掉黃魚的數(shù)量和吃掉藍(lán)魚的數(shù)量;黃魚與藍(lán)魚在世界里處于隨機(jī)出現(xiàn)自由移動狀態(tài);實(shí)現(xiàn)計(jì)數(shù)器加一的方法;游戲結(jié)束的方法;游戲成功的方法;背景音樂循環(huán)播放。 Redfish類:紅魚設(shè)置四種狀態(tài),在構(gòu)造方法中設(shè)置了其初始狀態(tài),然后通過if判斷語句來限制它的狀態(tài);在act方法中設(shè)置了關(guān)聯(lián)鍵盤向左移游戲動作;吃黃魚藍(lán)魚動作,具體實(shí)現(xiàn)通過if語句控制;魚升級及游戲成功也是在act方法中用if語句來限定。 yellowfish1與yellowfish2類:黃魚在邊界消失。 bluefish1與bluefish2類:藍(lán)魚在邊界消失;在其act方法里設(shè)置了吃黃魚,通過if語句,并調(diào)用sea類的get
19、Count()方法,其數(shù)值小于等于20情況下可以吃紅魚。 shark類:鯊魚在邊界消失;在act方法中設(shè)置了吃黃魚,藍(lán)魚,紅魚,并且當(dāng)吃到紅魚,游戲結(jié)束,調(diào)用sea類的gameover方法。 blister類:水泡在邊界消失。 ScoreBoard與success類:主要是繪制分?jǐn)?shù)界面背景。 Counter類:用于計(jì)數(shù)的類。 小結(jié) 此次課程設(shè)計(jì),使我更扎實(shí)的掌握了本學(xué)期專業(yè)課java知識。當(dāng)然,設(shè)計(jì)過程中遇到了一些困難和問題,實(shí)在想不出來的問同學(xué)或請教老師,終于游逆而解。 課程設(shè)計(jì)體現(xiàn)出自己綜合運(yùn)用知識的能力,體會了學(xué)以致用、突出自己勞動成果的喜
20、悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱之處。 實(shí)踐出真知,通過親自設(shè)計(jì),使我們掌握的知識不再是是紙上談兵。說實(shí)話,本次課程設(shè)計(jì)花了不少時(shí)間,時(shí)間主要花在游戲設(shè)計(jì)即代碼上,游戲做好后,感覺所花時(shí)間是值得的,個(gè)人對自己設(shè)計(jì)游戲較滿意,雖然不是做得那么精致,還存在些許需要改進(jìn)的地方,我想以后有機(jī)會繼續(xù)完善它。 我認(rèn)為,在這次課程設(shè)計(jì)中,不僅培養(yǎng)了獨(dú)立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)中,我學(xué)會了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對社會的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。這對于我們的將來也有很大的幫助。以后,不管有多苦,
21、我想我們都能變苦為樂,找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情。就像中國提倡的艱苦奮斗一樣,我們都可以在實(shí)驗(yàn)結(jié)束之后變的更加成熟,會面對需要面對的事情。此次設(shè)計(jì)也讓我明白了思路即出路,有什么不懂不明白的地方要及時(shí)請教或上網(wǎng)查詢,只要認(rèn)真鉆研,動腦思考,動手實(shí)踐,就沒有弄不懂的知識。 參考文獻(xiàn): Greenfoot官方網(wǎng)站; Java程序設(shè)計(jì)教程(牛曉太 主編)。 參考文獻(xiàn)格式不對。 附錄:(部分代碼) sea類: import greenfoot.*; public class sea extends World {
22、 Counter mycounter; Counter mycounter1; GreenfootSound music; public sea() { super(800, 600, 1); addObject(new Redfish(),400,300); mycounter=new Counter("吃掉的yellowfish數(shù)量:"); mycounter1=new Counter("吃掉的blue數(shù)量:"); addObject(mycounter,
23、100,20); addObject(mycounter1,300,20); music=new GreenfootSound("justin bieber - mistletoe.mp3"); } public void act(){ music.playLoop(); if(Greenfoot.getRandomNumber(100)<3) {addObject(new yellowfish1(),0,Greenfoot.getRandomNumber(600)); addOb
24、ject(new yellowfish2(),800,Greenfoot.getRandomNumber(600)); } if(Greenfoot.getRandomNumber(100)<1) { addObject(new bluefish1(),0,Greenfoot.getRandomNumber(600)); addObject(new bluefish2(),800,Greenfoot.getRandomNumber(600)); addObject(new shark(),0,Greenfoot.getRandomNumb
25、er(600)); addObject(new blister(),Greenfoot.getRandomNumber(800),600); } } public void countChange(){ mycounter.setValue(mycounter.getValue()+1); } public void countChange1(){ mycounter1.setValue(mycounter1.getValue()+1); } public int getCount(){ return mycounter.
26、getValue();} public int getCount1(){ return mycounter1.getValue();} public void gameOver() {addObject(new ScoreBoard(10*(mycounter.getValue())+20*(mycounter1.getValue())), getWidth()/2, getHeight()/2); } public void gameWin() {addObject(new success(10*(mycounter.getValue())+20*(mycounte
27、r1.getValue())),getWidth()/2, getHeight()/2); } } Redfish類: import greenfoot.*; public class Redfish extends Actor { GreenfootImage smallL=new GreenfootImage("Z1L.png"); GreenfootImage smallR=new GreenfootImage("Z1R.png"); GreenfootImage oldL=new GreenfootImage("Z2L.png");
28、 GreenfootImage oldR=new GreenfootImage("Z2R.png"); public Redfish() {setImage(smallL); } public void act() {if(Greenfoot.isKeyDown("right")){ if(((sea)getWorld()).getCount()>20 ){ setImage(oldR);} else {setImage(smallR);}
29、 move(5);} if(Greenfoot.isKeyDown("left")){ if(((sea)getWorld()).getCount()>20 ){ setImage(oldL);} else {setImage(smallL);} move(-5); } if(Greenfoot.isKeyDown("up")) {setLocation(getX(),getY()-5); } if(Gree
30、nfoot.isKeyDown("down")) {setLocation(getX(),getY()+5); } if(((sea)getWorld()).getCount()>20 ) {if(getImage()==smallL) { setImage(oldL);} if(getImage()==smallR) { setImage(oldR);} getbluefish(); } getyellowfish()
31、; if(((sea)getWorld()).getCount()>40&&((sea)getWorld()).getCount1()>20){ Greenfoot.stop(); ((sea) getWorld()).music.stop(); ((sea) getWorld()).gameWin(); } } public void getyellowfish() { yellowfish1 yellow1=(yellowfish1)getOneIntersectingObj
32、ect(yellowfish1.class); yellowfish2 yellow2=(yellowfish2)getOneIntersectingObject(yellowfish2.class); if(yellow1!=null) { Greenfoot.playSound("pop.wav"); yellow1.disappear(); ((sea) getWorld()).countChange(); } if(yellow2!=null) { Greenfoot.playSou
33、nd("pop.wav"); yellow2.disappear(); ((sea) getWorld()).countChange(); } } public void getbluefish(){ bluefish1 blue1=(bluefish1)getOneIntersectingObject(bluefish1.class); bluefish2 blue2=(bluefish2)getOneIntersectingObject(bluefish2.class); if(blue1!=null) {blue1.disappear(); Greenfoot.playSound("eating.wav"); ((sea) getWorld()).countChange1(); } if(blue2!=null) {blue2.disappear(); Greenfoot.playSound("eating.wav"); ((sea) getWorld()).countChange1(); } } } 14
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年銀行業(yè)年終工作總結(jié)8篇
- 電工年度工作總結(jié)11篇
- 鄉(xiāng)鎮(zhèn)衛(wèi)生院護(hù)士述職報(bào)告6篇
- 中專期末總結(jié)個(gè)人總結(jié)7篇
- 醫(yī)技科個(gè)人總結(jié)范文6篇
- 展望未來年終總結(jié)8篇
- 品質(zhì)年度工作總結(jié)報(bào)告4篇
- 市場月總結(jié)5篇
- 年終個(gè)人工作總結(jié)
- 檔案管理工作的自查報(bào)告8篇
- 護(hù)士近五年工作總結(jié)6篇
- 部門助理個(gè)人總結(jié)7篇
- 專項(xiàng)資金使用自查報(bào)告5篇
- 教師教研教學(xué)工作總結(jié)7篇
- 迎新晚會個(gè)人總結(jié)10篇