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

下載本文檔

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

文檔簡介

1、<p>  《WEB應(yīng)用與開發(fā)》</p><p><b>  課程設(shè)計報告</b></p><p>  實驗題目: 貪吃蛇 </p><p>  專 業(yè): 信息管理與信息系統(tǒng) </p><p>  學(xué)生姓名: </p

2、><p>  班級學(xué)號: </p><p><b>  分組成員: </b></p><p>  指導(dǎo)教師: </p><p>  2012 年 6月8 日 </p><p>  《WEB應(yīng)用與開發(fā)》課程設(shè)計報告</p><p&g

3、t;<b>  XXXX</b></p><p><b>  一、設(shè)計時間</b></p><p>  2012年6月4日-----6月8日</p><p><b>  二、設(shè)計地點</b></p><p>  信息科學(xué)與工程學(xué)院機(jī)房(新校區(qū)510機(jī)房)</p>

4、<p><b>  三、設(shè)計目的</b></p><p>  綜合運(yùn)用在校期間所學(xué)理論知識和技能,設(shè)計開發(fā)貪吃蛇游戲,使自己熟悉應(yīng)用系統(tǒng)的開發(fā)過程,培養(yǎng)獨立思考能力,檢驗學(xué)習(xí)效果和動手能力,提高工程實踐能力。</p><p><b>  四、設(shè)計小組成員</b></p><p><b>  XXXXX&

5、lt;/b></p><p><b>  五、指導(dǎo)老師</b></p><p>  XXXXXXXXXX</p><p><b>  六、設(shè)計課題</b></p><p>  經(jīng)過小組組員的討論,決定選取選題8、貪吃蛇;</p><p>  理由:1、整個系統(tǒng)簡潔明了,

6、適于初學(xué)者;</p><p>  2、界面美觀、功能較齊全;</p><p>  3、操作簡單、娛樂性強(qiáng)。</p><p>  七、基本思路及關(guān)鍵問題的解決方法;</p><p>  本系統(tǒng)主要是完成貪吃蛇游戲的基本操作。用戶可以自己練習(xí)和娛樂。本系統(tǒng)需要滿足以下幾點要求:</p><p>  (1) 利用方向鍵來改變

7、蛇的運(yùn)行方向。 </p><p>  (2) 空格鍵暫?;蚶^續(xù)游戲,并在隨機(jī)的地方產(chǎn)生食物。 </p><p>  (3) 吃到食物就變成新的蛇體,碰到壁或自身則游戲結(jié)束,否則正常運(yùn)行。</p><p><b>  八、算法及流程圖</b></p><p>  九、調(diào)試過程中出現(xiàn)的問題及相應(yīng)解決辦法;</p>

8、<p>  在蛇的移動的表示上也不太清楚,找了一些資料后發(fā)現(xiàn)蛇身由一串基本圖形構(gòu)成,每過一秒,檢測前面是什么,如果是空的,那么把頭畫成普通身體的樣子,再在前方(或側(cè)面,如果轉(zhuǎn)彎的話)再畫一個頭,并將其坐標(biāo)記入數(shù)組,數(shù)組要足夠大,再把尾巴畫成背景色;如果前面是食物,尾巴就不刪除,這里的難點是數(shù)組里的操作和坐標(biāo)的表示:把頭添在最后一個元素,把第一個元素提取(也就是尾巴)。</p><p>  最后在排行

9、榜和存檔的讀取問題上遇到了困難,在同學(xué)的幫助下解決了這個難題。</p><p>  十、課程設(shè)計心得體會;</p><p>  這次java課程設(shè)計讓我重新認(rèn)識到了編程的藝術(shù),在學(xué)習(xí)、使用Java的過程中,通過與以前所學(xué)的C/C++內(nèi)容的對比,讓我進(jìn)一步鞏固了C/C++的知識,并更進(jìn)一步在總體上讓我對編程語言有了更新的認(rèn)識。在不斷的設(shè)計、調(diào)試、修改的過程當(dāng)中,我對程序的設(shè)計與構(gòu)架在整體上有

