【C语言】扫雷
整体来说比较简单
适合初学C语言的小白
需要你掌握以下知识:
掌握——分支switch、循环for、while语句
掌握——函数(传参,声明,创建)
掌握——数组(创建,传参)
阅读文章须知
此代码在VS2019软件中编写 (Visual Studio 2019)
文章顺序
1.先说整体思路
2.写出部分代码
3.解析上述代码
布局
1.打印菜单
2.接收变量
3.打印雷区
4.接收坐标
5.判断雷区周围包括坐标本身在内的 9个坐标内有几个雷
6. *为显示可排查区域
7. 1为雷
8.踩到雷结束游戏
9.全部排查则游戏胜利
************************
******* 1.play *******
******* 0.exly *******
************************
请选择输入开始游戏:> 1
共有30个雷
0 1 2 3 4 5 6 7 8 9
1 * * * * * * * * *
2 * * * * * * * * *
3 * * * * * * * * *
4 * * * * * * * * *
5 * * * * * * * * *
6 * * * * * * * * *
7 * * * * * * * * *
8 * * * * * * * * *
9 * * * * * * * * *
//作弊 看到雷的布局
0 1 2 3 4 5 6 7 8 9
1 0 0 1 1 1 0 0 1 0
2 1 0 0 1 1 0 0 0 1
3 0 0 0 1 1 0 0 1 0
4 1 1 0 1 1 0 0 0 0
5 0 0 1 1 0 1 1 1 1
6 0 0 0 1 0 0 0 0 0
7 1 1 0 1 0 0 1 0 0
8 0 0 0 0 0 0 0 0 0
9 0 0 1 1 1 0 0 0 1
请输入坐标:5 5
0 1 2 3 4 5 6 7 8 9
1 * * * * * * * * *
2 * * * * * * * * *
3 * * * * * * * * *
4 * * * * * * * * *
5 * * * * 5 * * * * 显示周围雷的数量
6 * * * * * * * * *
7 * * * * * * * * *
8 * * * * * * * * *
9 * * * * * * * * *
游戏分为——两部分
- 开始游戏
- 结束游戏
开始游戏分为——四部分
- 创建雷区
- 初始化并打印
- 生成雷
- 排查雷
简单看一下整体布局 不至于从一开始就劝退初学者
全文共217行代码 整体代码在文章最后
下面跟随我的思路一起完成扫雷游戏吧!
首先创建三个文件
.c 文件是C语言文件
.h 文件是头文件
- test.c :写主程序的.c文件
- game.c : 写游戏主要代码的.c文件
- game.h :引用 头文件 和 声明的.h头文件
在test.c文件中
创建main函数主体
主要思路是:
如在手机中观看 可左右滑动查看查处部分代码
void emnu()
{
printf("************************\n");
printf("******* 1.play *******\n");
printf("******* 0.exly *******\n");
printf("************************\n");
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL)); //后面创建随机数的函数
do {
//打印菜单
emnu();
printf("请选择输入开始游戏:> ");
scanf("%d", &input);
switch (input)
{
case 1:
game();
//printf("游戏开始\n");
break;
case 0:
printf("游戏结束\n");
break;
default:
printf("输入错误,请重新选择!\n");
break;
}
} while (input);
return 0;
}
srand((unsigned int)time(NULL)); 对于这句话后面会讲到
1.打印菜单调用 emnu()函数
void emnu()
{
printf("************************\n");
printf("******* 1.play *******\n");
printf("******* 0.exly *******\n");
printf("************************\n");
}
2.接收字符
我们在循环外部定义
int input = 0; 接收指令的变量
scanf("%d",&input); 接收键盘输入的函数
注意:
%d后面不要加空格
& 符号不要忘记写
3.判断接收字符的状态
switch(整形表达式)
{
case 整形常量表达式:
break; //跳出switch 去下面的while中判断是否继续循环
case 0:
break;
default://相当于if语句中的else的作用
//当上面的语句都不满足时 执行此语句
break;
}while(input); //input为0时结束游戏
输入1 继续游戏
输入0 结束游戏
输入错误 给出提示并从新输入
-
当你想验证一下现在写的代码时
- 可以在game.h中引入头文件
- 并且在test.c中引入game.h头文件
- 这样所有头文件都放在game.h中就可以了
game.h
#pragma once #include <stdio.h>
在头文件中 第一行 写入#pragma once 在其他文件中不管包含几次<stdio.h>都只拷贝一次 是为了防止头文件重复 做无用功
test.c
#include "game.h"
经过上面的代码 可以在case 1: 中调用函数game()
ganme()分为——五部分
- 1.创建雷区
- 2.初始化
- 3.打印初始化
- 4.生成雷
- 5.排查雷