| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言实现扫雷(6步) -> 正文阅读 |
|
[C++知识库]C语言实现扫雷(6步) |
上一期我们实现了三子棋游戏,这一期我们讲解扫雷,我们先看一下效果:(个人觉得比三子棋难一点点,因为它设计到2个二维数组,和边界设置,以及界面的打印比较复杂,但是它的代码没有三子棋多) 1代表的是雷,0代表不是雷。 1.首先我们分装版块:test.c,game.c,game.h: test.c:游戏的基本逻辑。 game.c:游戏代码的具体实现。 game.h:头文件来声明函数 ?2.实现游戏的界面,这里运用到dowhile循环,switch语句,巧妙利用0为假来退出游戏;
2.下面我们来实现游戏的具体实现,首先明白原理,我们会因为用1和0来判断是否是雷,而在周围8个雷只有1个雷时,我们不知道1代表的是雷,还是周围8个有1个雷。于是这里要创建2个二维数组来存储扫雷的信息。同时我们为了使两个数组有兼容性,我们都定义成char。一个用来存储雷,一个用来展示给用户。但是当我们遇到最边的时候,我们周围没有8个,所以我们打印9x9的代码,就要创建11x11的格子,只给用户展示9x9的格子。我们这里后期由于多处要用到行和列,头文件定义(#define)ROW=9,COL=9,ROWS=11,COLS=11?。 开始初始化? ?mine数组为0,show数组定义为*:头文件要引用#include"game.h":,这里3个版块都要控制,我演示一遍,后面我就展示game.c里面的内容就可以了,其他同理。 test.c放: game.h放: ?game.c: ?初始化棋盘的代码:
?3.打印棋盘(这里要花点功夫,因为要有便于确认的坐标) (1)打印0-9 (2)换行 ? (3)打印行号+board[i][j];(注意这里i,j要从1开始,保证边界有效性) ? (4)换行 效果就出来了。 game.c里面的代码如下:
4.布置雷(布置雷一定会用到随机数,所以我们在头文件里面放好#include<time.h>,#include<stdlib.h>,在test()函数里面放好:?srand((unsigned int)time(NULL)); mine[x][y]的值中的x,y必须要从1-9,所以这里很巧妙的利用rand函数控制了1-9代码如下:比较简单:
5.排雷 (1)判断输入坐标是否正常 (2)判断是否中雷 ? (3)中雷就展示雷的位置 (4)没中雷就开始计算周围的个数: 这里巧用数字+'0'的ASCLL码值就等于'数字'的ASCll码值。同理,'数字'-'0'等于数字。我们用一个函数get_mine_count来计算周围雷的个数。同时定义一个win变量,没中雷就win++,然后win==row*col-EASY_COUNT就可以退出while循环,扫雷成功,并展示雷的位置。代码如下:
6.get_mine_count的实现 上面已经说了就是'数字'-'0'等于数字 直接return就可以了,代码如下
好了就搞定了。 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:40:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |