c程序課程設(shè)計(jì)報(bào)告(掃雷游戲)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  C程序設(shè)計(jì)</b></p><p><b>  掃雷游戲</b></p><p>  一、設(shè)計(jì)題目:掃雷游戲</p><p><b>  二、設(shè)計(jì)目的</b></p><p>  1.使學(xué)生更深入地理解和掌握該課程中的有關(guān)基本概念,程序設(shè)計(jì)思想和方

2、法。</p><p>  2.培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成課題的能力。</p><p>  3.培養(yǎng)學(xué)生勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來(lái)檢驗(yàn)理論,全方位考慮問(wèn)題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。</p><p>  4.提高學(xué)生對(duì)工作認(rèn)真負(fù)責(zé)、一絲不茍,對(duì)同學(xué)團(tuán)結(jié)友愛(ài),協(xié)作攻關(guān)的基本素質(zhì)。</p><p>  5.培養(yǎng)學(xué)生從資料

3、文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問(wèn)題的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。</p><p>  6.對(duì)學(xué)生掌握知識(shí)的深度、運(yùn)用理論去處理問(wèn)題的能力、實(shí)驗(yàn)?zāi)芰?、課程設(shè)計(jì)能力、書(shū)面及口頭表達(dá)能力進(jìn)行考核。</p><p><b>  三、設(shè)計(jì)要求</b></p><p>  1.汪洋和孔維亮組成設(shè)計(jì)小組。小組成員分

4、工協(xié)作完成。要求每個(gè)成員有自己相對(duì)獨(dú)立的模塊,同時(shí)要了解其他組員完成的內(nèi)容。</p><p>  2.查閱相關(guān)資料,自學(xué)具體課題中涉及到的新知識(shí)。 </p><p>  3.采用結(jié)構(gòu)化、模塊化程序設(shè)計(jì)方法,功能要完善,界面要美觀。</p><p>  4.按要求寫(xiě)出課程設(shè)計(jì)報(bào)告,并于設(shè)計(jì)結(jié)束后1周內(nèi)提交。 </p>&

5、lt;p><b>  一 概述</b></p><p>  掌握數(shù)組指針的概念及其應(yīng)用</p><p><b>  培養(yǎng)團(tuán)結(jié)合作精神</b></p><p>  2. 課程設(shè)計(jì)的要求</p><p>  要求我們有扎實(shí)的C語(yǔ)言知識(shí),以及良好的編程習(xí)慣,能夠熟練的應(yīng)用循環(huán),有毅力,還要求我們有較

6、強(qiáng)的合作精神,善于總結(jié)。同時(shí)還要求我們自學(xué)C語(yǔ)言作圖部分知識(shí)。在必要時(shí)還要上網(wǎng)查相關(guān)資料。</p><p>  課程設(shè)計(jì)的主要設(shè)計(jì)思想</p><p>  掃雷游戲主要用了一個(gè)10行10列的二維數(shù)組,剛開(kāi)始利用random隨機(jī)布雷。</p><p>  每一個(gè)程序最主要的是算法。掃雷游戲算法的重點(diǎn)是一開(kāi)始統(tǒng)計(jì)好每個(gè)格子周?chē)卸嗌倮?,?dāng)鼠標(biāo)左鍵點(diǎn)在格子上時(shí)做出判斷,如

7、果周?chē)?個(gè)格子有雷則顯示出雷數(shù),如果沒(méi)有雷則顯示空白格(在四個(gè)角的格子顯示周?chē)?個(gè)格子,其它邊緣的格子顯示周?chē)?個(gè)的狀態(tài)),我們?cè)谥骱瘮?shù)中用兩個(gè)for語(yǔ)句來(lái)判斷周?chē)讛?shù)。我們還加了鼠標(biāo)處理函數(shù)。</p><p>  如果格子上有雷則調(diào)用函FailExitGame(),顯示“Fail!”,游戲結(jié)束。若所有的雷都標(biāo)出,且所有的格子都處理過(guò),則調(diào)用函數(shù)ExitGame(),顯示“OK,Good!”,游戲結(jié)束。游戲結(jié)束后

8、,按任意鍵出去。</p><p><b>  二 總體方案設(shè)計(jì)</b></p><p>  封面是由圖形和動(dòng)態(tài)文字,伴隨聲音接替出現(xiàn)。程序用了一個(gè)10行10列的二維數(shù)組表示掃雷界面。在游戲中要隨機(jī)步雷,游戲開(kāi)始前要統(tǒng)計(jì)好每個(gè)格子周?chē)睦讛?shù),游戲開(kāi)始后可以點(diǎn)擊鼠標(biāo)玩游戲,游戲結(jié)束后,按任意鍵結(jié)束跳出游戲界面。</p><p><b> 

9、 整體框圖</b></p><p><b>  三 詳細(xì)設(shè)計(jì)</b></p><p><b>  程序流程</b></p><p>  以下是主函數(shù)中的一些主要的。</p><p><b>  主函數(shù)</b></p><p>  主要定義常用

10、到的常量,全局變量,有關(guān)的函數(shù)原形說(shuō)明。然后隨機(jī)布雷,統(tǒng)計(jì)好每個(gè)格子周?chē)睦讛?shù),畫(huà)掃雷游戲界面,游戲接受鼠標(biāo)操作,按任意鍵結(jié)束游戲,關(guān)閉圖形系統(tǒng),程序結(jié)束。</p><p>  BYTE MouseState() /*等待接受鼠標(biāo)命令函數(shù)*/</p><p><b>  {</b></p><p>  union REGS

11、regs;</p><p>  regs.x.ax = 3;</p><p>  int86(MOUSE, &regs, &regs); /*鼠標(biāo)端口*/</p><p>  return(regs.x.bx); </p><p><b>  }</b></p&

12、gt;<p>  void MouseShow() /*鼠標(biāo)顯示函數(shù)*/</p><p><b>  {</b></p><p>  union REGS regs;</p><p>  regs.x.ax = 1;</p><p>  int86(MOUSE, &re

13、gs, &regs);</p><p><b>  }</b></p><p>  void MouseHide() /*鼠標(biāo)隱藏函數(shù)*/</p><p><b>  {</b></p><p>  union REGS regs;</p&g

14、t;<p>  regs.x.ax = 2;</p><p>  int86(MOUSE, &regs, &regs);</p><p><b>  }</b></p><p>  BOOL InitMouse() /*取鼠標(biāo)端口函數(shù)*/</p>

15、<p><b>  {</b></p><p>  union REGS regs;</p><p>  regs.x.ax = 0;</p><p>  int86(MOUSE, &regs, &regs);</p><p>  return (regs.x.ax);</p>

16、<p><b>  }</b></p><p>  void WaitMouse()</p><p><b>  {</b></p><p>  int xx,yy;</p><p>  while (MouseState())</p><p><b>

17、  {</b></p><p>  GetXY(&xx,&yy);</p><p>  if (xx!=x||yy!=y)</p><p>  SetXY(x,y);</p><p><b>  }</b></p><p><b>  }</b>&

18、lt;/p><p>  void Prt(int x,int y,BYTE ch,BYTE color) /*定義雷區(qū)地址入口*/</p><p><b>  { </b></p><p>  pokeb(0xb800,y*160+x*2,ch);</p><p>  pokeb(0xb800,y*1

19、60+x*2+1,color);</p><p><b>  }</b></p><p>  BYTE Scr(int x,int y) /*返回雷區(qū)地址入口*/</p><p><b>  {</b></p><p>  return peekb(0

20、xb800,y*160+x*2);</p><p><b>  }</b></p><p>  void CursorHide() /*光標(biāo)隱藏*/</p><p><b>  {</b></p><p><b>  _AH=3;</

21、b></p><p>  geninterrupt(0x10);</p><p>  CursorMode=_CX;</p><p><b>  _AH=1;</b></p><p><b>  _CH=32;</b></p><p>  geninterrupt(0x

22、10);</p><p><b>  }</b></p><p>  void CursorShow() /*光標(biāo)顯示*/</p><p><b>  {</b></p><p><b>  _AH=1;</b></p

23、><p>  _CX=CursorMode;</p><p>  geninterrupt(0x10);</p><p><b>  }</b></p><p><b>  四、源程序如下:</b></p><p>  # include <dos.h> <

24、/p><p>  # include <time.h> </p><p>  # include <conio.h></p><p>  # include <stdio.h></p><p>  # include <stdlib.h></p><p>  # i

25、nclude <graphics.h> </p><p>  # define BYTE unsigned char</p><p>  # define BOOL BYTE</p><p>  # define WORD unsigned int</p><p>  # de

26、fine DWORD unsigned long</p><p>  # define TRUE 1</p><p>  # define FALSE !TRUE</p><p>  # define MOUSE 0x33 </p><p>  # define LBU

27、TTON 1</p><p>  # define RBUTTON 2</p><p>  # define SX 35</p><p>  # define SY 7</p><p>  # define MINE 9 /*在有雷的地方定義為MINE

28、*/</p><p>  BOOL InitMouse(); /*初始化鼠標(biāo)*/</p><p>  BYTE Scr(int,int); /*屏幕顯示坐標(biāo)函數(shù)*/</p><p>  BYTE MouseState(); /*等待接受鼠標(biāo)命令*/</p><p>  void Edge(int,int);

29、 </p><p>  void TurnBack(int,int);</p><p>  void MouseShow(); /*鼠標(biāo)顯示函數(shù)*/</p><p>  void MouseHide(); /*鼠標(biāo)隱藏函數(shù)*/</p><p>  void CursorShow(); /*光標(biāo)顯示函數(shù)*

30、/</p><p>  void CursorHide(); /*光標(biāo)隱藏函數(shù)*/</p><p>  void SetRange(int,int,int,int); </p><p>  void GetXY(int*,int*);</p><p>  void SetXY(int,int);</p><p

31、>  void WaitMouse(); </p><p>  void WaitKey();</p><p>  void Prt(int,int,BYTE,BYTE); /*雷區(qū)的圖形和顏色*/</p><p>  void Locate(BYTE,BYTE); </p><p>  void FailExi

32、tGame(); /*游戲失敗*/</p><p>  void ExitGame(); /*游戲勝利*/ </p><p>  struct Snow </p><p><b>  {</b></p><p><b>  int x;</b>&l

33、t;/p><p><b>  int y;</b></p><p>  int speed; </p><p>  }snow[100];</p><p>  i

34、nt snownum=0;</p><p><b>  int size;</b></p><p>  int change=10;</p><p>  void *save1,*save2;</p><p>  void Copy();</p><p>  void DrawSnow();<

35、;/p><p>  void Pr();</p><p>  void load();</p><p>  void welcome1();</p><p>  void welcome2();</p><p>  void welcome3();</p><p>  void control();

36、</p><p>  void star();</p><p>  BOOL Turn[10][10];</p><p>  BYTE Mine[10][10];</p><p>  BYTE Mark[10][2];</p><p>  WORD CursorMode;</p><p><

37、;b>  int x,y;</b></p><p>  void main()</p><p><b>  { int i;</b></p><p>  int Total=0;</p><p>  BYTE Button;</p><p>  BOOL QUIT=FALS

38、E;</p><p>  time_t lt; /*定義時(shí)間變量*/</p><p>  star(); /*調(diào)用游戲前景動(dòng)畫(huà)函數(shù)*/</p><p>  if (!InitMouse())</p><p><b>  {</b></p><p>  printf("

39、;Mouse not installed!"); /*對(duì)鼠標(biāo)端口進(jìn)行判斷*/</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  clrscr(); /*清屏*/</p><p>  

40、CursorHide(); </p><p>  randomize(); /*定義取隨機(jī)數(shù)*/</p><p>  Locate(36,20); /*定義屏幕坐標(biāo)*/</p><p>  printf("Mines:%d ",0); /* Mines表示做標(biāo)記的次數(shù)

41、*/</p><p>  lt = time(NULL);</p><p>  Locate(15,4); /*定義屏幕坐標(biāo)*/</p><p>  printf("The Calendar Time now is %s\n", ctime(& lt));</p><p>  for (y=0;y

42、<10;y++)</p><p>  for (x=0;x<10;x++)</p><p><b>  {</b></p><p>  Mine[y][x]=NULL;</p><p>  Turn[y][x]=FALSE;</p><p><b>  }</b>

43、</p><p>  for (i=0;i<10;i++) /*隨機(jī)產(chǎn)生地雷坐標(biāo)*/</p><p><b>  {</b></p><p>  x=random(10);</p><p>  y=random(10);</p><p>  while (Min

44、e[y][x])</p><p><b>  {</b></p><p>  x=random(10);</p><p>  y=random(10);</p><p><b>  }</b></p><p>  Mine[y][x]=MINE; /*定義在有

45、了雷的地方坐標(biāo)值為MINE*/</p><p><b>  }</b></p><p>  for (y=0;y<10;y++)</p><p>  for (x=0;x<10;x++)</p><p><b>  {</b></p><p>  i=0;

46、 /*判斷每個(gè)格子周?chē)睦讛?shù)*/</p><p>  if (Mine[y][x]!=MINE)</p><p><b>  {</b></p><p>  if ((Mine[y][x-1]==MINE)&&((x-1)>=0)) i++;</p><p>  i

47、f ((Mine[y][x+1]==MINE)&&((x+1)<10)) i++;</p><p>  if ((Mine[y-1][x]==MINE)&&((y-1)>=0)) i++;</p><p>  if ((Mine[y+1][x]==MINE)&&((y+1)<10)) i++;</p><

48、p>  if ((Mine[y-1][x-1]==MINE)&&((x-1)>=0)&&((y-1)>=0)) i++;</p><p>  if ((Mine[y-1][x+1]==MINE)&&((x+1)<10)&&((y-1)>=0)) i++;</p><p>  if ((Mine[y

49、+1][x+1]==MINE)&&((x+1)<10)&&((y+1)<10)) i++;</p><p>  if ((Mine[y+1][x-1]==MINE)&&((x-1)>=0)&&((y+1)<10)) i++;</p><p>  Mine[y][x]=i;</p><

50、p><b>  }</b></p><p>  Prt(x+SX,y+SY,1,15); /*雷區(qū)的圖形和顏色*/</p><p><b>  }</b></p><p>  MouseShow(); </p><p>  while(!QUIT)&l

51、t;/p><p><b>  {</b></p><p>  if (kbhit()) if (getch()==27) QUIT=TRUE;</p><p>  Button=MouseState()&3;</p><p>  if (Button)</p><p><b>  {

52、</b></p><p>  GetXY(&x,&y);</p><p>  WaitMouse();</p><p><b>  x>>=3;</b></p><p><b>  y>>=3;</b></p><p>&l

53、t;b>  x-=SX;</b></p><p><b>  y-=SY;</b></p><p>  if (x>=0&&x<10&&y>=0&&y<10)</p><p><b>  {</b></p><p&

54、gt;  if (Button&LBUTTON)</p><p><b>  {</b></p><p>  if (Mine[y][x]==MINE)</p><p>  FailExitGame();</p><p>  if (Mine[y][x]==NULL)</p><p>  

55、Edge(x,y);</p><p><b>  else</b></p><p>  TurnBack(x,y);</p><p><b>  }</b></p><p>  if (Button&RBUTTON)</p><p><b>  {</

56、b></p><p>  if (!(Turn[y][x]&1))</p><p><b>  {</b></p><p>  switch (Turn[y][x])</p><p><b>  {</b></p><p><b>  case 0:&

57、lt;/b></p><p>  Turn[y][x]=2;</p><p>  MouseHide();</p><p>  Prt(x+SX,y+SY,'*',15);</p><p>  Locate(36,20);</p><p>  printf("Mines:%d "

58、;,++Total);</p><p>  MouseShow();</p><p>  Mark[Total][0]=x;</p><p>  Mark[Total][1]=y;</p><p>  if (Total==10) ExitGame();</p><p><b>  break;</b&

59、gt;</p><p><b>  case 2:</b></p><p>  Turn[y][x]=0;</p><p>  MouseHide();</p><p>  Prt(x+SX,y+SY,5,8);</p><p>  Locate(36,20);</p><p&

60、gt;  printf("Mines:%d ",--Total);</p><p>  MouseShow();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p&g

61、t;<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  WaitKey();</p><p>  

62、MouseHide();</p><p>  CursorShow();</p><p><b>  }</b></p><p>  BYTE MouseState() /*等待接受鼠標(biāo)命令*/</p><p><b>  {</b></p><p>  

63、union REGS regs;</p><p>  regs.x.ax = 3;</p><p>  int86(MOUSE, &regs, &regs); /*鼠標(biāo)端口*/</p><p>  return(regs.x.bx); </p><p><b>  }</b

64、></p><p>  void MouseShow() /*鼠標(biāo)顯示*/</p><p><b>  {</b></p><p>  union REGS regs;</p><p>  regs.x.ax = 1;</p><p>  int86(MOUSE

65、, &regs, &regs);</p><p><b>  }</b></p><p>  void MouseHide() /*鼠標(biāo)隱藏*/</p><p><b>  {</b></p><p>  union REGS regs;&

66、lt;/p><p>  regs.x.ax = 2;</p><p>  int86(MOUSE, &regs, &regs);</p><p><b>  }</b></p><p>  BOOL InitMouse() /*取鼠標(biāo)端口*/</

67、p><p><b>  {</b></p><p>  union REGS regs;</p><p>  regs.x.ax = 0;</p><p>  int86(MOUSE, &regs, &regs);</p><p>  return (regs.x.ax);</p

68、><p><b>  }</b></p><p>  void SetRange(int start_x,int start_y,int end_x,int end_y)</p><p><b>  {</b></p><p>  union REGS r;</p><p>&l

69、t;b>  r.x.ax=7;</b></p><p>  r.x.cx=start_x;</p><p>  r.x.dx=end_x;</p><p>  int86(0x33,&r,&r);</p><p><b>  r.x.ax=8;</b></p><p&

70、gt;  r.x.cx=start_y;</p><p>  r.x.dx=end_y;</p><p>  int86(MOUSE,&r,&r);</p><p><b>  }</b></p><p>  void GetXY(int *x,int *y)</p><p>&l

71、t;b>  {</b></p><p>  union REGS ireg,oreg;</p><p>  ireg.x.ax=3;</p><p>  int86(MOUSE,&ireg,&oreg);</p><p>  *x=oreg.x.cx;</p><p>  *y=ore

72、g.x.dx;</p><p><b>  }</b></p><p>  void SetXY(int x,int y)</p><p><b>  {</b></p><p>  union REGS ireg;</p><p>  ireg.x.ax=4;</p&

73、gt;<p>  ireg.x.cx=x;</p><p>  ireg.x.dx=y;</p><p>  int86(MOUSE,&ireg,&ireg);</p><p><b>  }</b></p><p>  void WaitMouse()</p><p&g

74、t;<b>  {</b></p><p>  int xx,yy;</p><p>  while (MouseState())</p><p><b>  {</b></p><p>  GetXY(&xx,&yy);</p><p>  if (xx!=

75、x||yy!=y)</p><p>  SetXY(x,y);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void Prt(int x,int y,BYTE ch,BYTE color) /*定義雷區(qū)地址入口*/<

76、;/p><p><b>  { </b></p><p>  pokeb(0xb800,y*160+x*2,ch);</p><p>  pokeb(0xb800,y*160+x*2+1,color);</p><p><b>  }</b></p><p>  BYTE Scr

77、(int x,int y) /*返回雷區(qū)地址入口*/</p><p><b>  {</b></p><p>  return peekb(0xb800,y*160+x*2);</p><p><b>  }</b></p><p>  void Cu

78、rsorHide() /*光標(biāo)隱藏*/</p><p><b>  {</b></p><p><b>  _AH=3;</b></p><p>  geninterrupt(0x10);</p><p>  CursorMode=_CX;</

79、p><p><b>  _AH=1;</b></p><p><b>  _CH=32;</b></p><p>  geninterrupt(0x10);</p><p><b>  }</b></p><p>  void CursorShow()

80、 /*光標(biāo)顯示*/</p><p><b>  {</b></p><p><b>  _AH=1;</b></p><p>  _CX=CursorMode;</p><p>  geninterrupt(0x10);</p><

81、p><b>  }</b></p><p>  void WaitKey()</p><p><b>  {</b></p><p><b>  _AH=0;</b></p><p>  geninterrupt(0x16);</p><p>&l

82、t;b>  }</b></p><p>  void Edge(int xx,int yy)</p><p><b>  {</b></p><p>  if (xx<0||xx>9||yy<0||yy>9||Turn[yy][xx]) return;</p><p>  Tur

83、nBack(xx,yy);</p><p>  if (Mine[yy][xx]==NULL)</p><p><b>  {</b></p><p>  Edge(xx+1,yy);</p><p>  Edge(xx-1,yy);</p><p>  Edge(xx,yy+1);</p&

84、gt;<p>  Edge(xx,yy-1);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void TurnBack(int xx,int yy)</p><p><b>  {</b></p>

85、<p>  if (!Turn[yy][xx])</p><p><b>  {</b></p><p>  MouseHide();</p><p>  Prt(xx+SX,yy+SY,Mine[yy][xx]+48,12);</p><p>  MouseShow();</p><p

86、>  Turn[yy][xx]=Turn[yy][xx]||1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void Locate(BYTE Col,BYTE Line)</p><p><b>  {</b>&l

87、t;/p><p>  pokeb(0x0,0x450,Col);</p><p>  pokeb(0x0,0x451,Line);</p><p><b>  }</b></p><p>  void FailExitGame()</p><p>  {

88、 /*顯示游戲失敗*/</p><p>  sound(1000);</p><p>  delay(500);</p><p>  nosound();</p><p>  for (y=0;y<10;y++)</p><p>  for (x=0;x<10;x++)</p>&

89、lt;p>  if (Mine[y][x]==MINE) Prt(x+SX,y+SY,'*',14+128);</p><p>  MouseHide();</p><p>  CursorShow();</p><p>  printf("\nFail!\n");</p><p><b>

90、  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  void ExitGame() /*顯示游戲勝利*/ </p><p><b>  {&

91、lt;/b></p><p>  int i,m=0;</p><p>  for (i=0;i<10;i++)</p><p>  if (Mine[Mark[i][1]][Mark[i][0]]) m++;</p><p>  if (m<9) FailExitGame();</p><p>  

92、MouseHide();</p><p>  CursorShow();</p><p>  printf("\nOK,Good!\n");</p><p><b>  getch();</b></p><p><b>  exit(0);</b></p><

93、p><b>  }</b></p><p>  /* /////// 開(kāi)機(jī) ////// */</p><p>  void star()</p><p>  {int gd=DETECT,gm;</p><p>  initgra

94、ph(&gd,&gm,"c:\\turboc2");</p><p><b>  Copy();</b></p><p>  DrawSnow();</p><p>  welcome1();</p><p>  welcome2();</p><p>  we

95、lcome3();</p><p>  control();</p><p>  closegraph(); /*關(guān)閉圖形函數(shù)*/</p><p><b>  }</b></p><p>  void Copy()</p><p><b>  

96、{</b></p><p>  setcolor(0); /*涂色*/</p><p>  setfillstyle(SOLID_FILL,15); </p><p>  fillellipse(200,200,1,1); /*畫(huà)橢圓*/</p><p>  size=

97、imagesize(196,196,204,204);</p><p>  save1=malloc(size);</p><p>  save2=malloc(size);</p><p>  getimage(196,196,204,204,save1);</p><p>  getimage(96,96,104,104,save2);&

98、lt;/p><p><b>  }</b></p><p><b>  void Pr()</b></p><p><b>  {</b></p><p>  int s[]={392,262,262,262,330,392,392,392,392,392,330,330,294,

99、294,330,294,262,440,392,</p><p>  392,262,262,262,330,392,392,392,392,392,330,330,294,294,330,294,262,440,392};</p><p>  /*定義聲音函數(shù)數(shù)組*/</p><p>  setcolor(change); /*字體

100、顏色變換*/</p><p>  settextstyle(0,0,4); /*字體大小*/</p><p>  outtextxy(150,200,"Welcome to"); /*在屏幕上打印字符*/</p><p>  outtextxy(200,240,"C Game!");<

101、/p><p>  sound(s[change/10]); /*釋放聲音*/</p><p><b>  }</b></p><p>  void DrawSnow()</p><p><b>  {int i;</b></p><p>  int

102、sx[62];</p><p>  randomize();</p><p>  for(i=0;i<62;i++)</p><p>  sx[i]=(i+2)*10;</p><p>  cleardevice(); /*清屏*/</p><p>  while(!kbhit())<

103、/p><p><b>  {</b></p><p><b>  Pr();</b></p><p>  if(snownum!=100)</p><p><b>  {</b></p><p>  snow[snownum].speed=2+random(

104、5);</p><p>  i=random(62);</p><p>  snow[snownum].x=sx[i];</p><p>  snow[snownum].y=10-random(100);</p><p><b>  }</b></p><p>  for(i=0;i<sno

105、wnum;i++)</p><p>  putimage(snow[i].x,snow[i].y,save2,COPY_PUT);</p><p>  Pr(); if(snownum!=100)</p><p>  snownum++;else if(snownum>15) break;</p><p>  delay(300);&l

106、t;/p><p>  setfillstyle(SOLID_FILL,15);</p><p>  for(i=0;i<snownum;i++)</p><p><b>  {</b></p><p>  snow[i].y+=snow[i].speed;</p><p>  putimage(

107、snow[i].x,snow[i].y,save1,COPY_PUT);</p><p>  if(snow[i].y>500)</p><p>  snow[i].y=10-random(200);</p><p><b>  }</b></p><p><b>  change++;</b>

108、;</p><p>  if(change==140)</p><p>  change=10;</p><p><b>  }</b></p><p>  nosound();</p><p><b>  }</b></p><p>  void w

109、elcome1() </p><p><b>  {int a;</b></p><p>  for(a=0;a<450;a++)</p><p>  {textbackground(16);</p><p>  setcolor(15);&l

110、t;/p><p>  circle(315,240,a);</p><p>  delay(100);</p><p>  setcolor(16);</p><p>  circle(315,240,a-10);</p><p><b>  }</b></p><p><

111、;b>  }</b></p><p>  void welcome2()</p><p>  {float b;int c;</p><p>  for(b=0;b<320;b=b+0.5)</p><p>  {setcolor(11);</p><p>  rectangle(0,240,b

112、,240);</p><p>  rectangle(630,240,640-b,240);</p><p><b>  }</b></p><p>  for(c=0;c<240;c++)</p><p>  {rectangle(0,240,640,240-c);</p><p>  r

113、ectangle(0,240,640,240+c);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void welcome3() </p><p>  {int x,y=100,i,j;</p><p>  for(

114、x=60;x<65;x++)</p><p>  {setcolor(4); /*定義要打印字體的顏色*/</p><p>  setbkcolor(1); /*定義背景色*/</p><p>  settextstyle(0,0,6); /*定義要打印字體的大小*/

115、</p><p>  outtextxy(x,y,"掃"); /*在x,y位置打印漢字*/</p><p>  delay(6000); /*延時(shí)*/</p><p><b>  }</b></p><p>  for(x=190;x<195

116、;x++)</p><p>  {setcolor(4);</p><p>  setbkcolor(1);</p><p>  settextstyle(0,0,6);</p><p>  outtextxy(x,y,"雷");</p><p>  delay(6000);}</p>

117、<p>  for(x=320;x<325;x++)</p><p>  {setcolor(4);</p><p>  setbkcolor(1);</p><p>  settextstyle(0,0,6);</p><p>  outtextxy(x,y,"游");</p><p

118、>  delay(6000);}</p><p>  for(x=480;x<485;x++)</p><p>  {setcolor(4);</p><p>  setbkcolor(1);</p><p>  settextstyle(0,0,6);</p><p>  outtextxy(x,y,&q

119、uot;戲");</p><p>  delay(6000);}</p><p>  sleep(0.5);</p><p>  setcolor(4);</p><p>  settextstyle(0,0,2);</p><p>  outtextxy(130,205,"制作組人員:范金龍 閆佳

120、佳");</p><p>  outtextxy(230,250,"傾");</p><p>  for(i=0;i<10;i=i+1)</p><p>  {for(j=0;j<i/2;j=j+1)</p><p>  {setcolor(4);</p><p>  setb

121、kcolor(14); </p><p>  circle(282-j,256-j,i); /*畫(huà)圓*/</p><p>  circle(286+j,256-j,i);</p><p>  delay(20);}</p><p><b>  }</b></p><p>  o

122、uttextxy(315,250,"打");</p><p>  outtextxy(350,250,"造");</p><p>  outtextxy(200,280,"1 . star the game");</p><p>  outtextxy(200,310,"2 . exit patt

123、ern");</p><p>  outtextxy(550,450,"V1.90");</p><p><b>  }</b></p><p>  void control() /*從鍵盤(pán)接受命令函數(shù)*/</p><p><b>  {int key

124、;</b></p><p>  key=getch();</p><p>  switch(key) /*等待接受命令*/</p><p>  {case '1':load();break;</p><p>  case '2':exit(0);</p>

125、<p>  default:exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void load()</p><p><b>  {float k;</b></p><p> 

126、 setcolor(4);</p><p>  rectangle(205,365,392,381);</p><p>  outtextxy(220,350,"loading...");</p><p>  for(k=0;k<187;k=k+0.2)</p><p>  {rectangle(205,365,20

溫馨提示

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

評(píng)論

0/150

提交評(píng)論