版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、/* 模擬掃雷游戲*/ #include #include #include #include #include #include #include union regs regs; int size=15;/*用于表示每個(gè)方塊的大小 ( 正方形的邊長(zhǎng) )*/ int pix,piy=50;/*pix,piy是矩陣的偏移量 */ char b2=1;/*用于顯示方格周?chē)睦椎膫€(gè)數(shù)*/ int pan3016;/*用于記錄盤(pán)面的情況: 0:沒(méi)有、 9:有雷、 18:周?chē)椎膫€(gè)數(shù)*/ int pan13016;/*pan1紀(jì)錄當(dāng)前的挖雷情況, 0:沒(méi)有操作、 1:打開(kāi)了、2:標(biāo)記了 */ int
2、tt;/*紀(jì)錄時(shí)間參數(shù) */ int eflags;/*用于標(biāo)記鼠標(biāo)按鈕的有效性,0:有效, 1:無(wú)效, 2:這是鼠標(biāo)的任意鍵等于重新開(kāi)始 */ int msinit(); void draw(int x,int y,int sizex,int sizey); void facedraw(int x,int y,int sizel,int k); void dead(int sizel,int x,int y); void setmouse(int xmax,int ymax,int x,int y); int msread(int *xp,int *yp,int *bup,struct ti
3、me t1,int k); void draw1(int x,int y); 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 1 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 1 頁(yè),共 30 頁(yè) - - - - - - - - -int open(int x,int y); float random(); void have(int sum,int x,int y,int xx,int yy); void help(); void coread();
4、void ddraw2(int x,int y); /* 下面是主函數(shù) */ main() int mode=vgahi,devices=vga;/* 圖形模式初始化的變量 */ char ams; /*鼠標(biāo)操作中的標(biāo)志變量 */ int xms,yms,bms; /*鼠標(biāo)的狀態(tài)變量 */ int i,j,k,k1=0; /*i,j,k是循環(huán)變量 */ int x=9,y=9,flags=0; /*x,y矩陣的大小 */ int sum=10; /*sum 盤(pán)面的雷的總數(shù)目,是個(gè)x,y 的函數(shù) */ int x1=0,y1=0; /*用于記錄光標(biāo)當(dāng)前的位置*/ int x11=0,y11=0;
5、 /*暫時(shí)保存鼠標(biāo)位置的值 */ int sizel=10; /*臉的大小 */ int cflags=1; /*這是菜單操作標(biāo)志變量 , 沒(méi)有彈出 1, 彈出 0*/ struct time t1=0,0,0,0; /*時(shí)間結(jié)構(gòu)體,頭文件已定義*/ int co3; /*暫時(shí)紀(jì)錄歷史紀(jì)錄 */ void far *map; /*用于保存鼠標(biāo)圖片 */ char name320; /*名字字符串,用于記錄名字*/ file * p; /*文件指針用于文件操作 */ msinit(); /*鼠標(biāo)初始化 */ /*registerbgidriver(egavga_driver);*/ initgr
6、aph(&devices,&mode,c:tc); /*圖形模式初始化 */ 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 2 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 2 頁(yè),共 30 頁(yè) - - - - - - - - -/* 為圖片指針?lè)峙鋬?nèi)存 */ if(map=farmalloc(imagesize(0,0,20,20)=null)/*圖片的大小是 20*20*/ printf(memory ererr!n); print
7、f(press any key to out!n); exit(1); /* 用于檢驗(yàn)文件是否完整 */ while(p = fopen(score.dat, r) = null) /*如果不能打開(kāi)就新建一個(gè)*/ if(p = fopen(score.dat, w) = null)/*如果不能新建就提示錯(cuò)誤并推出*/ printf(the file cannot open!n); printf(presss any key to exit!n); getch(); exit(1); /* 寫(xiě)入初始內(nèi)容 */ fprintf(p,%d %d %d,%sn%sn%sn,999,999,999,xi
8、ajia,xiajia,xiajia); fclose(p); /* 暫時(shí)讀出歷史紀(jì)錄。并用co3 紀(jì)錄*/ fscanf(p,%d %d %d,&co0,&co1,&co2); for(i=0;i3;i+) fscanf(p,%sn,namei); fclose(p); 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 3 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 3 頁(yè),共 30 頁(yè) - - - - - - - - -set
9、mouse(1,1,615,460); /*設(shè)置鼠標(biāo)的活動(dòng)范圍 */ pix=250-x*size/2; /*計(jì)算地雷按鈕矩陣的左邊*/ bss: b0=1; /*游戲開(kāi)始和重來(lái)的切入點(diǎn)*/ flags=0; /*測(cè)試中這個(gè)變量好像沒(méi)有作用,但是為了邏輯的完整性暫時(shí)保留*/ k=0; eflags=0; tt=0; cleardevice();/*清屏*/ setbkcolor(lightcyan); for(i=0;i30;i+) /*盤(pán)面初始化 */ for(j=0;j16;j+) panij=0; pan1ij=0; for(;) /*用于生成雷的盤(pán)面情況 */ i=(int)(x*ra
10、ndom(); j=(int)(y*random(); if(panij=0) panij=9; k=k+1; if(k=sum) break; for(i=0;ix;i+)/*用于統(tǒng)計(jì)各點(diǎn)的周邊情況*/ 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 4 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 4 頁(yè),共 30 頁(yè) - - - - - - - - -for(j=0;j=0 & j-1=0 & pani-1j-1=9) panij+
11、; if(j-1=0 & panij-1=9) panij+; if(i+1=0 & pani+1j-1=9) panij+; if(i-1=0 & pani-1j=9) panij+; if(i+1=0 & j+1y & pani-1j+1=9) panij+; if(j+1y & panij+1=9) panij+; if(i+1x & j+1y & pani+1j+1=9) panij+; if(sum=10)/*畫(huà)底座 */ draw(170,1,162,200); setcolor(1); outtextxy(175,5
12、,game( ); setcolor(4); outtextxy(175,5, g); /* 小*/ else if(sum=40) draw(115,1,272,307); setcolor(1); outtextxy(120,5,game(g); 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 5 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 5 頁(yè),共 30 頁(yè) - - - - - - - - -setcolor(4); outtextxy(120
13、,5, g); /* 中*/ else if(sum=99) draw(40,1,470,307); setcolor(1); outtextxy(45,5,game(g); setcolor(4); outtextxy(45,5, g); /* 大*/ setcolor(1);/*顯示提示信息 */ outtextxy(100,350, : help.); setcolor(4); outtextxy(100,350,h); setcolor(1); outtextxy(200,350, / : exit.); setcolor(4); outtextxy(200,350,q); outte
14、xtxy(220,350,esc); setcolor(1); outtextxy(330,350, : cores.); setcolor(4); outtextxy(330,350,r); facedraw(250,30,sizel,2);/*顯示控制按鈕,臉型 */ for(i=0;ix;i+)/*這一段用于描繪盤(pán)面 */ 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 6 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 6 頁(yè),共 30 頁(yè) - -
15、 - - - - - - -for(j=0;j=pix-10 & xms=2 & yms=pix-6 & xms=17 & yms=pix-6 & xms=28 & yms=pix-6 & xms=39 & yms=pix-6 & xms=50 & yms=pix-6 & xms=61 & yms=pix-6 & xms=72 & yms=pix-6 & xms=83 & yms=250-sizel-2 & yms = 30-sizel-2 & xms
16、=250+sizel+2 & yms=0 & yms-piy =0 & xmspix+x*size & yms=0 & y1-1=0 & pan1x1-1y1-1=2) i+; if(y1-1=0 & pan1x1y1-1=2)i+; if(x1+1=0 & pan1x1+1y1-1=2) i+; if(x1-1=0 & pan1x1-1y1=2) i+; if(x1+1=0 & y1+1y & pan1x1-1y1+1=2) i+; if(y1+1y & pan1x1y1+1=2) i+; if(
17、x1+1x & y1+1=0 & y1-1=0 & pan1x1-1y1-1!=2) 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 13 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 13 頁(yè),共 30 頁(yè) - - - - - - - - -if(panx1-1y1-1!=9) draw1(x1-1,y1-1); else dead(sizel,x,y); k=0; if(y1-1=0 & pan1x1y1-1!=2)
18、if(panx1y1-1!=9) draw1(x1,y1-1); else dead(sizel,x,y); k=0; if(x1+1=0 & pan1x1+1y1-1!=2) if(panx1+1y1-1!=9) draw1(x1+1,y1-1); else dead(sizel,x,y); k=0; 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 14 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 14 頁(yè),共 30 頁(yè) - - - - -
19、- - - -if(x1-1=0 & pan1x1-1y1!=2) if(panx1-1y1!=9) draw1(x1-1,y1); else dead(sizel,x,y); k=0; if(x1+1=0 & y1+1y & pan1x1-1y1+1!=2) if(panx1-1y1+1!=9) draw1(x1-1,y1+1); else dead(sizel,x,y); k=0; 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 15 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f -
20、- - - - - - - - - - - - - 第 15 頁(yè),共 30 頁(yè) - - - - - - - - - if(y1+1y & pan1x1y1+1!=2) if(panx1y1+1!=9) draw1(x1,y1+1); else dead(sizel,x,y); k=0; if(x1+1x & y1+1y &pan1x1+1y1+1!=2) if(panx1+1y1+1!=9) draw1(x1+1,y1+1); else dead(sizel,x,y); k=0; open(x,y); /* 勝利條件 */ k1=0; for(i=0;ix;i+) 精品
21、學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 16 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 16 頁(yè),共 30 頁(yè) - - - - - - - - -for(j=0;jy;j+) if(pan1ij!=1) k1+; if(k1=sum) for(i=0;ix;i+) for(j=0;jy;j+) if(pan1ij=0) setcolor(10);circle(i*size+pix+7,j*size+piy+7,4); facedraw(250,3
22、0,sizel,3); if(x=9 & ttco0) j=0;co0=tt;i=0; if(x=16 & ttco1) j=1;co1=tt;i=0; if(x=30 & ttco2) j=2;co2=tt;i=0; if(i=0) draw(10,10,300,55); setcolor(4); outtextxy(20,15,you break the corse!); outtextxy(20,25,please input your name(0 - 19):); setfillstyle(1, 14); bar(20,35,200,50); for(i=0;
23、i19;i+) nameji=getch(); if(nameji=8) i=i-2; if(nameji=13) nameji=0;break; 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 17 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 17 頁(yè),共 30 頁(yè) - - - - - - - - -nameji+1=0; setfillstyle(1, 14); bar(20,35,200,50); setcolor(1); outtextxy(2
24、0,40,namej); if(p = fopen(score.dat, w) = null) printf(the file cannot open!n); exit(1); fprintf(p,%d %d %d,co0,co1,co2); for(i=0;i3;i+) fprintf(p,%sn,namei); fclose(p); coread(); getch(); goto bss; /* 結(jié)束 111 的判斷*/ /* 下面是一些快捷功能鍵的定義*/ if(ams=q|ams=q| ams=27 ) fclose(p);closegraph();farfree(map);exit(
25、1); /*退出主程序的唯一出口*/ if(ams=c|ams=c) goto bss; /*重來(lái)*/ if(ams=h|ams=h) help();k=0; /*幫助文檔 */ if(ams=r|ams=r) coread();k=0; /*察看成績(jī) */ 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 18 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 18 頁(yè),共 30 頁(yè) - - - - - - - - -getimage(xms,yms,xms
26、+20,yms+20,map); ddraw2(xms,yms); delay(10); /* 結(jié)束鼠標(biāo)循環(huán)讀取的死循環(huán)*/ /*+主函數(shù)結(jié)束 +*/ /* 這個(gè)函數(shù)用于實(shí)現(xiàn)鼠標(biāo)的初始化*/ int msinit() int recored; regs.x.ax=0; int86 (0 x33, & regs, & regs); recored=regs.x.ax; if(recored=0) printf(mouse not found or mouse driver not installed.n); return 0; else return recored; /* 下面
27、這個(gè)子程序是完成描繪一個(gè)按鈕*/ void draw(int x,int y,int sizex,int sizey)/* x, y 為左上角坐標(biāo) sizex,sizey為長(zhǎng)和寬 */ int sizx=sizex-1; int sizy=sizey-1; setcolor(15);/*這里最好用白色 */ 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 19 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 19 頁(yè),共 30 頁(yè) - - - - - -
28、- - -line(x,y,x+sizx-1,y); line(x,y+1,x+sizx-2,y+1); line(x,y,x,y+sizy-1); line(x+1,y,x+1,y+sizy-2); setcolor(8);/*這里最好用深灰色 */ line(x+1,y+sizy,x+sizx,y+sizy); line(x+2,y+sizy-1,x+sizx,y+sizy-1); line(x+sizx-1,y+1,x+sizx-1,y+sizy); line(x+sizx,y+2,x+sizx,y+sizy); setcolor(7);/*這里最好用灰色 */ putpixel(x,y
29、+sizy,3); putpixel(x+1,y+sizy-1,3); putpixel(x+sizx,y,3); putpixel(x+sizx-1,y+1,3); setfillstyle(1, 7);/*這里最好用灰色 , 設(shè)置填充模式 */ bar(x+2,y+2,x+sizx-2,y+sizy-2); /* 下面是一些畫(huà)圖程序 */ /* 形參 x,y 笑臉的中心坐標(biāo) ,sizel臉的大小 (半徑), k 為要描述的臉型, 1:哭、 2:平常、 3:笑*/ void facedraw(int x,int y,int sizel,int k) draw(x-sizel-3,y-size
30、l-3,2*(sizel+4),2*(sizel+4);/*畫(huà)一個(gè)按鈕 */ setcolor(14); setfillstyle(1, 14); pieslice(x, y, 0, 360, sizel);/*畫(huà)一個(gè)黃色的圓面 */ setfillstyle(1, 0); setcolor(0); if(k=1)/*失敗*/ 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 20 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 20 頁(yè),共 30 頁(yè) -
31、- - - - - - - - line(x-sizel*7/20,y-sizel*7/20,x-sizel*3/20,y-sizel*3/20);/*畫(huà)兩個(gè)差表示眼睛 */ line(x-sizel*7/20,y-sizel*3/20,x-sizel*3/20,y-sizel*7/20); line(x+sizel*3/20,y-sizel*7/20,x+sizel*7/20,y-sizel*3/20); line(x+sizel*3/20,y-sizel*3/20,x+sizel*7/20,y-sizel*7/20); arc(x,y+sizel,20,160, sizel/2); if(
32、k=2)/*平常*/ bar(x-sizel*7/20,y-sizel*7/20,x-sizel*3/20,y-sizel*3/20); bar(x+sizel*3/20,y-sizel*7/20,x+sizel*7/20,y-sizel*3/20); arc(x,y,200,340, sizel*3/4); if(k=3)/*成功*/ bar(x-sizel/2,y-sizel/2,x-sizel*3/20,y-sizel*3/20); bar(x+sizel*3/20,y-sizel/2,x+sizel/2,y-sizel*3/20); line(x-sizel*3/20,y-sizel/
33、2,x+sizel*3/20,y-sizel/2); line(x-sizel/2,y-sizel*5/20,x-sizel,y); line(x+sizel/2,y-sizel*5/20,x+sizel,y); arc(x,y,200,340, sizel*3/4); /*嘴巴*/ /* 死亡后的處理程序 */ /*x,y要判斷的點(diǎn)的坐標(biāo) ,sizel為臉的大小 */ void dead(int sizel,int x,int y) 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 21 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資
34、料 可選擇p d f - - - - - - - - - - - - - - 第 21 頁(yè),共 30 頁(yè) - - - - - - - - -int i,j;/*循環(huán)變量 */ setcolor(4); for(i=0;ix;i+) for(j=0;jy;j+) if(panij=9) circle(i*size+pix+7,j*size+piy+7,4); /* 用紅色的圓圈標(biāo)記有雷的方塊*/ facedraw(250,30,sizel,1); eflags=1; /* 下面的函數(shù)用于實(shí)現(xiàn)設(shè)置鼠標(biāo)的移動(dòng)范圍*/ /*xmax,ymax 為左上角的坐標(biāo) x,y 矩陣的大小 */ void set
35、mouse(int xmax,int ymax,int x,int y) int left,right,top,buttom;/*這四個(gè)變量用于確定移動(dòng)的左上角和右下角*/ left=xmax; right=x; top=ymax; buttom=y; regs.x.ax=7; regs.x.cx=left; regs.x.dx=right; int86(0 x33,& regs,& regs); regs.x.ax=8; regs.x.cx=top; regs.x.dx=buttom; int86(0 x33,& regs,& regs); 精品學(xué)習(xí)資料 可選
36、擇p d f - - - - - - - - - - - - - - 第 22 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 22 頁(yè),共 30 頁(yè) - - - - - - - - - /* 下面這個(gè)函數(shù)用于實(shí)現(xiàn)鼠標(biāo)的讀取*/ /*xp,yp,bup分別為鼠標(biāo)的位置和按鍵情況,t1,k是時(shí)間現(xiàn)實(shí)參數(shù) ,t1 為開(kāi)始時(shí)間,k 為開(kāi)始標(biāo)記 */ int msread(int *xp,int *yp,int *bup,struct time t1,int k) int x0=*xp,y0=*yp,bu0
37、=*bup; int xnew,ynew,ch; int tt1=0;/*用于記錄時(shí)間差 */ struct time t2; char ttt4=000; do if(kbhit() return getch(); regs.x.ax=3; int86(0 x33,& regs,& regs); xnew=regs.x.cx; ynew=regs.x.dx; *bup=regs.x.bx; /* 下面用于顯示時(shí)間 */ if(k=1)/*如果已經(jīng)開(kāi)始就計(jì)算時(shí)間差*/ gettime(&t2); tt1=(t2.ti_hour- t1.ti_hour)*3600 + (
38、t2.ti_min- t1.ti_min)*60 + t2.ti_sec - t1.ti_sec;/*有待改進(jìn) */ if(tt1=999 & tt!=tt1)/*當(dāng)時(shí)間差有改變時(shí),才顯示*/ tt=tt1; 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 23 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 23 頁(yè),共 30 頁(yè) - - - - - - - - -ttt0=(tt-tt%100)/100+48; ttt1=(tt%100-tt%
39、10)/10 +48; ttt2=tt%10+48; setfillstyle(1, 0); bar(460-pix,25,490-pix,40); setcolor(4); outtextxy(465-pix,30,ttt); while(xnew=x0&ynew=y0&*bup=bu0); *xp=xnew; *yp=ynew; return -1;/*鍵盤(pán)無(wú)輸入時(shí)返回 -1, 其次返回鍵盤(pán)值 */ void draw1(int x,int y)/*這個(gè)函數(shù)用于在 x,y 的位置描繪開(kāi)后的情況 */ setfillstyle(1, 7); bar(x*size+pix,y*
40、size+piy,x*size+size+pix-1,y*size+size+piy-1); /* 在四個(gè)角上畫(huà)上點(diǎn)標(biāo)記 */ /*putpixel(x*size+pix,y*size+piy,8); putpixel(x*size+size+pix-1,y*size+size+piy-1,8); putpixel(x*size+pix,y*size+size+piy-1,8); putpixel(x*size+size+pix-1,y*size+piy,8);*/ setcolor(8); setlinestyle(1, 0, 1); rectangle(x*size+pix,y*size+
41、piy,x*size+size+pix-1,y*size+size+piy-1); 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 24 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 24 頁(yè),共 30 頁(yè) - - - - - - - - -setlinestyle(0, 0, 1); if(panxy!=0)/*沒(méi)有雷的話(huà)不做顯示 */ b0=panxy+48; if(panxy!=7)/*防止字的顏色和背景顏色相同*/ setcolor(panxy)
42、; else setcolor(9); outtextxy (x*size+pix+3,y*size+piy+3,b); pan1xy=1;/*在 pan1中標(biāo)記這一點(diǎn)的挖雷情況 */ /* 自開(kāi)函數(shù) */ int open(int x,int y)/*函數(shù)中引入 pan2的目的是為了增加自開(kāi)的效率,但是還是有不足之處 */ int i,j,k; int pan23016=0;/*pan2,臨時(shí)紀(jì)錄盤(pán)面的自開(kāi)情況 ,0 沒(méi)有自開(kāi)過(guò) ,1:已經(jīng)自開(kāi)過(guò) (30 這里有危險(xiǎn)的技術(shù)性問(wèn)題 !)*/ for(;) k=0;/* 是一個(gè)標(biāo)記變量 */ for(i=0;ix;i+) for(j=0;j=0
43、& j-1=0 & pan1i-1j-1=0) draw1(i-1,j-1); /*左上方 */ if(j-1=0 & pan1ij-1=0) draw1(i,j-1); /*上方*/ if(i+1=0 & pan1i+1j-1=0) draw1(i+1,j-1); /*右上方 */ if(i-1=0 & pan1i-1j=0) draw1(i-1,j); /*左方*/ if(i+1=0 & j+1y & pan1i-1j+1=0) draw1(i-1,j+1); /*左下方 */ if(j+1y & pan1ij+1=0) dr
44、aw1(i,j+1); /*下方*/ if(i+1x & j+1y & pan1i+1j+1=0) draw1(i+1,j+1); /*右下方 */ if(k=0) return 0;/*沒(méi)有新的自開(kāi)點(diǎn)時(shí)退出 */ float random()/*隨即數(shù)生成函數(shù) , 加入了時(shí)間變量目的在于加強(qiáng)它的隨機(jī)性*/ float aa; int i,j; struct time t; gettime(&t); i=t.ti_min+t.ti_hour+t.ti_sec+t.ti_hund; for(j=0;ji;j+) rand(); aa=rand()/32767.0; ret
45、urn aa;/*返回產(chǎn)生的隨機(jī)數(shù) (0-1)*/ /* 下面是一個(gè)顯示剩余雷數(shù)目的函數(shù)*/ 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 26 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 26 頁(yè),共 30 頁(yè) - - - - - - - - -void have(int sum,int x,int y,int xx,int yy)/*游戲中雷的總數(shù)目不能多余99 顆,sum 為雷的總數(shù)目 ,x,y為顯示的地點(diǎn) */ int i,j,k=0; ch
46、ar a3=1; for(i=0;ixx;i+) for(j=0;jyy;j+) if (pan1ij=2) k+;/*統(tǒng)計(jì)一共標(biāo)記了多少 */ k=sum-k;/* 剩下了多少 */ if(k0) k=0; a0=(k-(k%10)/10+48;/*字符轉(zhuǎn)換 */ a1=k%10+48; setfillstyle(1, 0); bar(x-5,y-5,x+20,y+10);/*在原點(diǎn)涂黑 */ setcolor(4); outtextxy(x,y,a);/*顯示數(shù)目 */ /* 下面是幫助函數(shù) */ void help() draw(40,1,560,160); setcolor(1); o
47、uttextxy(300,10,help); setcolor(4); outtextxy(50,30,welcome to play this game. the mouse is supplied.); outtextxy(50,40,please press left button of the mouse where there is no boom.); outtextxy(50,50,if you think there is a boom please press right button.); 精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - -
48、- 第 27 頁(yè),共 30 頁(yè) - - - - - - - - -精品學(xué)習(xí)資料 可選擇p d f - - - - - - - - - - - - - - 第 27 頁(yè),共 30 頁(yè) - - - - - - - - -outtextxy(50,60,you can choose the size of the game with press the right buttons.); outtextxy(50,70,big means 99 booms,normal means 40 booms,small means 10 booms.); outtextxy(50,80,you can pre
49、ss the laugh-face-button or press c to play again.); outtextxy(50,90,when you fail or success you can press any key to play again. ); outtextxy(50,100,whenever you want to quit this game please press q. ); outtextxy(50,110,if you find out all booms then you are winning. ); setcolor(9); outtextxy(50,140,press any key to play again.); eflags=2; void coread()/*這個(gè)函
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色倉(cāng)儲(chǔ)倉(cāng)房買(mǎi)賣(mài)合同范本環(huán)保解讀3篇
- 2025年度旅游單項(xiàng)服務(wù)保障合同4篇
- 2024-2025學(xué)年高中英語(yǔ)Unit4Breakingboundaries突破語(yǔ)法大沖關(guān)教師用書(shū)外研版選擇性必修第二冊(cè)
- 2024-2025學(xué)年新教材高中歷史第八單元20世紀(jì)下半葉世界的新變化第18課冷戰(zhàn)與國(guó)際格局的演變課時(shí)作業(yè)含解析新人教版必修中外歷史綱要下
- 二零二五版工程招投標(biāo)與合同管理法律法規(guī)匯編及解讀3篇
- 2024版汽車(chē)維修工具套件租賃合同
- 2024版廣西事業(yè)單位聘用合同樣板
- 2025年屋頂雨水排水管及配套設(shè)施銷(xiāo)售與安裝服務(wù)合同2篇
- 二零二五年度教育合作辦班合同范本3篇
- 2024版汽車(chē)修理廠土地租賃合同
- 2023年上海英語(yǔ)高考卷及答案完整版
- 西北農(nóng)林科技大學(xué)高等數(shù)學(xué)期末考試試卷(含答案)
- 金紅葉紙業(yè)簡(jiǎn)介-2 -紙品及產(chǎn)品知識(shí)
- 《連鎖經(jīng)營(yíng)管理》課程教學(xué)大綱
- 《畢淑敏文集》電子書(shū)
- 頸椎JOA評(píng)分 表格
- 員工崗位能力評(píng)價(jià)標(biāo)準(zhǔn)
- 定量分析方法-課件
- 朱曦編著設(shè)計(jì)形態(tài)知識(shí)點(diǎn)
- 110kV變電站工程預(yù)算1
- 某系統(tǒng)安全安全保護(hù)設(shè)施設(shè)計(jì)實(shí)施方案
評(píng)論
0/150
提交評(píng)論