10、了長足的進(jìn)步。</p><p>  在做java課程設(shè)計以前,我對Java游戲開發(fā)只是停留在理論知識的水平上,是“紙上談兵”,缺乏實際的軟件開發(fā)經(jīng)驗。這次通過做java課程設(shè)計,我完成了貪吃蛇游戲的軟件開發(fā)任務(wù)。在整個開發(fā)過程中遇到了很多問題,如蛇的移動的表示、排行榜和存檔的讀取問題、屏幕太閃爍的問題、圖形化界面的設(shè)計問題,但最終都被我一一解決</p><p>  (本人有完整的項目需要的

11、話發(fā)郵件給我491990141@qq.com)</p><p>  十一、源程序(每句語言要有詳細(xì)解釋);</p><p>  <p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span</p><p>  style='font-size:18

12、.0pt;font-family:華文楷體;color:#339966'>貪吃蛇<span lang=EN-US></p><p>  v.10 0906601-01</span>、<span lang=EN-US>07</span>、<span lang=EN-US>08<o:p></o:p></span&g

13、t;</span></b></p></p><p>  <html><head></p><p>  <title>貪吃蛇 v.10 0906601-01、07、08</title></p><p><b>  <style></b></p&g

14、t;<p><b>  body{</b></p><p>  font-size:9pt;</p><p><b>  }</b></p><p><b>  table{</b></p><p>  border-collapse: collapse;<

15、/p><p>  border:solid #333 1px;</p><p><b>  }</b></p><p><b>  td{</b></p><p>  height: 10px;</p><p>  width: 10px;</p><p>

16、;  font-size: 0px;</p><p><b>  }</b></p><p><b>  .filled{</b></p><p>  background-color:blue;</p><p><b>  }</b></p><p>

17、<b>  </style></b></p><p><b>  </head></b></p><p><b>  <script></b></p><p>  function $(id){return document.getElementById(id);}

18、</p><p><b>  //貪吃蛇類</b></p><p>  var Snake = {</p><p>  tbl: null,</p><p><b>  /**</b></p><p>  * body: 蛇身,數(shù)組放蛇的每一節(jié),</p><

19、;p>  * 數(shù)據(jù)結(jié)構(gòu){x:x0, y:y0, color:color0},</p><p>  * x,y表示坐標(biāo),color表示顏色</p><p><b>  **/</b></p><p><b>  body: [],</b></p><p>  //當(dāng)前移動的方向,取值0,1,2,

20、3, 分別表示向上,右,下,左, 按鍵盤方向鍵可以改變它</p><p>  direction: 0,</p><p><b>  //定時器</b></p><p>  timer: null,</p><p><b>  //速度</b></p><p>  speed

21、: 250,</p><p><b>  //是否已經(jīng)暫停</b></p><p>  paused: true,</p><p><b>  //行數(shù)</b></p><p>  rowCount: 30,</p><p><b>  //列數(shù)</b>

22、</p><p>  colCount: 30,</p><p><b>  //初始化</b></p><p>  init: function(){</p><p>  var colors = ['red','orange','yellow','green&#

23、39;,'blue','purple','#ccc'];</p><p>  this.tbl = $("main");</p><p>  var x = 0;</p><p>  var y = 0;</p><p>  var colorIndex = 0;</p

24、><p>  //產(chǎn)生初始移動方向</p><p>  this.direction = Math.floor(Math.random()*4);</p><p><b>  //構(gòu)造table</b></p><p>  for(var row=0;row<this.rowCount;row++){</p>

25、;<p>  var tr=this.tbl.insertRow(-1);</p><p>  for(var col=0;col<this.colCount;col++) {</p><p>  var td=tr.insertCell(-1);</p><p><b>  }</b></p><p&g

26、t;<b>  }</b></p><p>  //產(chǎn)生20個松散節(jié)點</p><p>  for(var i=0; i<10; i++){</p><p>  x = Math.floor(Math.random()*this.colCount);</p><p>  y = Math.floor(Math.ra

