【C语言】扫雷游戏(一)

我们先设计一个简单的9*9棋盘并有10个雷的扫雷游戏。

1,可以用数组存放,如果有雷就用1表示,没雷就用0表示。

2,排查(2,5)这个坐标时,我们访问周围的⼀圈8个位置黄色统计周围雷的个数是1。排查(8,6)这个坐标时,就会越界。只需要扩大一圈数组即可。

一,游戏菜单的打印

利用函数与do while的知识

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

void menu()

{

printf("***********************\n");

printf("***** 1. play *********\n");

printf("***** 0. exit **********\n");

printf("***********************\n");

}

int main()

{

int input = 0;

do

{

menu();

printf("请选择:>");

scanf("%d", &input);

switch (input)

{

case 1:

printf("开始\n");

break;

case 0:

printf("退出游戏\n");

break;

default:

printf("选择错误,重新选择\n");

break;

}

} while (input);

return 0;

}
在下一步可以将printf("开始\n");换为game(),整个扫雷游戏就是在这里运行的。game()就是我们写的函数,它的作用是把我们写的代码封装起来。

二,正片开始

1,棋盘

避免数据太多产生冲突,我们可以写两个数组存放信息。一个是雷的信息,一个是排查出的雷的信息。

a.雷的信息用char mine1111;来表示,1表示雷,0表示非雷。

b.排查出的雷的信息用char show1111;来表示,初始化为*。

void game()

{

char mine1111;

char show1111;

}

如果是其他行数的话,例如15或者20,改起来就比较麻烦了,这时候就需要优化一下代码。

在game.h文件中声明:

#define ROW 9

#define COL 9

#define ROWS ROW+2

#define COLS COL+2

然后修改原来代码:

void game()

{

char mineROWSCOLS;

char showROWSCOLS];

}

2,初始化棋盘

game.h

void InitBoard(char arrROWSCOLS, int rows,int cols,\char set);

game.c

void InitBoard(char arrROWSCOLS, int rows, int cols,char set)

{

int i = 0;

for (i = 0; i <= ROWS; i++)

{

int j = 0;

for (j = 0; j <= COLS; j++)

{

arrij = "set";

}

}

}

test.c

void game()

{

char mineROWSCOLS;

char showROWSCOLS;

Initboard(mine, ROWS,COLS, "0");

Initboard(show, ROWS,COLS, "*");

}

3,打印棋盘

game.h

void Displayboard(char arrROWSCOLS, int row, int col);

game.c

int i = 0;

for (i = 0; i <= ROW; i++)

{

printf("%d", i);

}

printf("\n");
void Displayboard(char arrROWSCOLS, int row, int col)

{

int i = 0;

for (i = 1; i <= row; i++)

{

int j = 0;

printf("%d", i);

for (j = 1; j <= col; j++)

{

printf("%c", arrij);

}

printf("\n");

}

test.c

Displayboard(show, ROW, COL);

Displayboard(mine, ROW, COL);

相关推荐
李燚1 小时前
Go 项目怎么组织:DDD 4 层 vs MVC vs 脚本式
开发语言·golang·mvc·ddd·agent框架·eino
2zcode1 小时前
免费开源项目文档:基于MATLAB图像处理的啤酒瓶口缺陷检测系统设计与实现
开发语言·图像处理·matlab
人工智能时代 准备好了吗2 小时前
AI回答内容进入率监测:引用识别、文本匹配与语义判断
开发语言·人工智能·python
LONGZETECH2 小时前
新能源汽车动力电池检测仿真教学系统:C/S 分层架构与数字化实训落地全解析
大数据·c语言·开发语言·人工智能·架构·系统架构·汽车
郝学胜-神的一滴2 小时前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
Metaphor6922 小时前
使用 Python 冻结 Excel 文件中的行、列和单元格
开发语言·python·excel
心中有国也有家3 小时前
AtomGit Flutter 鸿蒙客户端:情绪日记的时间线实现
学习·flutter·华为·harmonyos
言乐63 小时前
Python实现建造微服务商城后台
开发语言·python·算法·微服务·架构
cui_ruicheng3 小时前
Python从入门到实战(六):非序列容器
开发语言·python
西西学代码3 小时前
Flutter---底部导航栏(2)
开发语言·javascript·flutter