C语言编写一个简单的扫雷

# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# include <time.h># define M 10//····竖坐标
# define N 20//····横坐标
# define S 30//····地雷数量struct ZL {int x;int y;
}zb[S];//·····坐标值void MAP(int(*lei)[N + 2], int(*map)[N + 2]);//·····打印游戏界面
void LEI(int(*lei)[N + 2]);//····地雷界面int main() {int lei[M + 2][N + 2] = { 0 }, map[M + 2][N + 2] = { 0 };int i, j, m, n, x, y, s, t;LEI(lei);while (1) {s = 0;MAP(lei, map);printf("\n请输入坐标(格式:X空格Y):\n");scanf("%d%d", &m, &n);if (m > M || n > N) {continue;}if (lei[m][n] == 1) {system("cls");for (i = 0, x = -1; i <= 2 * (M + 1); i++) {if (i % 2 == 0) {x++;}for (j = 0, y = -1; j <= 2 * (N + 1); j++) {if (j % 2 == 0) {y++;}if ((i == 0 || i == 2 * (M + 1)) && (j == 0 || j == 2 * (N + 1))) {printf("+");if (i == 0 && j == 2 * (N + 1)) {printf("------y");}}else {if (i % 2 == 0) {if (j % 2 == 0) {printf("-");}else {printf("---");}}else {if (j % 2 == 0) {printf("|");}else {if (i == 1) {printf("%-3d", (j - 1) / 2);}else if (j == 1) {printf("%-3d", (i - 1) / 2);}else {if (lei[x][y] != 1) {printf(" %d ", lei[x][y] / 2);}else {printf(" * ");}}}}}}printf("\n");}printf("|\n|\n|\nX\n\n\n\t\tGame Over!\n");break;}else {map[m][n] = 1;while (1) {t = 1;for (i = 1; i < M + 2; i++) {for (j = 1; j < N + 2; j++) {if (map[i][j] == 1 && lei[i][j] == 0) {if (i - 1 != 0 && j - 1 != 0 && map[i - 1][j - 1] != 1) {map[i - 1][j - 1] = 1;t = 0;}if (i - 1 != 0 && map[i - 1][j] != 1) {map[i - 1][j] = 1;t = 0;}if (i - 1 != 0 && j + 1 != N + 1 && map[i - 1][j + 1] != 1) {map[i - 1][j + 1] = 1;t = 0;}if (j - 1 != 0 && map[i][j - 1] != 1) {map[i][j - 1] = 1;t = 0;}if (j + 1 != N + 1 && map[i][j + 1] != 1) {map[i][j + 1] = 1;t = 0;}if (i + 1 != M + 1 && j - 1 != 0 && map[i + 1][j - 1] != 1) {map[i + 1][j - 1] = 1;t = 0;}if (i + 1 != M + 1 && map[i + 1][j] != 1) {map[i + 1][j] = 1;t = 0;}if (i + 1 != M + 1 && j + 1 != N + 1 && map[i + 1][j + 1] != 1) {map[i + 1][j + 1] = 1;t = 0;}}}}if (t == 1) {break;}}}for (i = 1; i < M + 1; i++) {for (j = 1; j < N + 1; j++) {if (map[i][j] == 0) {s++;}}}if (s == S) {printf("\t\t恭喜你成功了!!!\n");break;}}return 0;
}//·····打印游戏界面
void MAP(int(*lei)[N + 2], int(*map)[N + 2]) {int i, j, x, y;system("cls");for (i = 0, x = -1; i <= 2 * (M + 1); i++) {if (i % 2 == 0) {x++;}for (j = 0, y = -1; j <= 2 * (N + 1); j++) {if (j % 2 == 0) {y++;}if ((i == 0 || i == 2 * (M + 1)) && (j == 0 || j == 2 * (N + 1))) {printf("+");if (i == 0 && j == 2 * (N + 1)) {printf("------y");}}else {if (i % 2 == 0) {if (j % 2 == 0) {printf("-");}else {printf("---");}}else {if (j % 2 == 0) {printf("|");}else {if (i == 1) {printf("%-3d", (j - 1) / 2);}else if (j == 1) {printf("%-3d", (i - 1) / 2);}else {if (map[x][y] == 1) {printf("%-3d", lei[x][y] / 2);}else {printf("[*]");}}}}}}printf("\n");}printf("|\n|\n|\nX\n");
}//······················生成地雷地图
void LEI(int(*lei)[N + 2]) {int i, j, x, y;srand(time(NULL));for (i = 0; i < S; i++) {//··········生成地雷坐标x = zb[i].x = abs(rand() % M) + 1;y = zb[i].y = abs(rand() % N) + 1;if (lei[x][y] == 1) {i--;continue;}lei[x][y] = 1;//printf("%-5d%-5d\n", zb[i].x, zb[i].y);}for (i = 1; i <= M; i++) {//·········生成地雷周围数字for (j = 1; j <= N; j++) {if (lei[i][j] == 1) {continue;}if (lei[i - 1][j - 1] == 1) {lei[i][j]++;}if (lei[i - 1][j] == 1) {lei[i][j]++;}if (lei[i - 1][j + 1] == 1) {lei[i][j]++;}if (lei[i][j - 1] == 1) {lei[i][j]++;}if (lei[i][j + 1] == 1) {lei[i][j]++;}if (lei[i + 1][j - 1] == 1) {lei[i][j]++;}if (lei[i + 1][j] == 1) {lei[i][j]++;}if (lei[i + 1][j + 1] == 1) {lei[i][j]++;}lei[i][j] *= 2;}}
}

C语言编写一个简单的扫雷相关推荐

  1. c语言编写一个简单的答题系统

    利用c语言编写一个简单的答题系统. 思路是先设计好题目和答案,再输入自己的答案,利用输入的答案与正确答案对比,从而得出你回答的对错. (一)捆绑题目和答案 我们可以利用结构体对一个题目捆绑上一个答案. ...

  2. 用 C 语言编写一个简单的垃圾回收器

    人们似乎认为编写垃圾回收机制是很难的,是一种只有少数智者和Hans Boehm(et al)才能理解的高深魔法.我认为编写垃圾回收最难的地方就是内存分配,这和阅读K&R所写的malloc样例难 ...

  3. python语言的记事本在哪_用python语言编写一个简单记事本

    看了一点python的基础教程,忍不住手就痒了,找来一个题目练一下喽. 题目:编写一个功能简单的记事本. 编写记事本就要用到GUI的功能,最常用的当然是wxpython,那么我们就用这个来写一个记事本 ...

  4. 用C语言编写一个“简单”的程序答题系统

    上个星期我们老师给我们布置一道他认为很简单的题,其实就想考考我们,要我们写一个简单的答题系统.开始一看只有一道题我直呼:"仰天大笑出门去,我辈岂是蓬蒿人" 以为老师放我一马,结果点 ...

  5. 用C语言实现一个简单的扫雷小游戏(附全代码及教程)

    本文实例为大家分享了C语言实现扫雷游戏的具体代码,供大家参考,具体内容如下: 首先,创建一个text.c文件: 编写主函数: int main() {test();return 0; } 定义test ...

  6. 用C语言实现一个简单的扫雷游戏

    初学者学习了一些c语言基础用法以后需要尝试实战练习,扫雷小游戏就十分适合.因为他能用到很多以前学习的知识,用来巩固再好不过了 废话不多说 开干 我们首先要有一个清晰的思路 和其他游戏一样我们打开游戏第 ...

  7. 用GO语言编写一个简单的区块链

    区块链的大致概念. 按照个人理解来说,区块,就是保存一个一个数据的模块,然后区块链,是每个区块相连的链表那种,同时区块链实现之所以公平,是采用加密,且不可倒置等的机制,也就是,数据只要成功加载到区块链 ...

  8. 【无标题】C语言编写一个简单答题系统

    这是蒟蒻写的第一个博客,将就看看吧! 首先,我写的是一个填空题答题系统,填空题数目为20. 其次,需要随机出题,题目出现顺序要不一致. (1) 产生随机数 1~20 (2)  解决运气不好的问题1-1 ...

  9. C语言编写一个简单的选择题答题系统

    上个星期,我们老师给我们布置了一道非常变态的作业题.开始一看只有一道题,欣喜若狂, 以为老师终于大发慈悲了一回,结果点开一看,长这样... 顿时就傻了眼,对于一个刚接触C语言一两个月的小白来说,不能说 ...

最新文章

  1. 用友二次开发——工资导入
  2. ES6学习笔记(十六)async函数
  3. Ext JS学习第五天 Ext_window组件(二)
  4. 愿你白天有说有笑,晚上睡个好觉
  5. 什么是数据标准管理系统
  6. php单例模式代码,php设计模式之单例模式代码
  7. 获取计算机显示屏高度,CSS 使用calc()获取当前可视屏幕高度
  8. 论文阅读(9) 鱼类洄游粒子图像测速技术综述 (2016)
  9. 摩擦学类毕业论文文献都有哪些?
  10. 49-从哥尼斯堡七桥问题开始
  11. 揭开均线系统的神秘面纱_揭开动态规划的神秘面纱
  12. sw制作arduino模型
  13. STC89C52驱动W25Q32测试笔记
  14. 『可道云』内网穿透牛刀小试,会敲键盘就能搭建的私有云网盘
  15. py233基于 python的诚交大学生二手交易平台Django#毕业设计
  16. WIFI智能电源插座是怎么连上路由器的?
  17. 2021-09-27 屏幕尺寸、设计尺寸规范
  18. Docker buil提示https://registry-1.docker.io/v2/: read tcp 10.221->:443: read: connection reset by peer
  19. 计算机慢的解决方法,电脑很卡反应很慢该如何处理【解决方法】
  20. 刷机命令android手机刷机后,wifi无法使用的解决方法

热门文章

  1. 安科瑞安全用电管理云平台
  2. uwp项目的设计器打开出现没有.cs可用的编辑器的解决办法
  3. Win和Mac NTFS exFat等格式 兼容问题
  4. 微信信息处理 微信公众平台开发教程(1)
  5. PHP程序员要想在北京买房你得狠
  6. 共享打印机时,出现0x000006d9的解决方法
  7. 上海理工大学计算机专业考研难度,上海理工大学机械(专硕)专业考研难度分析-专业排名-难度大小...
  8. 有哪些值得计算机专业学生加入的国企?
  9. 推导反向传播中的dZ=A - y
  10. (Beta)Let's-版本测试报告