27、ndom()*this.rowCount);</p><p>  colorIndex = Math.floor(Math.random()*7);</p><p>  if(!this.isCellFilled(x,y)){</p><p>  this.tbl.rows[y].cells[x].style.backgroundColor = colors[col

28、orIndex];</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //產(chǎn)生蛇頭</b></p><p>  while(true){</p><p>  x = Math.floor(Math

29、.random()*this.colCount);</p><p>  y = Math.floor(Math.random()*this.rowCount);</p><p>  if(!this.isCellFilled(x,y)){</p><p>  this.tbl.rows[y].cells[x].style.backgroundColor = &quo

30、t;black";</p><p>  this.body.push({x:x,y:y,color:'black'});</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b>&

31、lt;/p><p>  this.paused = true;</p><p><b>  //添加鍵盤事件</b></p><p>  document.onkeydown= function(e){</p><p>  if (!e)e=window.event;</p><p>  switch

32、(e.keyCode | e.which | e.charCode){</p><p>  case 13: {</p><p>  if(Snake.paused){</p><p>  Snake.move();</p><p>  Snake.paused = false;</p><p><b>  

33、}</b></p><p><b>  else{</b></p><p>  //如果沒有暫停,則停止移動</p><p>  Snake.pause();</p><p>  Snake.paused = true;</p><p><b>  }</b>&l

34、t;/p><p><b>  break;</b></p><p><b>  }</b></p><p>  case 37:{//left</p><p><b>  //阻止蛇倒退走</b></p><p>  if(Snake.direction==

35、1){</p><p><b>  break;</b></p><p><b>  }</b></p><p>  Snake.direction = 3;</p><p><b>  break;</b></p><p><b>  }&l

36、t;/b></p><p>  case 38:{//up</p><p>  //快捷鍵在這里起作用</p><p>  if(event.ctrlKey){</p><p>  Snake.speedUp(-20);</p><p><b>  break;</b></p>

37、<p><b>  }</b></p><p>  if(Snake.direction==2){//阻止蛇倒退走</p><p><b>  break;</b></p><p><b>  }</b></p><p>  Snake.direction = 0;

38、</p><p><b>  break;</b></p><p><b>  }</b></p><p>  case 39:{//right</p><p>  if(Snake.direction==3){//阻止蛇倒退走</p><p><b>  brea

39、k;</b></p><p><b>  }</b></p><p>  Snake.direction = 1;</p><p><b>  break;</b></p><p><b>  }</b></p><p>  case 40:

40、{//down</p><p>  if(event.ctrlKey){</p><p>  Snake.speedUp(20);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(Snake.directio

41、n==0){//阻止蛇倒退走</p><p><b>  break;</b></p><p><b>  }</b></p><p>  Snake.direction = 2;</p><p><b>  break;</b></p><p><

42、;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  },</b></p><p><b>  //移動</b></p><p>  mo

43、ve: function(){</p><p>  this.timer = setInterval(function(){</p><p>  Snake.erase();</p><p>  Snake.moveOneStep();</p><p>  Snake.paint();</p><p>  }, thi

44、s.speed);</p><p><b>  },</b></p><p><b>  //移動一節(jié)身體</b></p><p>  moveOneStep: function(){</p><p>  if(this.checkNextStep()==-1){</p><p&

45、gt;  clearInterval(this.timer);</p><p>  alert("Game over!\nPress Restart to continue.");</p><p><b>  return;</b></p><p><b>  }</b></p><

46、p>  if(this.checkNextStep()==1){</p><p>  var _point = this.getNextPos();</p><p>  var _x = _point.x;</p><p>  var _y = _point.y;</p><p>  var _color = this.getColor

47、(_x,_y);</p><p>  this.body.unshift({x:_x,y:_y,color:_color});</p><p>  //因為吃了一個食物,所以再產(chǎn)生一個食物</p><p>  this.generateDood();</p><p><b>  return;</b></p>

48、<p><b>  }</b></p><p>  //window.status = this.toString();</p><p>  var point = this.getNextPos();</p><p>  //保留第一節(jié)的顏色</p><p>  var color = this.body

49、[0].color;</p><p><b>  //顏色向前移動</b></p><p>  for(var i=0; i<this.body.length-1; i++){</p><p>  this.body[i].color = this.body[i+1].color;</p><p><b>

50、;  }</b></p><p>  //蛇尾減一節(jié), 蛇尾加一節(jié),呈現(xiàn)蛇前進(jìn)的效果</p><p>  this.body.pop();</p><p>  this.body.unshift({x:point.x,y:point.y,color:color});</p><p>  //window.status = this

