【问题标题】:algorithm to calculate the difficulty of randomly generated minesweeper map with fixed number of mines计算固定数量地雷随机生成的扫雷地图难度的算法
【发布时间】:2021-01-19 09:12:53
【问题描述】:

我正在 Minecraft 中制作扫雷游戏(没关系)。
我创建了一个随机放置地雷的代码,显示每个方块周围的炸弹数量,检测游戏的通关和失败。

即使在相同大小的地图上放置相同数量的地雷,每个游戏的难度也大不相同,所以我觉得快速通关需要很大的运气。

所以我正在寻找一种算法来以数字方式生成随机生成地图的整体难度。

我尝试了一种通过对每个图块(块)的每个数字(颜色)进行评分和求和来计算难度级别的方法。 但是,我们无法找到能够获得合理难度分数的每个图块的分数。

既然是 Minecraft 中的命令操作,我不想要太复杂的表达式或完美的结果。 如果有一种算法可以通过获取随机生成的地图的难度可以分为大约3~5个级别,如果你能给我解释一下,我将不胜感激

(红石块是我的,每种颜色代表数字1 2 3)

【问题讨论】:

  • 难度数衡量的是什么? (不要说“困难”。)在开始考虑算法之前,您需要准确定义要回答的问题。
  • 抱歉,我说的“难度数字”是一个与人们通关游戏所需时间成正比的数字。
  • 这不是计算机能够准确回答的问题。
  • 所以解决办法就是作弊^^。
  • 所以我说我不需要完美的结果,我只需要比我的方法更准确一点。抱歉我不清楚的问题

标签: algorithm minecraft calculation minesweeper


【解决方案1】:

一些想法

首先,实际游戏中的扫雷难度是通过增加棋盘大小和地雷数量来处理的。由于在屏幕上重播扫雷游戏更容易重新启动并且更快,因此这被认为是足够的。 (它是否是一个好的设计是一个不同的问题。)但是,您想要处理一组棋盘和地雷的难度,以实现您的迷你游戏。

由于您想要一些相当简单的东西,我会推荐以下方法之一:

作弊一点:
Minecraft 编程并不是处理此类分析的好地方。由于您已经有一个随机生成器,请使用它来加载几十个预先准备和预先分析的板中的一个。玩家不会注意到任何事情,除非他专心致志地花几天时间玩你的小游戏——只是你的游戏看起来很公平而且很好玩。轻松解决您的难题。

经常作弊:
实施公平扫雷:在玩家无法确定下一步的情况下,始终放置非地雷,如果有地雷,则将其放在不会改变已经显露的布局。这从实际游戏中删除了玩家必须猜测哪些地方可能被认为是不公平的。当您无法控制局势时,有 30% 的机会在接近尾声时毁掉一场比赛的感觉并不有趣。
这将更难以实施。从好的方面来说,它不需要预加载和预计算。

至于实际答案,已经对扫雷进行了广泛的研究 - 例如这个thesis。我发现那里提到董事会一代的部分是这样的:

  1. 生成板。
  2. 运行算法以找到“无法解决”的部分(玩家必须猜测)
  3. 运行不同的算法,尝试将此部分转换为可解部分。

这很可能不是您正在寻找的简单解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    相关资源
    最近更新 更多