“大魚(yú)吃小魚(yú)”課程設(shè)計(jì)報(bào)告_第1頁(yè)
“大魚(yú)吃小魚(yú)”課程設(shè)計(jì)報(bào)告_第2頁(yè)
“大魚(yú)吃小魚(yú)”課程設(shè)計(jì)報(bào)告_第3頁(yè)
“大魚(yú)吃小魚(yú)”課程設(shè)計(jì)報(bào)告_第4頁(yè)
“大魚(yú)吃小魚(yú)”課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

學(xué)號(hào)12080202112013-2014學(xué)年第二學(xué)期《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程設(shè)計(jì)報(bào)告題目: 大魚(yú)吃小魚(yú)專業(yè): 網(wǎng)絡(luò)工程班級(jí): 網(wǎng)絡(luò)工程12(2)姓名: 管蔚雄指導(dǎo)教師: 徐寧成績(jī):計(jì)算機(jī)與信息工程系2014年6月6日設(shè)計(jì)的目的與要求 2TOC\o"1-5"\h\z設(shè) 計(jì)的 2設(shè) 計(jì)求 2實(shí) 現(xiàn)臺(tái)匕能 2\o"CurrentDocument"界 面 設(shè)計(jì) 2第二章 開(kāi)發(fā)平臺(tái)與技術(shù) 32.1java2.2greenfoot 42.3 環(huán) 境置 5第三章模塊具體實(shí)現(xiàn)和主要?jiǎng)赢?huà)觸發(fā) 7小結(jié) 8參考文獻(xiàn) 8附錄 9大魚(yú)吃小魚(yú)第一章設(shè)計(jì)目的與要求設(shè)計(jì)目的通過(guò)用greenfoot來(lái)設(shè)計(jì)“大魚(yú)吃小魚(yú)”這個(gè)游戲,來(lái)熟悉并學(xué)會(huì)運(yùn)用greenfoot這個(gè)軟件的同時(shí)鞏固我們專業(yè)課 java知識(shí)。設(shè)計(jì)要求熟悉GreenFoot平臺(tái);對(duì)游戲中所需類進(jìn)行設(shè)計(jì);寫(xiě)出源程序文件;對(duì)游戲進(jìn)行調(diào)試和分析。實(shí)現(xiàn)功能敵方有三類魚(yú)(鯊魚(yú)、藍(lán)魚(yú)和小黃魚(yú)),每一類魚(yú)的對(duì)象出現(xiàn)后,在游戲中處于隨機(jī)自由移動(dòng)狀態(tài),敵方大魚(yú)能吃小魚(yú);主角為紅魚(yú)且紅魚(yú)只有一條,玩家通過(guò)鍵盤(pán)方向鍵控制移動(dòng),紅魚(yú)有兩級(jí)狀態(tài),初始時(shí)處于低級(jí)狀態(tài),只能吃黃魚(yú),能被藍(lán)魚(yú)或鯊魚(yú)吃掉。初級(jí)狀態(tài)的紅魚(yú)經(jīng)過(guò)重重險(xiǎn)惡且吃掉一定數(shù)量的黃魚(yú)升級(jí)后,能吃黃魚(yú)和藍(lán)魚(yú),但還是能被鯊魚(yú)吃。吃掉一定數(shù)量的魚(yú),則顯示成功信息,結(jié)束游戲;若紅魚(yú)被鯊魚(yú)或藍(lán)魚(yú)吃掉,則顯示失敗信息。界面設(shè)計(jì)紅魚(yú)是主角,玩家通過(guò)鍵盤(pán)方向鍵控制移動(dòng),紅魚(yú)有兩級(jí)狀態(tài):初級(jí)狀態(tài)只能吃小黃魚(yú),會(huì)被藍(lán)魚(yú)和鯊魚(yú)吃掉;吃掉 20條小黃魚(yú)后回升級(jí)即長(zhǎng)大,能吃掉藍(lán)魚(yú),但還是能被鯊魚(yú)吃掉。紅魚(yú)升級(jí)后,吃黃魚(yú)數(shù)量達(dá)到 40,藍(lán)魚(yú)數(shù)量達(dá)到20,顯示成功信息,結(jié)束游戲;若紅魚(yú)被鯊魚(yú)或藍(lán)魚(yú)吃掉,顯示失敗信息。敵方大魚(yú)能吃小魚(yú),即鯊魚(yú)吃藍(lán)魚(yú)和黃魚(yú),藍(lán)魚(yú)吃黃魚(yú)。

