c语言扫雷游戏计时功能_C语言实现扫雷游戏(可以自动展开)

前言

本篇博客主要介绍如何使用C语言实现扫雷游戏。

一、游戏规则

在一张ROW行COL列的地图上存在MINE_COUNT个地雷。玩家输入坐标翻开格子,若没有踩雷,则计算此格子周围8个格子的地雷总数,并将此格子的星号用数字代替。若数字为0,则继续递归计算与此格子相邻的4个格子周围的地雷情况(即自动展开)。若踩雷,则游戏结束。当地图上的数字与星号之和等于格子总数时,判定为玩家胜利。宏定义如下:

#define ROW 9

#define COL 9

#define MINE_COUNT 10

二、游戏流程

1.初始化地图

为了简化逻辑,初始化两张地图,一张是展示给玩家的地图,一张是地雷的分布地图。初始化两个字符型数组,第一个数组中的元素全部赋为“*”,第二个数组中的元素全部赋为“0”。给定一个随机数种子进行“布雷”,使用循环语句将MINE_COUNT个雷随机放在第二个数组中,用“1”表示。若某个位置已经有雷了,则跳过,产生下一个随机位置。代码如下:

void init(char gameMap[ROW][COL], char mineMap[ROW][COL]){

srand((unsigned int)time(0));

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

for (int j = 0; j < COL; j++){

gameMap[i][j] = '*';

}

}

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

for (int j = 0; j < COL; j++){

mineMap[i][j] = '0';

}

}

int n = 0;

while (n < MINE_COUNT){

int row = rand() % ROW;

int col = rand() % COL;

if (mineMap[row][col] != '1'){

mineMap[row][col] = '1';

n++;

}

else{

continue;

}

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值