问题标签 [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.
java - 扫雷行动事件
有没有办法使某些事件动作特定于鼠标左键和右键?
我正在创建一个扫雷 gui,所以当一个正方形被左键单击时,它会被揭开,而当它被右键单击时,它会被标记。
我不确定如何在语法上检查这个并且在 tut 上找不到它。
谢谢您的帮助!
algorithm - 扫雷算法
我即将用 Java 设计自己的扫雷器。而在分析真正的windows 7扫雷时,我遇到了这种情况。
未被覆盖的方块(箭头所指),可能是 1 也可能没有任何数字(一个空方块)。但在 windows 7 扫雷中,这个正方形有 1。
假设:通过分析,我知道所有的地雷总是被数字包围。
如果我接受我的假设,那么没有其他方法,未覆盖的正方形应该是 1。
如果我遵循这个假设,设计扫雷的逻辑会更容易。自从,
第 1 步:随机分配带有地雷的正方形。(使 2D 数组中的特定 (i,j) 元素为 -1)。
第二步:给每个方格编号,等于它周围的地雷数量。(在这种情况下,假设成立)。
我的问题是,
- 如果未覆盖的正方形是空正方形怎么办?
- 这个假设是扫雷游戏的规则吗?
- 我是否必须遵循假设,以使我的编码更易于实现?
- *如果我提出了一个新的扫雷器,它的规则与假设相反,我的新扫雷器最终会不稳定吗?是这样吗?如何?
*->我不是故意违反规则,我尝试删除用户多余的提示/键。
c++ - 程序在每次运行时生成相同的随机数?
我刚刚完成了一个扫雷类型游戏的编码,一切都很好,除了每次我运行应用程序时,它都会生成相同的数字(我运行了 3 次不同的时间,将输出保存到 3 个文本文件并diff
在 Linux 中使用了命令,它没有发现任何差异)。它是播种的,time(NULL)
所以它应该每次都改变,对吧?
这是我的代码:
主文件
java - 扫雷Java
我正在用 Java 开发一个扫雷程序。我的炸弹分布在整个现场,我的动作监听器响应点击,鼠标监听器响应右键单击。我还让每个被点击的方格检查有多少炸弹与其相邻,并像在游戏中一样在方格上打印数字。
我不明白的唯一部分是扫雷如何在单击正方形时打开字段,无论它是数字还是空白正方形。请帮助我了解这是如何工作的。
jquery - Javascript递归不起作用
我正在制作一个 jquery 扫雷器,目前正在研究当您单击具有0
相邻地雷的块时的显示功能。预期的结果是遍历所有 8 个相邻块以显示这些块,如果它们也是 ' 0
' 块,它会针对该块重复:
目前,该函数在每次函数迭代时检查第一个块后停止。似乎呼叫正在中断for loops
.
vb.net - 扫雷 VB.NET 问题
所以基本上,我有 2 个 int 变量,x 和 yi 用于创建图片框网格。
这一切都是流动的,并且建立在运行时。
如果我的 = 2,我正在尝试专门更改单击时的图片框。
我不能专门更改一个,当我单击任何一个时,它都会更改所有这些。
请帮忙!!
这是我的代码:
vb.net - 我如何定位在运行时创建的图片框之一?VB.NET
所以基本上,我已经成功地将网格中的某些图片框随机化以包含地雷,并显示该地雷,并且出于测试目的,这些地雷当前正在显示。你认为我需要做什么才能说:
如果您单击此框并且 mine = 1(有地雷),那么您就输了。
否则,继续。
很简单,但我想把它应用到所有盒子上,不管网格有多大。(X 区 * Y 区)
我得到的最远的是当单击其中任何一个时将弹出一个 MsgBox() 。
这都是在运行时创建的。这是我的代码。
algorithm - 生成不需要猜测的扫雷板
我正在设计一个类似扫雷的游戏(修改了规则),我想防止玩家猜测。我的目标是:生成的棋盘只有很少的显示方格,玩家无需猜测即可解决整个谜题。
维基百科提到:
Minesweeper 的一些实现将通过从不在显示的第一个方格上放置地雷来设置棋盘,或者通过安排棋盘以使解决方案不需要猜测。
但是,我无法弄清楚算法。
此外,在另一个 StackOverflow 问题中:扫雷求解算法
改进:在生成器旁边运行求解器,确保拼图有唯一的解决方案。这需要一些聪明才智,并且在大多数变体中都没有完成。
我怀疑这是否真的有效。众所周知,解决扫雷是NP完全的。
总之,我的问题是:
- 如何生成不需要任何猜测的扫雷板?
- 如果可以,具体算法是什么?
- 我们能否在多项式时间内确定性地解决这个问题?这个问题是NP完全的吗?如何证明?
vb.net - vb.net:扫雷点击事件
我已经开始使用动态创建的按钮网格在 vb.net 中制作扫雷游戏,这些按钮存储在二维数组中。我有另一个二维数组 ( Boolean
),它跟踪某个位置是被覆盖还是未被覆盖。而且我有一个“更新网格”方法,可以随时运行,以更新网格,以便所有应该发现的都在屏幕上显示。
我将如何做到这一点,以便在单击任何按钮时将该按钮的状态设置为未覆盖?我尝试使用事件处理程序,但我无法传递任何参数,而且我需要知道按钮的 x 和 y 位置,以便找到正确的按钮。
谢谢。