扫雷游戏(实现了网页版的扫雷游戏的所有逻辑)

本文详细介绍了一个9x9到11x11扫雷游戏的实现,涉及初始化棋盘、设置雷、计算雷数及周围雷数、简易版和进阶版排雷逻辑,包括标记功能和游戏开始时的炸雷特性。

扫雷游戏的逻辑

今天我们要实现的是扫雷游戏,实现9X9的棋盘,
在这里插入图片描述
但是值得注意的一点是,当排雷坐标在1 1 的时候该如何知道这个坐标旁边有几个雷呢?(当选择这个坐标时,看其周围8给坐标是否有雷——>(排雷))在这里插入图片描述
为了使在边缘的坐标也可以检测周围8个坐标是否有雷的时候,所以我们的棋盘需要是11X11
在这里插入图片描述

game.h

这里放的是我们的头文件

#include<stdio.h>
#include<time.h>
#include<stdlib.h>


#define ROW 9
#define COL 9

#define ROWS ROW+2
#define COLS COL+2
//这里定义的是我的10个雷
#define Easy_count 10
//初始化棋盘
void Initboard(char board[ROWS][COLS], int row, int col,char set);
//打印棋盘
void Displayboard(char board[ROWS][COLS], int row, int col);
//设置雷
void Setmine(char board[ROWS][COLS], int row, int col);
//排雷
void Changemine(char mine[ROWS][COLS],char show[ROWS][COLS], int row, int col);

test.c

游戏菜单

void meum()
{
   
   
	printf("***************************\n");
	printf("*******    1.Play   *******\n");
	printf("*******    0.Exit   *******\n");
	printf("***************************\n");
}

游戏逻辑

void game()
{
   
   
	//mine是放雷的棋盘
	char mine[ROWS][COLS] = {
   
    0 };
	//show是展示给我们看的棋盘
	char show[ROWS][COLS] = {
   
    0 };
	//初始化扫雷棋盘
	Initboard(mine, ROWS, COLS,'0');//放炸弹的棋盘
	Initboard(show, ROWS, COLS,'*');//展示的棋盘

	//打印棋盘
	
	Displayboard(show, ROW, COL);

	//埋雷
	Setmine(mine, ROW, COL);
	Displayboard(mine, ROW, COL);

	//排雷
	Changemine(mine,show, ROW, COL);
	
}

主函数

int main()
{
   
   
	int input = 0;
	//生成随机数,等会在Setmine()随机放雷
	srand((unsigned int)time(NULL));
	do
	{
   
   
		meum();
		printf("请选择数字:>");
		scanf("%d", &input);
		switch (input)
		{
   
   
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,请重新选择\n");
			
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值