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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  計(jì)算機(jī)技術(shù)基礎(chǔ)課程設(shè)計(jì)</p><p><b>  C語(yǔ)言</b></p><p><b>  設(shè)計(jì)報(bào)告</b></p><p><b>  題目:尋寶游戲</b></p><p><b>  一、選題背景:</b></p>

2、;<p><b>  尋寶游戲</b></p><p>  可以用來娛樂玩的小游戲——尋寶游戲,體驗(yàn)尋寶的樂趣和成功。</p><p><b>  二、設(shè)計(jì)思想:</b></p><p>  這是一個(gè)有趣的尋寶游戲,根據(jù)題目要求,采用C語(yǔ)言自帶的畫圖函數(shù)為主要框架,其中各個(gè)運(yùn)算總分運(yùn)用C語(yǔ)言的函數(shù)和基本算法的

3、知識(shí)。運(yùn)用順序結(jié)構(gòu),分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。主要內(nèi)容確定之后,調(diào)用所需函數(shù),用到了指針,還用到了內(nèi)存的開辟和釋放,還有一些繪圖函數(shù),還用到了鍵盤和聲音的函數(shù),最有收獲的是提高了自己的調(diào)試程序的能力。</p><p>  三.主要解決問題的方法及技術(shù)關(guān)鍵</p><p>  用FREE 函數(shù)完成對(duì)內(nèi)存空間的釋放。</p><p>  If—else—if , Do—wh

4、ile 用來控制程序的循環(huán)。</p><p>  用鏈表的知識(shí)完成數(shù)據(jù)的 輸入 刪除 查看 。</p><p>  4. 有一些繪圖函數(shù),還用到了鍵盤和聲音的函數(shù)</p><p>  四、主要源程序清單:</p><p>  #include<graphics.h></p><p>  #includ

5、e<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<math.h></p><p>  #include<bios.h></p><p>  #define ESC 0x011b</p><p>  #

6、define UP 0x4800</p><p>  #define DOWN 0x5000</p><p>  #define LEFT 0x4b00</p><p>  #define RIGHT 0x4d00</p><p>  #define ENTER 0x1c0d</p><p>  #defin

7、e MX 28</p><p>  #define MY 24</p><p>  #define BOXLONG 20</p><p>  #define SQI 10</p><p>  #define SZADAN 10</p><p>  struct point</p><p><

8、;b>  {</b></p><p><b>  int x;</b></p><p><b>  int y;</b></p><p>  }zaboxxy[4]={-1,0,1,0,0,-1,0,1};</p><p>  int x,y,map[MX+1][MY+1],sza

9、dan,sqi,szuan=0,mx,my,mc;</p><p>  void *tx[5];</p><p>  char sc[10];</p><p>  /******************************</p><p>  change a intnumber to a char []</p><p

10、>  *******************************/</p><p>  char *ntos(int n, char *c)</p><p>  {long i=0,j,k;</p><p>  for(j=5;j>=0;j--)</p><p>  {k=n/pow(10,j);</p><

11、;p>  if(k>0||n==0)</p><p>  {c[i++]=k+'0';</p><p>  n=n-k*pow(10,j);}</p><p><b>  }</b></p><p><b>  c[i]=0;</b></p><p&g

12、t;  return(c);</p><p><b>  }</b></p><p><b>  main()</b></p><p><b>  {</b></p><p>  int dr=DETECT,mode=0,i;</p><p>  lon

13、g key=0;</p><p>  initgraph(&dr,&mode,"");</p><p>  mx=getmaxx();</p><p>  my=getmaxy();</p><p>  mc=getmaxcolor();</p><p>  for(i=1;i<

14、;5;i++) tx[i]=malloc(imagesize(1,1,BOXLONG,BOXLONG));</p><p>  loadmap();</p><p><b>  again:</b></p><p>  gamemessage();</p><p>  sqi=SQI;szadan=SZADAN;<

15、/p><p>  definemap();</p><p><b>  do</b></p><p>  { while(bioskey(1)==0);</p><p>  key=bioskey(0);</p><p>  move(key);</p><p>  }whi

16、le(key!=ESC && sqi>0);</p><p>  if(sqi==0)message("you are winer!!!!");</p><p>  if(message("do you want play again ?")==1)goto again;</p><p>  for(i=

17、1;i<5;i++) free(tx[i]);</p><p>  closegraph();</p><p><b>  }</b></p><p>  /*******************</p><p>  SEND A message</p><p>  ************

18、*******/</p><p>  int message(char *s)</p><p><b>  { char c;</b></p><p>  setfillstyle(1,4);</p><p>  setcolor(1);</p><p>  bar(mx/2-200,my/2-5

19、0,mx/2+250,my/2+50);</p><p>  outtextxy(mx/2-200,my/2-20,s);</p><p>  c=getch();</p><p>  if(c=='n'|| c=='N')return(0);else return(1);</p><p><b> 

20、 }</b></p><p>  /*******************</p><p><b>  draw map</b></p><p>  *******************/</p><p><b>  loadmap()</b></p><p>

21、<b>  {</b></p><p>  cleardevice();</p><p>  setcolor(1);</p><p>  rectangle(1,1,BOXLONG,BOXLONG);</p><p>  setcolor(3);</p><p>  setfillstyle(1

22、,4);</p><p>  bar(5,3,6,18);</p><p>  setcolor(4);</p><p>  line(6,3,15,13);</p><p>  line(6,13,15,13);</p><p>  floodfill(14,12,4);</p><p>  

23、getimage(1,1,BOXLONG,BOXLONG,tx[1]);</p><p>  putimage(1,1,tx[1],1);</p><p>  setcolor(4);</p><p>  rectangle(1,1,BOXLONG,BOXLONG);</p><p>  circle(10,10,9);</p>

24、<p>  circle(5,5,3);</p><p>  circle(15,5,3);</p><p>  line(8,15,12,15);</p><p>  getimage(1,1,BOXLONG,BOXLONG,tx[2]);</p><p>  putimage(1,1,tx[2],1);</p>

25、<p>  setcolor(1);</p><p>  setfillstyle(1,4);</p><p>  bar(1,1,BOXLONG,BOXLONG);</p><p>  line(1,BOXLONG/3,BOXLONG,BOXLONG/3);</p><p>  line(1,BOXLONG/3*2,BOXLONG

26、,BOXLONG/3*2);</p><p>  line(BOXLONG/2,1,BOXLONG/2,BOXLONG/3);</p><p>  line(BOXLONG/2,BOXLONG/3*2,BOXLONG/2,BOXLONG);</p><p>  line(BOXLONG/3,BOXLONG/3,BOXLONG/3,BOXLONG/3*2);</

27、p><p>  line(BOXLONG/3*2+2,BOXLONG/3,BOXLONG/3*2+2,BOXLONG/3*2);</p><p>  getimage(1,1,20,20,tx[3]);</p><p>  putimage(1,1,tx[3],1);</p><p>  rectangle(1,1,BOXLONG,BOXLONG

28、);</p><p>  setcolor(4);</p><p>  circle(10,10,6);</p><p>  line(10,3,10,5);</p><p>  getimage(1,1,BOXLONG,BOXLONG,tx[4]);</p><p>  putimage(1,1,tx[4],1);&

29、lt;/p><p><b>  }</b></p><p>  /*******************</p><p>  random map</p><p>  *******************/</p><p>  definemap()</p><p>  {i

30、nt i,j,x1,y1,x2[SQI+1],y2[SQI+1];</p><p>  randomize();</p><p>  for (i=0;i<=MX;i++)</p><p>  for (j=0;j<=MY;j++)</p><p>  map[i][j]=0;</p><p>  clea

31、rdevice();</p><p>  setlinestyle(5,0,0);</p><p>  setcolor(5);</p><p>  setfillstyle(1,1);</p><p>  bar(BOXLONG*MX+2,2,BOXLONG*MX+10,mx);</p><p>  for (i=0

32、;i<SQI+1;i++)</p><p><b>  {</b></p><p>  rnd: x1=random(MX-1)+1;</p><p>  y1 =random(MY-1)+1;</p><p>  for(j=0;j<i-1;j++)</p><p>  if (x1

33、==x2[j]&&y1==y2[j]) goto rnd;</p><p>  x2[i]=x1;y2[i]=y1;</p><p>  if (i!=SQI)</p><p>  {map[x1][y1]=1;</p><p>  putimage((x1-1)*BOXLONG,(y1-1)*BOXLONG,tx[1],1)

34、;</p><p><b>  }else</b></p><p>  {map[x1][y1]=2;</p><p>  putimage((x1-1)*BOXLONG,(y1-1)*BOXLONG,tx[2],1);</p><p>  x=x1;y=y1;</p><p><b>

35、  }</b></p><p>  }/* end of for*/</p><p>  for(i=1;i<=MX;i++)</p><p>  {for (j=1;j<=MY;j++)</p><p>  {if (map[i][j]==0&&(random(10000)%2==0||random(

36、1221)%6==0))</p><p>  {map[i][j]=3;szuan++;</p><p>  putimage((i-1)*BOXLONG,(j-1)*BOXLONG,tx[3],1);}</p><p><b>  }</b></p><p>  }/* end of for i */</p>

37、;<p>  putimage(610,1,tx[4],1);</p><p>  settextstyle(0,0,1);</p><p>  setcolor(4);</p><p>  setfillstyle(1,0);</p><p>  bar(610,30,640,50);</p><p>

38、  outtextxy(610,30,ntos(szadan,sc));</p><p>  putimage(610,50,tx[1],1);</p><p>  settextstyle(0,0,1);</p><p>  setcolor(4);</p><p>  setfillstyle(1,0);</p><p

39、>  bar(610,80,640,100);</p><p>  outtextxy(610,80,ntos(sqi,sc));</p><p>  putimage(610,120,tx[3],1);</p><p>  settextstyle(0,0,1);</p><p>  setcolor(4);</p>&

40、lt;p>  setfillstyle(1,0);</p><p>  bar(610,150,640,170);</p><p>  outtextxy(610,150,ntos(szuan,sc));</p><p><b>  }</b></p><p>  /*******************</

41、p><p><b>  chose key</b></p><p>  *******************/</p><p>  move(long key)</p><p><b>  {</b></p><p>  switch(key)</p><p

42、><b>  {</b></p><p>  case UP: down(0,-1);break;</p><p>  case DOWN: down(0,1); break;</p><p>  case LEFT: down(-1,0);break;</p><p>  case RIGHT:

43、 down(1,0);break;</p><p>  case ENTER: zadan();}</p><p><b>  }</b></p><p>  /*******************</p><p>  help moving!!!!!!!!!!</p><p>  **

44、*****************/</p><p>  down(int x1 ,int y1 )</p><p><b>  {</b></p><p>  int fx ,fy;</p><p><b>  fx=x+x1;</b></p><p><b> 

45、 fy=y+y1;</b></p><p>  if (fx>0&&fx<=MX&&fy>0&&fy<=MY)</p><p>  { switch(map[fx][fy])</p><p><b>  { case 0:</b></p><

46、p>  putimage((x-1)*BOXLONG,(y-1)*BOXLONG,tx[2],1);</p><p>  putimage((fx-1)*BOXLONG,(fy-1)*BOXLONG,tx[2],1);</p><p>  map[x][y]=0;map[fx][fy]=2;</p><p>  x=fx;y=fy;lsound(100,500

47、);</p><p><b>  break;</b></p><p><b>  case 1:</b></p><p>  putimage((fx-1)*BOXLONG,(fy-1)*BOXLONG,tx[1],1);</p><p>  putimage((fx-1)*BOXLONG,(fy

48、-1)*BOXLONG,tx[2],1);</p><p>  putimage((x-1)*BOXLONG,(y-1)*BOXLONG,tx[2],1);</p><p>  sqi--;map[x][y]=0;map[fx][fy]=2;</p><p>  x=fx;y=fy;lsound(100,500);</p><p>  set

49、textstyle(0,0,1);</p><p>  setcolor(4);</p><p>  setfillstyle(1,0);</p><p>  bar(610,80,640,100);</p><p>  outtextxy(610,80,ntos(sqi,sc));</p><p><b>

50、  break;</b></p><p><b>  case 4:</b></p><p>  putimage((fx-1)*20,(fy-1)*20,tx[4],1);</p><p>  putimage((fx-1)*20,(fy-1)*20,tx[2],1);</p><p>  putimage

51、((x-1)*20,(y-1)*20,tx[2],1);</p><p>  map[x][y]=0;map[fx][fy]=2;</p><p>  szadan++;x=fx,y=fy;</p><p>  lsound(100,500);</p><p>  settextstyle(0,0,1);</p><p&g

52、t;  setcolor(4);</p><p>  setfillstyle(1,0);</p><p>  bar(610,30,640,50);</p><p>  outtextxy(610,30,ntos(szadan,sc));</p><p><b>  break;</b></p><

53、p><b>  case 3:</b></p><p>  if(x+x1*2>0&&x+x1*2<=MX&&y+y1*2>0&&y+y1*2<=MY&&map[x+x1*2][y+y1*2]==0)</p><p>  {putimage((x+x1*2-1)*BOXLON

54、G,(y+y1*2-1)*BOXLONG,tx[3],1);</p><p>  putimage((fx-1)*BOXLONG,(fy-1)*BOXLONG,tx[3],1);</p><p>  putimage((fx-1)*BOXLONG,(fy-1)*BOXLONG,tx[2],1);</p><p>  putimage((x-1)*20,(y-1)*2

55、0,tx[2],1);</p><p>  map[x+x1*2][y+y1*2]=3;</p><p>  map[x+x1][y+y1]=2;</p><p>  map[x][y]=0;</p><p>  x=fx;y=fy;</p><p>  lsound(100,500);</p><

56、p><b>  break;</b></p><p>  }/* end of if */</p><p>  } /* end of switch*/</p><p>  } /* end of if*/</p><p>  } /* end of funtion*/</p>&l