51、.toString();</p><p><b>  },</b></p><p>  //探尋下一步將走到什么地方</p><p>  pause: function(){</p><p>  clearInterval(Snake.timer);</p><p>  this.paint();

52、</p><p><b>  },</b></p><p>  getNextPos: function(){</p><p>  var x = this.body[0].x;</p><p>  var y = this.body[0].y;</p><p>  var color = thi

53、s.body[0].color;</p><p><b>  //向上</b></p><p>  if(this.direction==0){</p><p><b>  y--;</b></p><p><b>  }</b></p><p><

54、;b>  //向右</b></p><p>  else if(this.direction==1){</p><p><b>  x++;</b></p><p><b>  }</b></p><p><b>  //向下</b></p>&

55、lt;p>  else if(this.direction==2){</p><p><b>  y++;</b></p><p><b>  }</b></p><p><b>  //向左</b></p><p><b>  else{</b>&

56、lt;/p><p><b>  x--;</b></p><p><b>  }</b></p><p><b>  //返回一個坐標(biāo)</b></p><p>  return {x:x,y:y};</p><p><b>  },</b&g

57、t;</p><p>  //檢查將要移動到的下一步是什么</p><p>  checkNextStep: function(){</p><p>  var point = this.getNextPos();</p><p>  var x = point.x;</p><p>  var y = point.y

58、;</p><p>  if(x<0||x>=this.colCount||y<0||y>=this.rowCount){</p><p>  return -1;//觸邊界,游戲結(jié)束</p><p><b>  }</b></p><p>  for(var i=0; i<this.bod

59、y.length; i++){</p><p>  if(this.body[i].x==x&&this.body[i].y==y){</p><p>  return -1;//碰到自己的身體,游戲結(jié)束</p><p><b>  }</b></p><p><b>  }</b>

60、</p><p>  if(this.isCellFilled(x,y)){</p><p>  return 1;//有東西</p><p><b>  }</b></p><p>  return 0;//空地</p><p><b>  },</b></p>

61、<p><b>  //擦除蛇身</b></p><p>  erase: function(){</p><p>  for(var i=0; i<this.body.length; i++){</p><p>  this.eraseDot(this.body[i].x, this.body[i].y);</p&g

62、t;<p><b>  }</b></p><p><b>  },</b></p><p><b>  //繪制蛇身</b></p><p>  paint: function(){</p><p>  for(var i=0; i<this.body.l

63、ength; i++){</p><p>  this.paintDot(this.body[i].x, this.body[i].y,this.body[i].color);</p><p><b>  }</b></p><p><b>  },</b></p><p><b>  /

64、/擦除一節(jié)</b></p><p>  eraseDot: function(x,y){</p><p>  this.tbl.rows[y].cells[x].style.backgroundColor = "";</p><p><b>  },</b></p><p>  paint

65、Dot: function(x,y,color){</p><p>  this.tbl.rows[y].cells[x].style.backgroundColor = color;</p><p><b>  },</b></p><p>  //得到一個坐標(biāo)上的顏色</p><p>  getColor: func

66、tion(x,y){</p><p>  return this.tbl.rows[y].cells[x].style.backgroundColor;</p><p><b>  },</b></p><p><b>  //用于調(diào)試</b></p><p>  toString: functio

67、n(){</p><p>  var str = "";</p><p>  for(var i=0; i<this.body.length; i++){</p><p>  str += "x:" + this.body[i].x + " y:" + this.body[i].y + "

68、color:" + this.body[i].color + " - ";</p><p><b>  }</b></p><p>  return str;</p><p><b>  },</b></p><p>  //檢查一個坐標(biāo)點有沒有被填充</p>

69、;<p>  isCellFilled: function(x,y){</p><p>  if(this.tbl.rows[y].cells[x].style.backgroundColor == ""){</p><p>  return false;</p><p><b>  }</b></p&g

70、t;<p>  return true;</p><p><b>  },</b></p><p><b>  //重新開始</b></p><p>  restart: function(){</p><p>  if(this.timer){</p><p>

71、;  clearInterval(this.timer);</p><p><b>  }</b></p><p>  for(var i=0; i<this.rowCount;i++){</p><p>  this.tbl.deleteRow(0);</p><p><b>  }</b>

72、</p><p>  this.body = [];</p><p>  this.init();</p><p>  this.speed = 250;</p><p><b>  },</b></p><p><b>  //加速</b></p><p

