辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
if(num[i+1][j]==10) x++;
if(num[i][j-1]==10) x++;
if(num[i][j+1]==10) x++;
if(num[i+1][j-1]==10) x++;
if(num[i+1][j+1]==10) x++; }
else if(i==9) {
if(num[i-1][j]==10) x++;
if(num[i][j-1]==10) x++;
if(num[i][j+1]==10) x++;
if(num[i-1][j-1]==10) x++;
if(num[i-1][j+1]==10) x++; } else {
if(num[i-1][j]==10) x++;
if(num[i-1][j+1]==10) x++;
if(num[i][j+1]==10) x++;
if(num[i+1][j+1]==10) x++;
if(num[i+1][j]==10) x++;
if(num[i+1][j-1]==10) x++;
if(num[i][j-1]==10) x++;
if(num[i-1][j-1]==10) x++; }
return(x);
10
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
}
funcheck(int i,int j)/*开始找无雷*/ {
scorenum--;
if(p[i][j]==0&&num[i][j]!=10) {
setfillstyle(SOLID_FILL,7);/*显示无雷区*/
bar(200+j*20-7,100+i*20-7,200+j*20+7,100+i*20+7); num[i][j]=-1; }
else if(p[i][j]!=0) {
sprintf(score,\输出雷数*/ setcolor(RED);
outtextxy(195+j*20,95+i*20,score); num[i][j]=-1; return ; }
if(i!=0&&num[i-1][j]!=-1&&num[i-1][j]!=10)/*第归开始*/ funcheck(i-1,j);
if(i!=0&&j!=9&&num[i-1][j+1]!=-1&&num[i-1][j+1]!=10) funcheck(i-1,j+1);
if(j!=9&&num[i][j+1]!=-1&&num[i][j+1]!=10) funcheck(i,j+1);
if(j!=9&&i!=9&&num[i+1][j+1]!=-1&&num[i+1][j+1]!=10) funcheck(i+1,j+1);
if(i!=9&&num[i+1][j]!=-1&&num[i+1][j]!=10) funcheck(i+1,j);
if(i!=9&&j!=0&&num[i+1][j-1]!=-1&&num[i+1][j-1]!=10) funcheck(i+1,j-1);
if(j!=0&&num[i][j-1]!=-1&&num[i][j-1]!=10) funcheck(i,j-1);
if(i!=0&&j!=0&&num[i-1][j-1]!=-1&&num[i-1][j-1]!=10) funcheck(i-1,j-1); }
playgame()/*游戏过程*/ {int i,j,numx; for(i=0;i<10;i++) for(j=0;j<10;j++)
p[i][j]=tongji(i,j);/*把标记有几个雷的数字都存放起来*/ while(!kbhit()) {
if(LeftPress())/*左键盘按下*/
11
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
{
MouseGetXY();
if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85)/*重新来*/ {
MouseOff(); again=1; break; }
if(MouseX>190&&MouseX<390&&MouseY>90&&MouseY<290)/*是否在游戏范围内*/ {
j=(MouseX-190)/20;/*x坐标*/ i=(MouseY-90)/20;/*y坐标*/ if(num[i][j]!=-1) {
if(num[i][j]==10)/*中雷*/ {
MouseOff();
gameove();/*失败*/ break; }
else/*非中雷*/ {
MouseOff();
numx=tongji(i,j);
if(numx==0)/*周围没地雷*/
funcheck(i,j);/*开始找无雷*/ else/*有地雷*/ {
sprintf(score,\输出雷数*/ setcolor(RED);
outtextxy(195+j*20,95+i*20,score); scorenum--; }
MouseOn(); num[i][j]=-1;
if(scorenum<1)/*胜利了*/ {
setcolor(11);
settextstyle(0,0,2);
outtextxy(230,30,\ break; } } }
12
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
} } } }
main()
{int gd=DETECT,gr;
registerbgidriver(EGAVGA_driver); initgraph(&gd,&gr,\ loop: begain();
playgame();/*具体游戏*/
if(again)/*游戏中重新开始*/ {
again=0; goto loop; }
MouseOn();
while(!kbhit())/*重新来*/ {
if(LeftPress()) {
MouseGetXY();/*失败后重新来*/
if(MouseX>280&&MouseX<300&&MouseY>65&&MouseY<85) goto loop; } }
MouseOff(); closegraph(); }
13
相关推荐: