C语言二维数组实现扫雷游戏
#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语言二维数组传递,目前我总结三种方法,以及纠正一个不能使用的方法 /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维 ...
- 关于c语言二维数组与指针的个人理解及处理办法。
相信大家在学习C语言时,对一维数组和指针的理解应该是自信的,但是,我在学习过程中,看到网上一些博文,发现即便是参加工作的一些专业编程人员,突然碰到二维数组和指针的问题时,也可能会遇到难以处理的诡异问题 ...
- C语言 二维数组复制、清零及打印显示
#include <stdlib.h> #include <stdio.h> #include <string.h> //二维整型数组打印显示 ],int row, ...
- C语言二维数组作业
一.PTA实验作业 题目1:7-3 出生年 1. 本题PTA提交列表 2. 设计思路 1.声明一个函数different()用来计算一个年份的不同数字个数 2.定义y(y是来计算符合要求的年份的量), ...
- C语言 二维数组(指针)动态分配和释放(转)
C 二维数组(指针)动态分配和释放 先明确下概念: 所谓32位处理器就是一次只能处理32位,也就是4个字节的数据,而64位处理器一次就能处理64位,即8个字节的数据.如果我们将总长128位的指令分别按 ...
- C语言二维数组
上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组.在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以确定它在数组中的位置.本节只介绍二维数 ...
- C语言二维数组作为函数参数
设有整型二维数组a[3][4]如下:0 1 2 34 5 6 78 9 10 11 它的定义为: int a[3][4]={{0,1,2,3},{4,5,6,7} ...
- C语言二维数组作为函数的参数
前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include < ...
- c语言二维数组与指针
问题,以下输出的结果是什么,区别在于哪? void main() { ][] = { ,,,,,,,,,,, }; //输出的3个地址都一样,差别在哪? printf("\n%x" ...
随机推荐
- qsort函数应用大全
七种qsort排序方法 <本文中排序都是采用的从小到大排序> 一.对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , c ...
- iOS开发之Xcode8推出的WKWebView与UIWebView的使用
一.整体介绍 UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebView.通过简单的测试即可发现UIWebView占用过多内存,且 ...
- Map俩种遍历方式
Map本身没有迭代器因而在遍历其中元素时需要采取新的措施,在JDK中提供了俩种方法 keySet Set<K> keySet() 返回此映射中包含的键的 Set 视图.该 set 受映射支 ...
- JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫
JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接 ...
- XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=505 因为常用cocos2dx开 ...
- React Native网络请求
很多移动应用都需要从远程地址中获取数据或资源.你可能需要给某个REST API发起POST请求以提交用户数据,又或者可能仅仅需要从某个服务器上获取一些静态内容--以下就是你会用到的东西.新手可以对照这 ...
- Java开发各层对象含义 PO,VO,DAO,BO,POJO
java的几种对象(PO,VO,DAO,BO,POJO)解释 一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中 ...
- Android实战之ListView复选框
项目中有用到复选框的例子,啊啊......在网上查找有关资料,大多都是过于繁琐,所以自己决定写个这个方面的demo... 先给个效果图: 在ListView中添加复选框主要注意以下几个问题: 1.Li ...
- Servlet之Listener监听器
Servlet2.5规范共有8中Listener接口,6种Event类型 ServletContextListener接口 [接口方法] contextInitialized()与 contextDe ...
- Salt: Master server cannot see any Minion
Issue: When you set up a Salt Master server and several Minions, you may find that none of minions c ...