源代码如下

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
#define amu 10
#define Lshu 10
void menu()//菜单
{printf("*************************************\n");printf("****** 欢 迎 来 到 扫 雷 游 戏 ******\n");printf("******  1.开始游戏    0.退出  *******\n");printf("*************************************\n");printf("请输入选择\n");
}
void Show( char show[][amu + 2])//打印图像
{int i, s;system("cls");printf("   0  1  2  3  4  5  6  7  8  9 \n");for (i = 0; i <= 9; i++){printf("\n");printf("%d", i);for (s = 1; s <= 10; s++){printf("%3c", show[i+1][s]);}printf("\n");}
}
int getnum(char mine[][amu+2], int i, int j)//所选坐标周围的雷数量
{return mine[i - 1][j - 1] + mine[i - 1][j] + \mine[i - 1][j + 1] + mine[i][j - 1] + \mine[i][j + 1] + mine[i + 1][j - 1] + \mine[i + 1][j] + mine[i + 1][j + 1] - 8 * '0';
}
void fullmine(char mine[][amu + 2], int sta, int end)//埋雷
{int sum = 0, n, m;srand((unsigned int)time(NULL));while (1){n = rand() % (end - sta + 1) + sta;m = rand() % (end - sta + 1) + sta;if (mine[n][m] == '0'){mine[n][m] = '1';sum++;}if (sum == Lshu){return;}}}
int judge(char mine[][amu + 2], int n, int m)//判断是否踩雷
{if (mine[n][m] != '1'){return 1;}return 0;
}
void game(char show[][amu + 2], char mine[][amu + 2], int sta, int end)
{int sum = 0, n, m,p;Show(show);fullmine(mine, sta, end);while (1){printf("请输入要选择的坐标\n");scanf("%d%d", &n, &m);n++; m++;if (n >=1 && n <= amu && m >= 1 && m <= amu){p = judge(mine, n, m);if (p == 1){sum = getnum(mine, n, m);show[n][m] = sum + '0';if (mine[n-1][m] == '0')//坐标周围展开{show[n-1][m] = '\0';}if (mine[n][m + 1] == '0'){show[n][m + 1] = '\0';}if (mine[n + 1][m] == '0'){show[n + 1][m] = '\0';}if (mine[n + 1][m+1] == '0'){show[n + 1][m+1] = '\0';}if (mine[n - 1][m+1] == '0'){show[n - 1][m+1] = '\0';}if (mine[n + 1][m-1] == '0'){show[n + 1][m-1] = '\0';}if (mine[n-1][m-1] == '0'){show[n-1][m-1] = '\0';}if (mine[n ][m-1] == '0'){show[n ][m-1] = '\0';}}else{break;}Show(show);}else{printf("输入坐标不正确\n");}}
}
int main()
{int input, sta = 1, end = 10;char mine[amu + 2][amu + 2];char show[amu + 2][amu + 2];memset(show, '#', sizeof(show));memset(mine, '0', sizeof(mine));menu();scanf("%d", &input);if (input == 1){game(show, mine, sta, end);//游戏进程}else{return 0;}Show(mine);printf("Game Over\n You Lost\n");system("pause");return 0;
} 

转载于:https://blog.51cto.com/14232799/2379804

C语言编程 简单展开扫雷游戏相关推荐

  1. C语言编程练习,扫雷游戏

    编程记录,关于B站上鹏哥C语言课程中的练习记录 记录内容:C语言实现扫雷(关于数组) 思路 test.c 测试逻辑 game.h 存储声明 game.c 编写运行函数 用循环使游戏多次执行(do-wh ...

  2. c语言编程简单的小游戏读心术,无聊的时候写的读心术小程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include int main(void) { while(1) { system("cls" ...

  3. 简单五子棋游戏c语言简单,C语言制作简单的五子棋游戏

    原标题:C语言制作简单的五子棋游戏 C语言制作简单的五子棋游戏 学习C语言的人很多,但是用C语言很少,而用来为自己所用,来做游戏的人就更少了,很多人都是跟着学校学习,学校讲到哪就坐到哪,但是以后却还是 ...

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

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

  5. 简易扫雷游戏c语言程序,C++实现简单的扫雷游戏(控制台版)

    C++新手的代码,请各位多包涵. 用C++写的一个简单的控制台版扫雷游戏.玩家通过输入方块的坐标来翻开方块. 只是一个雏形,能够让玩家执行翻开方块的操作并且判断输赢,还未添加标记方块.游戏菜单.记录游 ...

  6. 扫雷c语言课程设计报告,扫雷游戏实验报告.docx

    扫雷游戏实验报告剖析 课程设计软件综合课程设计班 级:姓 名:学 号:指导教师:成 绩:电子与信息工程学院信息与通信工程系目录1.任务概述------------------------------- ...

  7. c语言编程题猜数字游戏6题,c语言编程—猜数字游戏.doc

    c语言编程-猜数字游戏 计算机实习报告 面向过程编程 用C语言求解实际问题 一.问题描述 游戏类第15个任务--猜数字游戏 计算机从0-9这10个数字中任意选择n个不重复数字(n≤10)组成一个5位数 ...

  8. c语言编写已知xyz,C语言编程基础——xyzGame小游戏合集

    这是一个由纯C语言标准库写的控制台小游戏合集.包含井字棋.贪吃蛇.俄罗斯方块三款简单的小游戏. 初学者非常适合借助这类简单的小游戏锻炼编程技能,同时感受编程的乐趣

  9. Java写一个简单的扫雷游戏

    〇.目录 一.前言 二.过程中遇到的困难 三.代码 四.成品图 五.代码存在的bug 六.完善建议 七.结语 一.前言 这个学期学习了Java,课程的最后一项作业就是做一个扫雷游戏和一个计算器,经历一 ...

最新文章

  1. HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
  2. foxmail邮件加载失败重试_java retry(重试) spring retry, guava retrying 详解
  3. 利用Reachability实现网络状态监听
  4. Linux centos7 shell特殊符号、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号...
  5. Webex 如何在在线会议领域保持优势?
  6. 设计企业网站大纲_企业网站设计布局
  7. libmysqld_dev linux,Linux下python玩转MySQLdb
  8. FullCalendar 三:FullCalendar应用——读取JSON数据
  9. vue window.location.href 返回页面不刷新_前端框架vue中的keep-alive总结实践
  10. dicom文件的后缀_dcm文件扩展名,dcm文件怎么打开?
  11. 按键弹起数字增加和按下增加
  12. Nginx在Linux下的安装部署
  13. python爬虫之urllib
  14. ubuntu16.04编译安装mysql源码
  15. java dwg转pdf_java实现CAD图纸文件DWG格式转为PDF格式
  16. 手机端网页设计尺寸,手机端网页设计图片尺寸
  17. 维生素C片剂市场现状及未来发展趋势
  18. VL53L0X调试总结
  19. 吃透 Vue 项目开发实践|16个方面深入前端工程化开发技巧【上】
  20. 实战Vue:基于Vue的移动端购物商城

热门文章

  1. monkeyrunner脚本的录制和回放
  2. 前端路由和后台路由有什么区别?
  3. java 中break如何跳出多层循环(包含二层循环)
  4. jsp页面中出现“String cannot be resolved to a type”
  5. 项目搭建Nacos及遇到问题解决
  6. Docker容器的简单操作及应用部署
  7. java获取panel面板画笔_java - paintComponent()与paint()和JPanel vs Canvas在画笔类型的GUI中 - 堆栈内存溢出...
  8. php 微信分享链接怎么弄,PHP实现 微信--分享朋友链接
  9. ubuntu 查找qt是否安装_Ubuntu Qt 安装教程--快速下载连接(网盘)
  10. java点赞功能实现_JavaWeb中点赞功能的实现及完整实例