57、t;p>  /* ************************************************</p><p>  make a zadan</p><p>  **************************************************/</p><p><b>  zadan()</b>&l

58、t;/p><p>  {int x1 ,y1 ,i;</p><p>  if (szadan>0)</p><p>  {szadan--;</p><p>  for (i=0;i<4;i++)</p><p>  {x1=x+zaboxxy[i].x;</p><p>  y1=y

59、+zaboxxy[i].y;</p><p>  if (x1>0&&x1<=MX&&y1>0&&y1<=MY&&map[x1][y1]==3)</p><p>  {putimage((x1-1)*BOXLONG,(y1-1)*BOXLONG,tx[3],1);</p><p>

60、;<b>  szuan--;</b></p><p>  settextstyle(0,0,1);</p><p>  setcolor(4);</p><p>  setfillstyle(1,0);</p><p>  bar(610,150,640,170);</p><p>  outt

61、extxy(610,150,ntos(szuan,sc));</p><p>  if(random(10000)%4==0)</p><p>  {map[x1][y1]=4;</p><p>  putimage((x1-1)*BOXLONG,(y1-1)*BOXLONG,tx[4],1);</p><p><b>  }els

62、e</b></p><p>  map[x1][y1]=0;</p><p>  }/*END if */</p><p>  settextstyle(0,0,1);</p><p>  setfillstyle(1,0);</p><p>  bar(610,30,640,50);</p>

63、<p>  setcolor(4);</p><p>  outtextxy(610,30,ntos(szadan,sc));</p><p>  lsound(60,500);</p><p><b>  }</b></p><p><b>  }else</b></p>

64、<p>  return(0);</p><p><b>  }</b></p><p>  /*********************************/</p><p><b>  /*</b></p><p>  show game message</p>&

65、lt;p><b>  */</b></p><p>  /*********************************/</p><p>  gamemessage()</p><p><b>  {</b></p><p>  cleardevice();</p><

66、;p>  setcolor(4);</p><p>  settextstyle(0,0,7);</p><p>  outtextxy(mx/11,my/3,"xunbao");</p><p>  settextstyle(0,0,2);</p><p>  outtextxy(mx/4,400,"Wr

67、ite by :wangkaikai");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  lsound(int x,int l)</p><p><b>  {</b></p><

68、p><b>  sound(x);</b></p><p><b>  delay(l);</b></p><p>  nosound();</p><p><b>  }</b></p><p><b>  五、調(diào)試及描述</b></p>

69、;<p>  調(diào)試通過,進(jìn)入游戲。</p><p>  具體玩法:把箱子從通道里推走,才能打開通道走過去“尋寶”,把寶貝——小紅旗全部拿到后就勝利了。當(dāng)走不動(dòng)時(shí)——即沒有箱子推了,不能打開通道走時(shí),可以按一下enter鍵,釋放炸彈,炸開通道。繼續(xù)尋寶。</p><p><b>  六,總結(jié)</b></p><p>  通過一個(gè)學(xué)期

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論