问题标签 [minesweeper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
560 浏览

vb.net - 生成数字 VB.NET

所以我正在开发一个扫雷游戏,我已经分配了地雷,但我必须生成它们周围的数字。我已经开发了代码,但它似乎没有工作。重要的是要提到我正在使用 DataGridView。

这是我的代码现在的样子:

声明我的变量:

初始化地雷:

生成矿山周围的数字:

将正确的图像归因于 DataGridView tablw 上的矩阵编号:

不同的数字可能性:

我确实相信我的错误是在我生成数字的地方。最好的问候,乔奥。

0 投票
1 回答
1591 浏览

vb.net - 在 vb.net 中动态生成后访问每个按钮的属性?

我使用以下代码动态生成按钮。我想知道如何以这样的方式编码,如果我单击一个按钮,应该对同一表单中的其他按钮进行一些更改。由于所有按钮都是在循环中生成的,我不知道如何在代码的其他地方调用一个按钮。

0 投票
2 回答
1978 浏览

artificial-intelligence - 人工智能扫雷项目

我需要实现扫雷求解器。我已经开始实施基于规则的代理。我已经执行了一些规则。我有一个启发式函数,用于为正在处理的当前单元格(包含有关周围单元格的信息)选择最佳匹配规则。因此,对于每个选定的单元格,它可以决定 8 个周围的单元格打开它们、标记它们或什么都不做。我是说。目前,代理获取一些显示的单元格作为输入,并决定如何处理周围的单元格(目前,代理不知道如何决定要处理哪个单元格)。

我的问题是,要实施什么算法来决定要治疗哪个细胞?

假设,对于第一步,代理将显示一个角落单元(或其他一些,根据第一步的某些规则)。之后该怎么办?

我知道我需要实现某种搜索。我知道很多搜索算法(BFS、DFS、A-STAR 等),这不是问题,我只是不明白如何在这里使用这些搜索。

我需要在人工智能原则中实施它:一种现代方法。

0 投票
2 回答
1569 浏览

java - 右键单击 setIcon() 标记炸弹 - 扫雷

我对编程很陌生,正在尝试制作扫雷 GUI。游戏运行完美,右键单击 JToggleButton 在按钮上显示“B”代表炸弹,但是当我在 mouselistener 中将 setText() 替换为 setIcon() 时,它会在左右单击时显示图标。我在 setText() 时没有这个问题。

我在 actionlistener 中添加了一个 btn[y][x].setIcon(null),这会导致标志图标在左键单击时仅短暂出现,但我宁愿它根本不出现。

0 投票
1 回答
2172 浏览

java - 在扫雷游戏中找到空单元时递归stackOverflowError

编辑:解决了!我只是忘记在“else if”下包含一个“else”语句,它会返回一个空白

我正在使用 Java,并且正在制作扫雷游戏。

单击空单元格时,我试图打开所有相邻的空单元格。我已经在这个网站上查看了类似的问题,但看不出我哪里出错了。我得到一个stackOverflow。

任何帮助将不胜感激。

下面,'buttons' 数组是一个 2D 按钮数组,而 'cells' 数组是一个 2D 单元格对象数组(用于确定该单元格的状态)。显然每个单元格对应一个按钮。

0 投票
1 回答
287 浏览

java - 按下 Jbutton 后在 Jbutton 上设置文本

我是 Java (以及几乎所有语言)的大菜鸟。我正在尝试为一项任务制作扫雷游戏,但我仍处于测试阶段。但是,一旦按下按钮,我就无法将地雷显示为“0”。我使用二维数组创建了 Jbuttons,但我似乎无法将“0”放在我想要的特定按钮上。

这是我的代码(请原谅丑陋/可能的低效率)当谈到 GUI 时我真的一无所知。

0 投票
3 回答
1572 浏览

objective-c - Objective-C 中的可变数组。如何更改/操作数组元素?

我正在尝试构建一个包含 400 个整数的数组(在 20 x 20 矩阵的上下文中处理)。所有元素都初始化为 0,然后选择 40 个随机点具有整数 9(在扫雷上下文中指定为地雷)。由于某种原因,我的程序挂在了线上:

[map replaceObjectAtIndex: mine_placement withObject:[NSNumber numberWithInt:9]];

在此之后,我有一个例程来累积每个元素的地雷接近度,最后的位创建字符串对象以发送到控制台(日志)。我很想听 Objective-C 专业人士说我做错了什么,以及为什么输出不正确。它构建得很好,只是没有输出。我收到一些关于线程正在启​​动的消息。我是 Obj-C 的新手,所以对此事的任何想法都会很棒。

这是main里面的内容:

0 投票
2 回答
318 浏览

algorithm - 哪些元启发式算法适合构建扫雷求解器?

我必须建立一个扫雷求解器,但真的不知道从哪里开始。问题是,我必须使用一些元启发式算法,比如蚁群优化、模拟退火、遗传编程等。我在网上找到了一些相关的资料,但我不确定哪些有用,哪些没用,因为没有什么是“完美契合”的。看来我必须自己调整一些元启发式算法,而不是遵循以前做过的人写的一些文章。这就是为什么我想在开始之前了解所有我需要知道的事情。

  1. 如何制定我的问题以使其适合使用元启发式来解决它?我知道这基本上是一个 CSP(约束满足问题),但不知道如何利用这些知识找到合适的算法来解决它。
  2. 哪种元启发式方法适合解决我的问题(以及为什么)?
  3. 我应该注意哪些特定于我的问题的事情?
0 投票
2 回答
3635 浏览

python - 改进我的扫雷求解算法

我已经在 Python 中实现了一种用于解决游戏“扫雷”的算法。该程序的工作原理如下:

假设求解器单击了一个名为“a”的正方形。举例来说,让这样显示的数字等于 2。正方形的尚未点击的邻居(再次作为示例)命名为“b”和“c”。然后程序将正方形与表达式 [2, {'b', 'c'}] 相关联,并从所有其他表达式中删除 'a'。通过在两种情况下对这些表达式进行成对简化来推断哪些正方形是地雷,哪些不是地雷。

  • 如果一个表达式中的平方是另一个表达式的平方的子集:

    /li>
  • 如果一个表达式中的所有方格都被确定为地雷:

    /li>

然后,对于某个表达式X,如果X[0] == 0,我们可以自由点击所有在 中命名的方格X[1],如果X[0] == len(X[1]),那么我们可以标记它们。

然而,我正在努力确定要简化表达式对。我目前的做法是维护一堆方格;每当单击正方形或成功简化其表达式时,都会将其添加到堆栈中(如果尚未存在)。当从堆栈中弹出一个正方形时,会尝试在其表达式 ( X) 和任何其他表达式之间进行简化,Y例如X[1] & Y[1] != set(). 当堆栈耗尽时,算法终止。然而,目前,虽然这工作得很好,但它不能正确解决所有明确的配置,并且如果我用队列替换堆栈或使用某种算法来确定要弹出哪个方块,它在给定板上的性能会发生显着变化!

对于我的方法的任何先例或潜在探索途径,我将非常感激。

0 投票
1 回答
1200 浏览

c# - 改进我的扫雷算法 c#

我正在制作一款扫雷游戏,目前完全可以玩,你可以完成游戏。但是,我的求解算法很烂。它非常混乱,我正在寻找一种更清洁的方式,也许有循环,但我想不出任何东西。

这是我目前正在使用的:

我有四个全局列表:

这是利用列表来解决游戏的方法:

整个方法: http: //pastebin.com/7J2Fc8yw

最重要的部分:

基本上这是我需要帮助的部分。它有效,但它很混乱。我知道我应该使用循环等等,但我想不出一种方法来循环它以使其更干净。本质上,它所做的是在您按下的瓷砖周围找到所有 8 个相邻的瓷砖。有任何想法吗?谢谢 :)