C语言二维数组实现扫雷游戏
2016-05-04 13:59
633 查看
#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; }
相关文章推荐
- C语言二维数组实现扫雷游戏
- C语言二维数组实现扫雷游戏
- C语言3(复杂程序结构)
- C语言中动态分配数组
- 《More Effective C++》学习笔记之一引用与指针
- C++ —— 自动Singleton的实现
- C++ —— 自动Singleton的实现
- MOOC北京理工《C语言程序设计(上)》第6周第2题:空心字符菱形
- 数据与结构 顺序表
- vc6.0中.exe已停止工作原因
- HDU 1671-Phone List(字典树-前缀匹配)
- C++实现简单的扫雷游戏(控制台版)
- C++ static CString 变量在成员函数与全局函数中的不同表现
- c++ c# 数据类型转换
- C++ 抽象类
- C语言通讯录(初级版)
- 小波变换的C++实现
- [C++]模板与泛型编程
- 举例讲解C语言对归并排序算法的基础使用
- C++中的运算符合赋值问题