73、>  speedUp: function(time){</p><p>  if(!this.paused){</p><p>  if(this.speed+time<10||this.speed+time>2000){</p><p><b>  return;</b></p><p><b&

74、gt;  }</b></p><p>  this.speed +=time;</p><p>  this.pause();</p><p>  this.move();</p><p><b>  }</b></p><p><b>  },</b></

75、p><p><b>  //產(chǎn)生食物。</b></p><p>  generateDood: function(){</p><p>  var colors = ['red','orange','yellow','green','blue','purple&

76、#39;,'#ccc'];</p><p>  var x = Math.floor(Math.random()*this.colCount);</p><p>  var y = Math.floor(Math.random()*this.rowCount);</p><p>  var colorIndex = Math.floor(Math.r

77、andom()*7);</p><p>  if(!this.isCellFilled(x,y)){</p><p>  this.tbl.rows[y].cells[x].style.backgroundColor = colors[colorIndex];</p><p><b>  }</b></p><p>&l

78、t;b>  }</b></p><p><b>  };</b></p><p><b>  </script></b></p><p>  <body onload="Snake.init();"></p><p>  <tabl

79、e id="main" border="1" cellspacing="0" cellpadding="0"></table></p><p>  <input type="button" id="btn" value="開始/暫停" />點左邊

80、按鈕或按Enter開始/暫停游戲<br /></p><p>  <input type="button" id="reset" value="重新開始" /><br /></p><p>  <input type="button" id="upSpeed&

81、quot; value="加速" />點左邊按鈕或按Ctrl + ↑加速<br /></p><p>  <input type="button" id="downSpeed" value="減速" />點左邊按鈕或按Ctrl + ↓減速</p><p><b>  &l

82、t;script></b></p><p>  $('btn').onclick = function(){</p><p>  if(Snake.paused){</p><p>  Snake.move();</p><p>  Snake.paused = false;</p><p

83、><b>  }</b></p><p><b>  else{</b></p><p>  Snake.pause();</p><p>  Snake.paused = true;</p><p><b>  }</b></p><p><

84、;b>  };</b></p><p>  $("reset").onclick = function(){</p><p>  Snake.restart();</p><p>  this.blur();</p><p><b>  };</b></p><p

85、>  $("upSpeed").onclick = function(){</p><p>  Snake.speedUp(-20);</p><p><b>  };</b></p><p>  $("downSpeed").onclick = function(){</p><

86、;p>  Snake.speedUp(20);</p><p><b>  };</b></p><p><b>  </script></b></p><p><b>  </body></b></p><p><b>  </h

87、tml></b></p><p><b>  參考文獻(xiàn)</b></p><p>  [1]夏士兵,錢江.構(gòu)建基于COM+的分布式Web應(yīng)用[J].微型機(jī)與應(yīng)用,2001(6):8-9.</p><p>  [2][美]Richard Anderson, Chris Blexrud著,劉福太,張立民,金慧琴,梁發(fā)麥等譯.ASP3

88、高級編程[M].北京:機(jī)械工業(yè)出版社,2000.408-458.</p><p>  [3]耿祥義,張躍平.《JSP實用教程》. 清華大學(xué)出版社,2003年5月1日:1-354.</p><p>  [4]BruceEckel.《JSP編程思想》. 機(jī)械工業(yè)出版社,2003年10月:1-378.</p><p>  [5]FLANAGAN.《JSP技術(shù)手冊》. 中國

89、電力出版社,2002年6月:1-465.</p><p>  [6]孫一林,彭波.《JSP數(shù)據(jù)庫編程實例》. 清華大學(xué)出版社,2002年8月:30-210.</p><p>  [7]LEE ANNE PHILLIPS.《巧學(xué)活用HTML4》.電子工業(yè)出版社,2004年8月:1-319.</p><p>  [8]飛思科技產(chǎn)品研發(fā)中心.《JSP應(yīng)用開發(fā)詳解》.電子工

溫馨提示

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

評論

0/150

提交評論