问题标签 [sudoku]

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 回答
189 浏览

javascript - Javascript 输入检查

我需要你帮助使用一段 javascript 来启用输入和结果检查:

输入属性将与 HTML 文档上的类似。

我需要一个强大的脚本来检查在另一个数组上定义的 81 个数字,还需要一个处理程序来检查用户输入是否从上面的输入框中存储在该数组中的答案。

任何帮助总是受到赞赏。

干杯

0 投票
2 回答
541 浏览

java - 在数独中找零

我有一个课堂作业(已经过去了),我必须写一个数独求解器。我能够创建一种可以解决每个缺失数字的方法。但是我无法创建一种方法来查找我需要解决的单元格。我应该采用二维数组并填写缺失的数字(由 0 表示)。我把我的一些代码放在下面,但不是全部(即使任务已经通过,我尊重教授的意愿)。

我有 getZero 方法,它必须在网格中找到每个零(0 代表一个缺失的数字),这样我就可以解决它。我应该在 getZero 中做什么来找到我需要更换的单元格?

0 投票
2 回答
20083 浏览

java - 逻辑求解算法(用于 Java 中的数独)

我的逻辑求解算法有问题。它很好地解决了具有大量提示的谜题,它只是对少于 45 条线索的谜题有问题。

这是求解的算法。Immutable 是一个布尔值,用于确定该值是否可以更改。cell[row][col].possibleValues 是一个名为 SudokuCell 的类中的 LinkedList,它存储该网格元素的可能值。grid.sGrid 是拼图的主要 int[][] 数组。removeFromCells() 是一种从网格的行、列和象限中删除值的方法。该代码在下面提供。

第二个 for 循环仅用于检查单个解决方案。我决定避免递归,因为我真的无法理解它。这种方法目前似乎运行良好。

这是 removeFromCells() 的代码

我认为大部分代码都是不言自明的。第一个 for 循环从 (x, y) 的行和列中删除值,第二个循环从象限中删除值。

另一个问题点可能是构造可能值的位置。这是我的方法:

第一个 for 循环创建新的 SudokuCells 以避免可怕的空指针异常。

sGrid 中的任何空值都表示为 0,因此 for 循环会跳过这些值。

SudokuBoard 的构造函数调用了这个方法,所以我知道它被调用了。

我会发布整个文件,但是那里有很多不必要的方法。我发布了我认为导致我的问题的内容。

0 投票
3 回答
4563 浏览

java - 数独 - 根据行、列查找当前方块

在此处输入图像描述

根据上图中的上述坐标,我希望能够计算出所选单元格属于哪个“正方形”,以红色突出显示。

我正在解决一个数独难题,我可以访问每个正方形的宽度,以及单元格所在的行/列。

我在计算单元格所属的正方形的“数字”时遇到问题(它们从 1 开始,从左到右、从上到下增加),因此上面的正方形的数字是:

1|2
3|4

我怎么能去计算这个?任何建议,将不胜感激。一个特定于 Java 的方法,或者只是一个算法都可以:)

0 投票
1 回答
1155 浏览

java - 数独 - 根据行、列、维度(?)和框大小查找当前框(正方形或矩形)

免责声明:找到带有方框的主题,并且那里的算法仅适用于该特定问题。

我正在制作一个递归回溯数独求解器,但我无法分配与给定单元格相关的框。

假设我们有一个带有 2x2 单元大小的盒子的 4x4 板。拟合算法将是(来自相关主题):

但是,如果假设我们有一个 6x6 板和 2x3 单元大小的盒子,算法会是什么样子?我只是似乎无法弄清楚..

提前致谢 :-)

编辑:[部分解决]我蛮力强迫它,强制盒子的高度总是大于宽度。不过,我对此很感兴趣:)

0 投票
11 回答
55098 浏览

sudoku - 检查数独解决方案是否有效

你得到了一个数独谜题的解决方案。编写代码以检查它是否是有效的解决方案。

您的函数签名应该是:
boolean isValid(int starti, int startj, int endi, int endj)

不熟悉数独的规则:

  • 网格大小为 9x9,分为 3x3 的 9 个区域
  • 每行必须包含 1-9 的所有数字
  • 每列必须包含 1-9 的所有数字
  • 每个 3x3 方格必须包含 1-9 的所有数字

我没有被问到这个问题,但在几个 地方看到过。检查最后一条规则可能是有趣的部分

0 投票
2 回答
5292 浏览

prolog - Prolog 中的迷你数独求解器中途停止

我正在研究“七周内的七种语言”,我只是想从书中找到一个例子。它解决了一个迷你数独网格(4x4)。

作者使用的是 gprolog,但我使用的是 swi-prolog(无论出于何种原因,我都无法让 gprolog 在我的 VM 上工作,但 swi-prolog 第一次尝试工作)。

我在 VirtualBox 4.0.4 r70112 中运行 Ubuntu 10.04(希望这不太相关!)

这是我的序言文件中的代码:

我(故意)改变的唯一部分是:

  • use_module(library(clpfd)).在顶部添加
  • 更改fd_all_different(Head),all_different(Head),
  • 更改fd_domain(Puzzle, 1, 4),Puzzle ins 1..4,

这是来自 swipl 的调用

解决方案一直是正确的,直到它被切断,此时 prolog 似乎确定没有解决方案。但是还有:

我已经搜索了代码以查找错字或错位的列,但一直无法找到其来源。有任何想法吗?

0 投票
2 回答
1726 浏览

python - 解决不平等数独的策略?

我最近遇到的经典数独求解器的一个转折是(相当疯狂的)不等式数独,这是你的经典数独难题,其中增加了每个盒子添加不等式条件的转折。

现在,我已经设法在 Python 中创建了一个常规的数独求解器(使用蛮力方法),但我无法掌握我将使用什么方法来解决这个问题。我是不是想多了,还是这比普通的谜题复杂得多?

0 投票
5 回答
2200 浏览

java - 简单数独解法


注意:这个问题已经解决了,实际问题不在这个方法上,而是在另一个方法上,所以如果你在搜索数独的东西,最后进入这个页面,你绝对可以使用我下面的方法,它有效。


好吧,忘记所有用于解决数独的复杂算法。我正在用 Java 编写一个简单的求解器来解决简单的数独游戏。这种方法的思路很普遍,所以我想大家都已经知道了。我也很惊讶我无法完成它。

方法是遍历板上的每个单元格,并填写所有只有一种可能性的单元格。重复直到每个单元格都被填满。很简单,下面是我的代码,return int 可以做填充数:

我的代码的问题是它永远无法完成循环,因为在填充了所有有 1 种可能性的单元格后,剩余的单元格将有超过 1 种可能性,这是不可能完成循环的。

我知道我错过了一些我想不到的东西。

0 投票
1 回答
1057 浏览

java - 数独游戏构造函数

我无法使用已定义的游戏初始化无参数构造函数。null如果我使用 getter 方法返回游戏,它会以某种方式继续返回。谁能告诉我初始化游戏的最佳方法是什么?

目前我正在从另一个具有静态方法的类中调用一个方法,但它似乎不起作用,因为null如果我得到游戏它会给出一个值。

这就是我这个游戏的样子:


这是来自不同类即时调用的方法: