2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  JAVAME程序設(shè)計</p><p><b>  課程設(shè)計說明書</b></p><p>  成績: </p><p> 題 目:手機推箱子游戲</p><p> 學 院:計算機與信息工程學院</p><p> 專 業(yè):計算機科學與技

2、術(shù)</p><p> 班 級:</p><p> 姓 名:</p><p> 學 號:</p><p> 起止時間:2013-6-24—2013-7-5</p><p><b>  課程設(shè)計任務(wù)書</b></p><p>  一、設(shè)計題目:《手機推箱子游戲

3、》</p><p>  二、設(shè)計內(nèi)容:推箱子是一款備受玩家喜愛的經(jīng)典游戲。本設(shè)計針對推箱子實現(xiàn)了新游戲,選關(guān),恭喜過關(guān),繼續(xù)或重玩等過程??梢郧宄难菔靖鱾€畫面的切換和一些游戲開發(fā)的類庫。</p><p><b>  三、設(shè)計要求:</b></p><p>  1、開始顯示歡迎界面,然后是游戲界面,主界面顯示各種鍵的功能以及菜單-新游戲和選關(guān)。

4、</p><p>  2、開始玩游戲,如果贏了可進入下一關(guān)或重來。采用確定和取消來實現(xiàn)以上功能。</p><p>  3、如果選關(guān),則出現(xiàn)選關(guān)界面,按確定開始選關(guān),取消則返回初始化界面。</p><p><b>  四、工作計劃:</b></p><p><b>  目 錄</b></p&g

5、t;<p>  1、程序的算法及說明2</p><p>  1.1、程序算法2</p><p>  1.2、程序的使用方法2</p><p>  2、程序的項目結(jié)構(gòu)及說明5</p><p>  3、程序運行與發(fā)布6</p><p><b>  3.1歡迎界面6</b>&l

6、t;/p><p><b>  3.2主界面6</b></p><p>  3.3 游戲界面7</p><p><b>  3.4選關(guān)界面8</b></p><p><b>  4、總結(jié)8</b></p><p><b>  5、參考文獻9

7、</b></p><p>  附錄:程序源代碼10</p><p>  1、程序的算法及說明</p><p><b>  1.1、程序算法</b></p><p>  游戲規(guī)則:推箱子游戲的目的是用最少的步數(shù)把所有的箱子都推到目標位置。在游戲中,箱子只能推動而不能拉動。操作者通過操作人物左右上下的移動來推動

8、箱子。一次只能推動一個箱子,推一次就記做一步。注意不能把箱子推到死角,否則游戲?qū)⒉荒芾^續(xù),此時建議重新玩一次。如果成功將箱子推到指定位置,屏幕會出現(xiàn)提示,此時可進入下一關(guān)繼續(xù)游戲。本游戲共40關(guān),游戲者可隨意選關(guān),每關(guān)的難易程度不同,越往后障礙物越多,地圖越復(fù)雜進行游戲越費腦力。</p><p>  1.2、程序的使用方法</p><p>  1.開始顯示歡迎界面,歡迎界面顯示了游戲制作者

9、的主要信息,然后自動跳轉(zhuǎn)到游戲界面。</p><p>  2. 主界面中顯示各種鍵的功能以及菜單-新游戲和選關(guān)。手機上下左右鍵分別控制人物上、下、左、右移動。手機上中間的按鈕即是“確定”鍵?!?、3”數(shù)字鍵可控制游戲進入上一關(guān)節(jié)和下一關(guān)節(jié)。</p><p>  3.如果選關(guān),則出現(xiàn)選關(guān)界面,按確定開始選關(guān),進入游戲界面,取消則返回主界面。</p><p>  4.開

10、始玩游戲,將箱子推到指定位置即可進入下一關(guān)。也可以重來游戲。采用確定和取消來實現(xiàn)以上功能。</p><p><b>  程序流程圖如下:</b></p><p><b>  圖 1 程序流程圖</b></p><p><b>  系統(tǒng)結(jié)構(gòu)框圖如下:</b></p><p>  

11、圖 2 系統(tǒng)結(jié)構(gòu)框圖</p><p>  2、程序的項目結(jié)構(gòu)及說明</p><p>  本程序的項目結(jié)構(gòu)如圖3所示</p><p>  圖3 手機游戲推箱子目結(jié)構(gòu)圖</p><p>  本程序的JAVA源文件說明如下:</p><p>  本程序共AllMap.java,Continue.java, GameChoos

12、e.java, GameMain.java, GameMidlet.java, ImageAction.java, Map.java,F(xiàn)lashScreen.java,8個JAVA源文件:</p><p>  AllMap.java:設(shè)計了所有推箱子的地圖數(shù)組;</p><p>  Continue.java:游戲是否繼續(xù);</p><p>  GameChoose

13、.java:選關(guān);</p><p>  GameMain.java:主游戲進入游戲狀態(tài); </p><p>  GameMidlet.java:該文件是MIDlet父類的子類;</p><p>  ImageAction.java;圖片運行及顯示;</p><p>  FlashScreen.java:閃屏;</p><p

14、>  Map.java:設(shè)置地圖長,寬,高等參數(shù)及游戲角色; </p><p><b>  3、程序運行與發(fā)布</b></p><p><b>  3.1歡迎界面</b></p><p>  歡迎界面顯示了程序第一個屏幕,歡迎界面如圖4所示。 </p><p><b>  

15、圖4 歡迎界面</b></p><p><b>  3.2主界面</b></p><p>  進入主程序界面后可根據(jù)界面中的提示選擇新游戲或選關(guān),主界面如圖5所示。</p><p><b>  圖5 程序主界面</b></p><p><b>  3.3 游戲界面</

16、b></p><p>  開始玩游戲,如果贏了可進入下一關(guān)或重來。采用確定和取消來實現(xiàn)以上功能。</p><p>  圖6 開始游戲界面 圖7 過關(guān)出現(xiàn)的界面</p><p><b>  3.4選關(guān)界面</b></p><p>  可以在方括號內(nèi)填取1-40的數(shù)字進行

17、選關(guān),確定后,進入相應(yīng)的游戲界面。</p><p><b>  圖8選關(guān)界面</b></p><p><b>  4、總結(jié)</b></p><p>  在本次課程設(shè)計過程中,為努力做到最好本人做了很多工作。設(shè)計前從各方面考慮選定了手機游戲推箱子,選定題目后,通過網(wǎng)上搜索等途徑尋找了一些資料方便設(shè)計。盡管如此,在設(shè)計時還是遇

18、到很多問題。起初很慌亂,但是在老師同學的幫助下,得到了解決。隨后便逐漸的適應(yīng)了這一過程,也慢慢摸索到了一些解決方法和途徑。很辛苦,但是當程序能夠順利運行后非常開心。</p><p>  推箱子游戲有不足之處:沒有實現(xiàn)撤銷功能—就是說在意識到自己放錯位置之后,不能返回了。而且只有過關(guān)才能選擇繼續(xù)或重玩,輸了就不能重玩。這是本次設(shè)計的遺憾之處,但是通過本次設(shè)計,本人對JAVAME有了更深層次的理解和認識。對其中的很多

19、類庫以及很多方法都更為了解與掌握??傊找媪级啵@次設(shè)計為本人以后更深入的學習JAVA奠定了基礎(chǔ),也提高了自身動手實踐能力。</p><p><b>  5、參考文獻</b></p><p>  [1] 崔尚志. Mobile手機應(yīng)用開發(fā).機械工業(yè)出版社.1989:60-98</p><p>  [2] 張強,陸文華. J2ME手機開發(fā)入門.1

20、993,29(6):263-268</p><p>  [3] 王夢瑤. Windows Mobile平臺應(yīng)用與開發(fā).清華大學出版社.1992:8-13</p><p><b>  附錄:程序源代碼</b></p><p><b>  部分主要代碼:</b></p><p><b>  /

21、*</b></p><p>  * GameMidlet.java</p><p><b>  */</b></p><p>  package gamepackage;</p><p>  import javax.microedition.midlet.*;</p><p>  i

22、mport javax.microedition.lcdui.*;</p><p>  public class GameMidlet extends MIDlet{</p><p>  //繼承MIDlet類的GameMidlet</p><p>  private Display display=null;</p><p>  priva

23、te GameChoose choice=null;</p><p>  private FlashScreen flashscreen; //聲明閃屏畫面對象</p><p>  public GameMidlet() {</p><p>  choice=new GameChoose(this);</p><p>  display=

24、Display.getDisplay(this);</p><p>  //要使組件能在屏幕上顯示 }</p><p>  public void startApp(){</p><p>  // display.setCurrent(choice);//把choice設(shè)置為當前界面</p><p><b>  }</b>

25、;</p><p>  public void pauseApp(){</p><p><b>  //暫停}</b></p><p>  public void play(Displayable displayable){</p><p>  display.setCurrent(displayable);// 把di

26、splayable設(shè)置為當前界面</p><p><b>  }</b></p><p>  public void destroyApp(boolean unconditional){ //銷毀}</p><p>  public void loadFlashScreen(){</p><p>  flashscree

27、n=new FlashScreen(this); //創(chuàng)建閃屏</p><p>  display.setCurrent(flashscreen); //設(shè)置閃屏畫面為當前顯示畫面</p><p><b>  }</b></p><p>  public void FlashScreen(){</p><p> 

28、 display.setCurrent(choice);</p><p><b>  }}}</b></p><p>  /* GameMain.java</p><p><b>  */</b></p><p>  package gamepackage;</p><p>

29、;  import javax.microedition.lcdui.*;</p><p>  import javax.microedition.lcdui.game.*;</p><p>  public class GameMain extends GameCanvas implements Runnable{</p><p>  private boolea

30、n runningFlag=true;</p><p>  private boolean cancel=false;</p><p>  private int index;</p><p>  private GameChoose choice=null;</p><p>  private Map map;</p><

31、;p>  private Graphics g;</p><p>  private Continue con;</p><p>  public GameMain(GameChoose choice){</p><p>  this(choice,0); }</p><p>  public GameMain(GameChoose c

32、hoice,int index) {</p><p>  super(false);</p><p>  g=getGraphics();</p><p>  map=new Map(this,g,index);</p><p>  this.choice=choice;</p><p>  this.index=in

33、dex;</p><p>  con=new Continue();}</p><p>  public void stop(){</p><p>  runningFlag=false; }</p><p>  public void commandAction(Command cmd,Displayable displayable)

34、{</p><p>  public void start(){</p><p>  Thread thread=new Thread(this);</p><p>  thread.start(); }</p><p>  public void keyPressed(int keyCode){</p><p>  

35、int key=getGameAction(keyCode);</p><p>  if(map.isFinish()){</p><p>  switch(key){</p><p>  case GameCanvas.LEFT:</p><p>  case GameCanvas.RIGHT:</p><p>  

36、if(con.ok==true){</p><p>  con.ok=false;</p><p><b>  }else</b></p><p>  { con.ok=true; }</p><p><b>  break;</b></p><p>  case GameC

37、anvas.FIRE:</p><p>  if(con.ok==true){</p><p><b>  index++;</b></p><p>  if(index==42){</p><p>  index=0;} }</p><p>  con.ok=true;</p>&

38、lt;p>  map.initMap(index);</p><p><b>  break;</b></p><p><b>  default:</b></p><p>  if(keyCode==-7){</p><p><b>  stop()}}</b><

39、/p><p><b>  }else{</b></p><p>  if(cancel==false){</p><p>  switch(key){</p><p>  case GameCanvas.DOWN:</p><p>  map.getKey(3);</p><p&g

40、t;<b>  break;</b></p><p>  case GameCanvas.UP:</p><p>  map.getKey(1);</p><p><b>  break;</b></p><p>  case GameCanvas.LEFT:</p><p>

41、;  map.getKey(2);</p><p><b>  break;</b></p><p>  case GameCanvas.RIGHT:</p><p>  map.getKey(4);</p><p><b>  break;</b></p><p><

42、b>  default:</b></p><p>  switch(keyCode){</p><p><b>  case 49:</b></p><p><b>  index--;</b></p><p>  if(index==-1){</p><p&g

43、t;  index=41; }</p><p>  map.initMap(index);</p><p><b>  break;</b></p><p><b>  case 51:</b></p><p><b>  index++;</b></p><

44、;p>  if(index==42){</p><p>  index=0; }</p><p>  map.initMap(index);</p><p><b>  break;</b></p><p><b>  case -7:</b></p><p>  ca

45、ncel=true;</p><p>  break; } }</p><p><b>  }else{</b></p><p>  switch(key){</p><p>  case GameCanvas.LEFT:</p><p>  case GameCanvas.RIGHT:</

46、p><p>  if(con.ok2==true){</p><p>  con.ok2=false;</p><p><b>  }else{</b></p><p>  con.ok2=true; }</p><p><b>  break;</b></p>&

47、lt;p>  case GameCanvas.FIRE:</p><p>  if(con.ok2==true){</p><p><b>  stop();</b></p><p><b>  }else{</b></p><p>  cancel=false; }</p>&

48、lt;p>  con.ok2=true;</p><p>  break; } } }}</p><p>  private void setBackground(){</p><p>  g.setColor(0x6A4055);</p><p>  g.fillRect(0,0, getWidth(),getHeight());&l

49、t;/p><p>  g.setColor(0xF89433);</p><p>  g.drawLine(0,20,getWidth(),20); </p><p>  g.drawString("你正在攻克第"+(index+1)+"關(guān)",getWidth()/2,18, Graphics.HCENTER|Graphics.B

50、OTTOM);</p><p>  g.drawRect(0, 0, getWidth()-2, getHeight()-3);</p><p>  g.drawRect(1,1, getWidth()-3, getHeight()-4); }</p><p>  public void run(){ </p><p>  while(ru

51、nningFlag){</p><p>  if(map.isFinish()){</p><p>  con.paint(g);</p><p><b>  }else{</b></p><p>  if(cancel==false){</p><p>  setBackground();<

52、;/p><p>  map.paint();</p><p><b>  }else{</b></p><p>  con.paint1(g); } }</p><p>  flushGraphics();</p><p><b>  try{</b></p>&l

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論