C语言二维数组实现扫雷游戏

简介: #include//使用二维数组实现 扫雷int main(){ char ui[8][8]={ '+','+','+','+','+','+','+','+', '+','+','+','+','+','...
#include<stdio.h>
//使用二维数组实现 扫雷
int main()
{

   char ui[8][8]={
                  '+','+','+','+','+','+','+','+',
                  '+','+','+','+','+','+','+','+',
                  '+','+','+','+','+','+','+','+',
                  '+','+','+','+','+','+','+','+',
                  '+','+','+','+','+','+','+','+',
                  '+','+','+','+','+','+','+','+',
                  '+','+','+','+','+','+','+','+',
                  '+','+','+','+','+','+','+','+'
                 };
   int map[8][8]={
                     0,0,0,0,0,0,0,0,
                     0,0,1,0,0,1,0,0,
                     0,0,0,0,1,0,0,0,
                     0,0,0,0,0,1,0,0,
                     0,0,1,0,0,0,0,0,
                     0,0,1,0,0,0,0,0,
                     0,1,0,1,1,0,0,0,
                     1,0,0,0,0,0,0,0
                     };
   int p[8][2]={{-1,-1} ,{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};
   int i=0,j=0; 
   int h=0,l=0;
   int h1=0,l1=0;
   int n=0;//用来保存 雷的数量 计数
   int win=0;
 while(1)
  {
       printf("    扫雷游戏\n");
       
          for(i=0;i<8;i++)
            {
              for(j=0;j<8;j++)
                {
                  printf("%c ",ui[i][j]);
                }
               printf("\n");
           }

       
      printf("请输入你要打开的位置 行 列:");
          scanf("%d%d",&h,&l);
         if(map[h-1][l-1]==1)
          {
              printf("踩到雷 游戏结束\n");
                break;
          }
         h=h-1;
         l=l-1; 
         
        
         
         //没有踩到雷的情况  判断周围有几个雷 并把数字显示在 界面上
         //-1 -1    -1, 0   -1,+1   0 ,-1   0 ,+1   +1 ,-1    +1,0   +1 ,+1 
      
        //n=map[h-1][l-1]+map[h-1][l]+map[h-1][l+1]+map[h][l-1]+map[h][l+1]+map[h+1][l-1]+map[h+1][l+1]+map[h+1][l];
        i=0;
      
        while(i<8)
         {
             n=0;
             h1=h;
             l1=l; 
             h1= h1+p[i][0];
             l1=l1+p[i][1];
             if(h1>=0&&h1<8&&l1>=0&&l1<8)
               {
                    if(map[h1][l1]==1)
                        {
                           n++;
                        }  
               }
        
             i++;
          }
           
         //把得到的数字显示到 界面上 ui[h][l];
         //把int数字转换成 字符
         switch(n)
           {
                case 0:
                    ui[h][l]='0';
                       break;
                case 1:
                    ui[h][l]='1';
                       break;
                case 2:
                    ui[h][l]='2';
                       break;
                case 3:
                    ui[h][l]='3';
                       break;
                case 4:
                    ui[h][l]='4';
                       break;
                case 5:
                    ui[h][l]='5';
                       break;
                case 6:
                    ui[h][l]='6';
                       break;
                case 7:
                    ui[h][l]='7';
                       break;
                case 8:
                    ui[h][l]='8';
                       break;
           }
           win++;
           if(win==54)
             {
                printf("获胜 游戏结束\n");
                   break;
             }   
   }
  return 0;
}





目录
相关文章
|
2月前
|
C语言
扫雷游戏(用C语言实现)
扫雷游戏(用C语言实现)
105 0
|
25天前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
31 1
|
2月前
|
编译器 C语言
猜数字游戏实现#C语言
猜数字游戏实现#C语言
87 1
|
2月前
|
存储 C语言
揭秘C语言:泊舟的猜数字游戏
揭秘C语言:泊舟的猜数字游戏
|
2月前
|
存储 算法 安全
C语言实现扫雷游戏
C语言实现扫雷游戏
|
2月前
|
C语言
初学者指南:使用C语言实现简易版扫雷游戏
初学者指南:使用C语言实现简易版扫雷游戏
38 0
|
2月前
|
C语言
C语言扫雷游戏(详解)
C语言扫雷游戏(详解)
41 0
|
2月前
|
程序员 C语言
初识C语言之三子棋游戏
初识C语言之三子棋游戏
37 0
|
2月前
|
C语言
初识C语言3——函数(以猜数字游戏为例)
初识C语言3——函数(以猜数字游戏为例)
71 0
|
2月前
|
存储 编译器 C语言
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
【C语言篇】数组和函数的实践:扫雷游戏(附源码)
38 0