掃雷-C語言實現(xiàn)_第1頁
掃雷-C語言實現(xiàn)_第2頁
掃雷-C語言實現(xiàn)_第3頁
掃雷-C語言實現(xiàn)_第4頁
掃雷-C語言實現(xiàn)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、掃雷 純C語言實現(xiàn)件夾中找到“掃雷安=分=割=線=#include<stdio.h>#include<time.h>/本程序使用了EGE圖形庫#include<graphics.h>/地雷個數(shù)#define NUM 40 int map2020;/用于保存地雷陣,9表示地雷,08表示周圍地雷的個數(shù)int ui2020;/用于保存顯示的界面,0表示未翻開,1表示翻開,2表示插上了小紅旗long timer,timer2;int life,isnew;PIMAGE LEI;/地雷PIMAGE SHOW_0;/未翻開的方塊PIMAGE SHOW_1;/翻

2、開的方塊PIMAGE SHOW_FLAG;/小紅旗int makemap(int num);/初始化地雷陣int draw(void);繪制圖形int dataup(void);/更新數(shù)據(jù),響應鼠標操作void showother(int x,int y);/翻開空白方塊旁邊挨著的空白方塊int main ()int x,y;srand(int)time(NULL);initgraph(600,700);LEI=newimage();SHOW_0=newimage();SHOW_1=newimage();SHOW_FLAG=newimage();getimage(LEI,"lei.p

3、ng");getimage(SHOW_0,"show_0.png");getimage(SHOW_1,"show_1.png");getimage(SHOW_FLAG,"show_flag.png");setfillcolor(LIGHTGRAY);while(1)bar(80,600,600,700);setcolor(LIGHTBLUE);setfont(50,0,"宋體");xyprintf(80,600,"Made By:Blue Sky");setfont(20,0,&quo

4、t;宋體");xyprintf(80,650,"共%d個地雷找到它們并按右鍵插上小紅旗",NUM);life=1;isnew=1;makemap(NUM);for(y=0;y<20;y+)for(x=0;x<20;x+)uiyx=0;setbkcolor(LIGHTGRAY);draw();timer=clock(); while(life)timer2=clock();setfont(-80,0,"");setcolor(RED);xyprintf(0,600,"%d",(timer2-timer)/1000)

5、;dataup();if(life=0)for(y=0;y<20;y+)for(x=0;x<20;x+)uiyx=1;draw();break;if(isnew)draw();if(life=2)break;setfont(50,0,"宋體");setcolor(RED);bar(80,600,600,700);if(life=2)xyprintf(80,600,"太牛了!你贏了!"); if(life=0)xyprintf(80,600,"噢!你掛了!"); setfont(30,0,"宋體");xy

6、printf(80,650,"(按空格再來一局!其他鍵退出)");if(getch()!=VK_SPACE)break; delimage(SHOW_1);delimage(SHOW_0);delimage(LEI);closegraph();int makemap(int num)int x,y,n=0;int i,j;for(y=0;y<20;y+)for(x=0;x<20;x+)mapyx=0;for(;n<num;)n=0;x=rand()%20;y=rand()%20;mapyx=9;for(y=0;y<20;y+)for(x=0;x<

7、;20;x+)if(mapyx=9)n+;for(y=0;y<20;y+)for(x=0;x<20;x+)if(mapyx!=9)for(i=y-1;i<=y+1;i+)for(j=x-1;j<=x+1;j+)if(i>=0&&i<20&&j>=0&&j<20)if(mapij=9)mapyx+;return 0;int draw(void)int x,y;for(y=0;y<20;y+)for(x=0;x<20;x+)if(uiyx=1)if(mapyx=9)putimage(x*30

8、,y*30,LEI);elseputimage(x*30,y*30,SHOW_1);if(mapyx!=0)if(mapyx=1)setcolor(BLUE);else if(mapyx=2)setcolor(GREEN);else if(mapyx<6)setcolor(RED);else setcolor(RED);setfont(-25,0,"楷體");xyprintf(x*30+10,y*30+3,"%d",mapyx);else if (uiyx=2)putimage(x*30,y*30,SHOW_FLAG);else putimage(

9、x*30,y*30,SHOW_0);isnew =0;int dataup(void)int x,y,n=0;mouse_msg mous;if(mousemsg()mous= getmouse();x=(int)mous.x/30;y=(int)mous.y/30;if(mous.is_up()if(mous.x<600)if(mous.is_left()showother(x,y);if(mous.is_right()if(uiyx=0)uiyx=2;else if(uiyx=2)uiyx=0;/修復右鍵點擊已經(jīng)翻開的方塊仍然出現(xiàn)小紅旗的BUG /* 原錯誤代碼if(mous.is_right()if(uiyx!=2)uiyx=2;else uiyx=0;*/ isnew =1;for(y=0;y<20;y+)for(x=0;x<20;x+)if(uiyx=2)if(mapyx=9)n+;if(n=NUM)life=2;void showother(int x,int y)int i,j;uiyx=1;if(mapyx=9)life=0;return; if(mapyx=0)for(i=y-1;i<=

溫馨提示

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

評論

0/150

提交評論