(手游坊评测)游戏设计需求基础功能——方格尺寸

(手游坊评测)游戏设计需求基础功能——方格尺寸

基本功能

实现Windows扫雷游戏的全部基本功能

扫雷尺寸为99,每个方格尺寸为3030

游戏初始化时,随机分布10个地雷

当左键点击雷区任意方格时,游戏开始

单击鼠标左键打开正方形。 如果是地雷,游戏就会失败。 如果不是地雷,则会显示其周围一圈的地雷数量(0-8)。

鼠标右键被标记为标志,此时左键单击没有效果。

再次右键单击标记为旗帜的方块,该标记将变成问号,代表一个问题。 这时候左键单击就有效了。

第一步默认不能踩地雷(如果是地雷则强制重新随机分布,直到不是地雷) windows

点击打开一个区域

当左键点击某个方格时,如果该方格不是地雷且其周围一圈的地雷数量为0,则其周围一圈的方格会自动打开,然后检查是否还有方格数字为0的,如果有,则继续在其周围开一圈正方形,直到不再有数字为0的正方形。(视觉效果相当于点击一个区域)数组

当鼠标左键和右键同时点击一个正方形时:

1)点击未打开的方块无效。

2)方格已经打开,获取方格的编号(1-8),然后检测周围的8个方格。

如果剩余未打开的方格==当前方格数,则会自动标记为标志。

剩余未开方格 > 当前方格数,无动作

如果剩余未打开的方格中标记的旗帜数量==当前方格的数量,则其他剩余未打开的方格将自动打开。 如果有地雷,游戏就会失败。

剩余未打开的方格中标记的旗帜数量! =当前方格的数量,无动作dom

其他功能

计时器:左键打开第一个格子时开始计时扫雷游戏设计,直至游戏结束(成功或失败)

地雷数量:每标记一个标志,地雷数量减1,允许地雷数量为负数。

游戏状态:游戏开始时正常表情扫雷游戏设计,游戏成功时笑脸,游戏失败时哭脸。 任何时候点击任何状态下的脸部都会重置游戏svg

游戏失败判断:如果左键打开一个方格,则为地雷,或者同时左键单击和右键自动打开一个未打开的方格,如果有地雷,则判断游戏有失败的。

游戏判定成功:所有地雷都使用flag正确标记,并且地雷数量显示为0(即没有多个flag)功能

主要功能模块实现思路

1)如何检测鼠标左右键同时按下

设置每个鼠标按钮(左键、右键、滚轮)的状态位并检测其按下和释放状态。

当按下鼠标左键且未释放时,并且检测到右键时,则认为两个按钮同时按下。

反之亦然.net

2)随机地雷分布

通过列表生成生成一个二维数组来表示矿井分布的行值和行值。

随机生成的二维数组可能有重复值3D道具,所以需要先将列表转为元组,然后使用set去重。

去重后数组可能小于10个,所以为了简化操作,初始生成12组值。 如果去重后数组小于10,则会重复生成,直到生成的去重数组大于10。

实际上只取前10组数据。

参考代码如下:设计

#生成10个以上不重复的二维数组。 如果数组长度小于10,则重新生成,直到数组长度大于10。

数量 = 0

而数字

random_number_0 = [[random.randint(0,8) for i in range(2)] for j in range(12)]

#将列表转换为元组,然后使用set复制数据

random_number = list(set([random_number_0 中的 t 的元组(t)]))

num = len(随机数)

3)点击打开区域

使用递归函数

首先获取周围方格的坐标,然后计算周围方格的地雷数量。 如果不为0,则显示对应的数字。 如果为0,则调用递归函数并继续计算。 直到没有数量为0代码的方格为止

4)同时按左右键的操作方式

点击未打开的方块无效

方块已经打开,获取方块的编号(1-8),然后检测其周围的8个方块。

如果剩余未打开的方格==当前方格数,则会自动标记为标志。

剩余未开方格 > 当前方格数,无动作

如果剩余未打开的方格中标记的旗帜数量==当前方格的数量,则其他剩余未打开的方格将自动打开。 如果有地雷,游戏就会失败。

剩余未打开的方格中标记的旗帜数量! = 当前方格的数量,无动作

5)第一步是Lei的情况

如果第一次点击的方格是地雷,则强制重新执行随机地雷分布游戏动态,并不断检查点击的方格是否还有地雷。 如果还有地雷,则重复执行,直到点击的方格内没有地雷为止。 直到打雷

文章来源:https://blog.csdn.net/weixin_39628070/article/details/112038464