第二章開(kāi)發(fā)平臺(tái)和技術(shù)Java語(yǔ)言簡(jiǎn)單性:Java最初是為對(duì)家用電器進(jìn)行集成控制而設(shè)計(jì)的一種語(yǔ)言,因此它必須簡(jiǎn)單明了。Java語(yǔ)言的簡(jiǎn)單性主要體現(xiàn)在以下三個(gè)方面:Java的風(fēng)格類似于C++,但是Java摒棄了C++4容易引發(fā)程序錯(cuò)誤的地方,如指針和內(nèi)存管理。Java提供了豐富的類庫(kù)。Java自身的基本系統(tǒng)所占用空間小于250KB(即編譯器和解釋器),它實(shí)現(xiàn)了垃圾自動(dòng)收集,簡(jiǎn)化了內(nèi)存的管理工作??煽啃院桶踩裕篔ava不支持指針,這杜絕了內(nèi)存的非法訪問(wèn)。Java的自動(dòng)單元收集防止了內(nèi)存丟失等動(dòng)態(tài)內(nèi)存分配導(dǎo)致的問(wèn)題。Java解釋器運(yùn)行時(shí)實(shí)施檢查,可以發(fā)現(xiàn)數(shù)組和字符串訪問(wèn)的越界;Java提供了異常處理機(jī)制,以便從錯(cuò)誤處理任務(wù)恢復(fù)。Java通過(guò)自己的安全機(jī)制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。當(dāng)Java字節(jié)碼進(jìn)進(jìn)入解釋器時(shí),首先必須經(jīng)過(guò)字節(jié)碼校驗(yàn)器的檢查,然后Java解釋器將決定程序中類的內(nèi)存布局,隨后,類裝載器負(fù)責(zé)把來(lái)自網(wǎng)絡(luò)的類裝載到單獨(dú)的內(nèi)存區(qū)域。跨平臺(tái)性:Java字節(jié)碼(*.class文件)面向?qū)ο螅喊殉绦驅(qū)崿F(xiàn)的每一個(gè)具體功能作為類,然后用類來(lái)構(gòu)成對(duì)象優(yōu)點(diǎn)是代碼可重用、系統(tǒng)易擴(kuò)展。多線程:通過(guò)使用多線程,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行為,提高系統(tǒng)的運(yùn)行效率。分布性:分布式包括數(shù)據(jù)分布和操作分布。數(shù)據(jù)分布是指數(shù)據(jù)可以分散在網(wǎng)絡(luò)的不同主機(jī)上;操作分布是指把一個(gè)計(jì)算分散在不同主機(jī)上處理。 它支持以上兩種分布性。對(duì)于前者,Java提供了一個(gè)叫做URL的對(duì)象,利用這個(gè)對(duì)象,可以訪問(wèn)Internet上的所有網(wǎng)絡(luò)資源;對(duì)于后者,Java提供的基于流套接字的網(wǎng)絡(luò)編程接口,為實(shí)現(xiàn)網(wǎng)絡(luò)的應(yīng)用和Wetg用提供了方便。豐富的類庫(kù)和API文檔GreenFootGreenfoot是由肯特大學(xué)的Michael和Martin開(kāi)發(fā)的一款游戲程序設(shè)計(jì)平臺(tái),主要用于程序設(shè)計(jì)的輔助教學(xué)。它是一個(gè)功能完整的開(kāi)發(fā)環(huán)境,可以方便地編寫(xiě)游戲和進(jìn)行游戲模擬。Greenfoot也可看做是一個(gè)二維圖形程序框架和集成開(kāi)發(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)境配置開(kāi)發(fā)運(yùn)行環(huán)境:JDK(JavaDevelopmentKit)+文本編輯器(UltraEdit)JDK是java開(kāi)發(fā)工具包,包括java類庫(kù)、java編譯器、java解釋器、java運(yùn)行環(huán)境和java命令行工具。/technetwork/java/javase/downloads/index.htmlIDE:集成開(kāi)發(fā)工具JCreator(Xinox)JBuilder(Borland)/jbuilder/VisualJ++(MicroSoft)VisualAge forJava(IBM)/software/vajava/about/index.htmlNetBeansEclipse /downloadsseD?-v*iopm?ntKit .一.….一?-..YtMJirivsl 1T>vCtaCie CMluLKerisuA'ji""niKMf(<>iJavaSLtudOWnliM-dt?CTfW?re,ThanKyoulot meOraciaOrinorvCodcfL*c*'?\t-AgfdvmtFnlforSCjyoum<iynowdvwnloddUiiu-sollwdfProdQt,fU立Oe?enpvon fSueLJnu* 45b-43rr|LJnu* 45b-43rr|日立才tA0|LinuiAHMRottFioaiAfilLmuxU力ukUnuvg』MacOSxIansrA&(SkfR4S&lant必[SVR4口曰二*一“834134吉xM?廠即CC5VR4「斗cm才q事》StilusSP301*撲,PPARCe-l'Dil(SVR4口》亡KG口白}工廠*F?C64bJlAindowsh自打Wmd<WH>64e-77MB76&MBIIS6!MBT3298MB116 L4日1313UP1734。MB14007MRns13LIB^4saMB,/MSs>aiqmb2J.94MD■更33MU?23A4MB二一一rin4jdkJmuK?rmvip gr不|ftkfijSIuniJMJirrn\/rp,TitHargr*|flk7u5i-UHUi-i-M6.riim?jrtk7uhillnidmi^A^EAr.ijf■*jdHX,uMlim.iK立Idk7?&1MG4?Lnrrgf*Kk/H5,鼻XX64.drtlQ.pk^tPbi市ri3i^QELir.y*}0k加6?-sc4ari=」溜Mjeihqi1jdk71|M,口Mil、nfl4.Uii.7*jdkfiiM^olnrlsxDl.trtc事Idkjrtk7tiB1sluitc.ln*Q工jefkfuM、驍4mii,/軟J3『)ftJdk,Ai3,?占rit0>rcvfl.Ur.9xidh尸”5、仲卜5^5 白斗|dkFuMwindows4ivrJ>vaseD?-v-?iopm?ntKht7U51D?motxndam包?,Downloads .IJnvnSFmvmlEXMHjiFKit7■■匕/rk*m<wHtrd^rwtinb*,rWwwiikkffrf*inn-r*^tmn Iv?i,「l3m”ei「H1k]I teOWfltHtGdk) jriv.i3*th7。I士】「r】iJDK的安裝安裝:和一般應(yīng)用程序相似,有向?qū)е敢?/p>

請(qǐng)從下面的列表中選擇要安裝的可選功能.安裝完成后,您可以使用控制面板“中的添加r珊除程序?qū)嵱贸绦騺?lái)更改您選擇的功能安裝到:D:'Java'jdk\功能說(shuō)明安裝到:D:'Java'jdk\JavafTW)SEOeve-opmentKit6Upc?(;e5>包括專用JR.E6Update5.這將需要300MB的硬盤(pán)驅(qū)動(dòng)器空間.更改:印…<上一步回][下一步婚>][取消環(huán)境變量的設(shè)置Path使得系統(tǒng)可以在任何路徑下識(shí)別java命令。Classpath為java加載類(classorlib)路徑,只有類在classpath中,java命令才能識(shí)別。JDK的安裝路徑:C:\Java\jdkpath路徑為:C:\Java\jdk\binclasspath路徑為:.;C:\Java\jdk\libGreenfoot安裝:Greenfoot軟件直接在自己的pc機(jī)上安裝即可用。第三章模塊具體實(shí)現(xiàn)和主要?jiǎng)赢?huà)觸發(fā)涉及的類及類名本實(shí)驗(yàn)中world類中有一個(gè)子類 sea,actor類中有十個(gè)子類,分別是主角類即紅魚(yú)類 Redfish,黃魚(yú)兩個(gè)類 yellowfish1與yellowfish2,藍(lán)魚(yú)兩個(gè)類bluefish1與bluefish2,鯊魚(yú)類shark,水泡類blister,一個(gè)計(jì)數(shù)器 Counter,一個(gè)Scoreboard,一個(gè)success。各類實(shí)現(xiàn)的效果sea類:添加了一個(gè)紅魚(yú)的對(duì)象即主角;計(jì)數(shù)器的兩個(gè)對(duì)象分別是用于計(jì)數(shù)吃掉黃魚(yú)的數(shù)量和吃掉藍(lán)魚(yú)的數(shù)量;黃魚(yú)與藍(lán)魚(yú)在世界里處于隨機(jī)出現(xiàn)自由移動(dòng)狀態(tài);實(shí)現(xiàn)計(jì)數(shù)器加一的方法;游戲結(jié)束的方法;游戲成功的方法;背景音樂(lè)循環(huán)播放。Redfish類:紅魚(yú)設(shè)置四種狀態(tài),在構(gòu)造方法中設(shè)置了其初始狀態(tài),然后通過(guò)if判斷語(yǔ)句來(lái)限制它的狀態(tài);在act方法中設(shè)置了關(guān)聯(lián)鍵盤(pán)向左移游戲動(dòng)作;吃黃魚(yú)藍(lán)魚(yú)動(dòng)作,具體實(shí)現(xiàn)通過(guò) if語(yǔ)句控制;魚(yú)升級(jí)及游戲成功也是在 act方法中用if語(yǔ)句來(lái)限定。yellowfish1與yellowfish2類:黃魚(yú)在邊界消失。bluefish1與bluefish2類:藍(lán)魚(yú)在邊界消失;在其 act方法里設(shè)置了吃黃魚(yú),通過(guò)if語(yǔ)句,并調(diào)用sea類的getCount()方法,其數(shù)值小于等于20情況下可以吃紅魚(yú)。shark類:鯊魚(yú)在邊界消失;在 act方法中設(shè)置了吃黃魚(yú),藍(lán)魚(yú),紅魚(yú),并且當(dāng)吃到紅魚(yú),游戲結(jié)束,調(diào)用sea類的gameover方法。blister類:水泡在邊界消失。ScoreBoard與success類:主要是繪制分?jǐn)?shù)界面背景。Counter類:用于計(jì)數(shù)的類。小結(jié)此次課程設(shè)計(jì),使我更扎實(shí)的掌握了本學(xué)期專業(yè)課java知識(shí)。當(dāng)然,設(shè)計(jì)過(guò)程中遇到了一些困難和問(wèn)題,實(shí)在想不出來(lái)的問(wèn)同學(xué)或請(qǐng)教老師,終于游逆而解。課程設(shè)計(jì)體現(xiàn)出自己綜合運(yùn)用知識(shí)的能力,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱之處。實(shí)踐出真知,通過(guò)親自設(shè)計(jì),使我們掌握的知識(shí)不再是是紙上談兵。說(shuō)實(shí)話,本次課程設(shè)計(jì)花了不少時(shí)間,時(shí)間主要花在游戲設(shè)計(jì)即代碼上,游戲做好后,感覺(jué)所花時(shí)間是值得的,個(gè)人對(duì)自己設(shè)計(jì)游戲較滿意,雖然不是做得那么精致,還存在些許需要改進(jìn)的地方,我想以后有機(jī)會(huì)繼續(xù)完善它。我認(rèn)為,在這次課程設(shè)計(jì)中,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)中,我學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,冉學(xué)習(xí)、冉實(shí)踐。這對(duì)于我們的將來(lái)也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂(lè),找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情。就像中國(guó)提倡的艱苦奮斗一樣,我們都可以在實(shí)驗(yàn)結(jié)束之后變的更加成熟,會(huì)面對(duì)需要面對(duì)的事情。此次設(shè)計(jì)也讓我明白了思路即出路,有什么不懂不明白的地方要及時(shí)請(qǐng)教或上網(wǎng)查詢,只要認(rèn)真鉆研,動(dòng)腦思考,動(dòng)手實(shí)踐,就沒(méi)有弄不懂的知識(shí)。參考文獻(xiàn):Greenfoot官方網(wǎng)站;Java程序設(shè)計(jì)教程(牛曉太主編)附錄:(部分代碼)sea類:importgreenfoot.*;publicclassseaextendsWorld{Countermycounter;Countermycounter1;GreenfootSoundmusic;publicsea(){super(800,600,1);addObject(newRedfish(),400,300);mycounter=newCounter("吃掉的yellowfish數(shù)量:");mycounter1=newCounter("吃掉的blue數(shù)量:");addObject(mycounter,100,20);addObject(mycounter1,300,20);music=newGreenfootSound("justinbieber-mistletoe.mp3");}publicvoidact(){music.playLoop();if(Greenfoot.getRandomNumber(100)<3){addObject(newyellowfish1(),0,Greenfoot.getRandomNumber(600));addObject(newyellowfish2(),800,Greenfoot.getRandomNumber(600));}if(Greenfoot.getRandomNumber(100)<1){addObject(newbluefish1(),0,Greenfoot.getRandomNumber(600));addObject(newbluefish2(),800,Greenfoot.getRandomNumber(600));addObject(newshark(),0,Greenfoot.getRandomNumber(600));addObject(newblister(),Greenfoot.getRandomNumber(800),600);}}publicvoidcountChange(){mycounter.setValue(mycounter.getValue()+1);}publicvoidcountChange1(){mycounter1.setValue(mycounter1.getValue()+1);}publicintgetCount(){returnmycounter.getValue();}publicintgetCount1(){returnmycounter1.getValue();}publicvoidgameOver(){addObject(newScoreBoard(10*(mycounter.getValue())+20*(mycounter1.getValue())),getWidth()/2,getHeight()/2);}publicvoidgameWin(){addObject(newsuccess(10*(mycounter.getValue())+20*(mycounter1.getValue())),getWidth()/2,getHeight()/2);}}Redfish類:importgreenfoot.*;publicclassRedfishextendsActor{GreenfootImagesmallL=newGreenfootImage("Z1L.png");GreenfootImagesmallR=newGreenfootImage("Z1R.png");GreenfootImageoldL=newGreenfootImage("Z2L.png");GreenfootImageoldR=newGreenfootImage("Z2R.png");publicRedfish(){setImage(smallL);}publicvoidact(){if(Greenfoot.isKeyDown("right")){if(((sea)getWorld()).getCount()>20){setImage(oldR);}else{setImage(smallR);}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(Greenfoot.isKeyDown("down")){setLocation(getX(),getY()+5);}if(((sea)getWorld()).getCount()>20){if(getImage()==smallL){setImage(oldL);}if(getImage()==smallR){setImage(oldR);}getbluefish();}getyellowfish();if(((sea)getWorld()).getCount()>40&&((sea)getWorld()).getCount1()>2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論