我正在尝试制作一个算法来动态检查是否解决了常规数独网格。我有一个硬编码的解决方案,通过使用盒子内所需值的坐标来获取每个子盒子的值。然而,我似乎无法弄清楚如何编写一个函数,只需查看数独矩阵的大小和我想要的盒子,它就会输出该盒子部分内的值。
我的代码:
const sudoku = [
[1, 2, 3, 4],
[3, 4, 1, 2],
[2, 3, 4, 1],
[4, 1, 2, 3]
]
class SudokuChecker {
getCheckList (length) {
const nums = {}
for (let i=1; i<=length; i++) nums[i] = 0
return nums
}
isCorrect (list) {
const checkList = this.getCheckList(list.length)
list.forEach(num => checkList[num]++)
return Object.values(checkList).every(x => x == 1)
}
getRow (matrix, row) {
return matrix[row]
}
getColumn (matrix, col) {
return matrix.map(row => row[col])
}
getBox (matrix, box) {
const procNum = Math.sqrt(matrix.length)
// given some box ID number (starting at 0), all I need :
// a) index of that box's top row
const topRow = 'find_me' // calculated with "box" and procNum somehow...
// b) the index of that box's first num at that row.
const sliceFrom = 'find_me' // no idea at the moment how to calculate...
let boxNums = []
for (let i=0; i<procNum; i++) {
boxNums = boxNums.concat(matrix[topRow + i].slice(sliceFrom, sliceFrom + procNum))
}
return boxNums
}
checkLists (matrix, type, unit=0) {
const pass = this.isCorrect(this['get'+type](matrix, unit))
if (!pass) return false
if (unit == matrix.length-1) return pass
return this.checkLists(matrix, type, ++unit)
}
checkAll (matrix) {
const types = ['Row', 'Column', 'Box']
return types.map(t => this.checkLists(matrix, t)).every(x => x === true)
}
}
我在朋友的帮助下得到的答案:
getBox (matrix, box) {
const procNum = Math.sqrt(matrix.length)
const topRow = Math.floor(box/procNum) * procNum
const sliceFrom = (box % procNum) * procNum
let boxNums = []
for (let i=0; i<procNum; i++) {
boxNums = boxNums.concat(matrix[topRow + i].slice(sliceFrom, sliceFrom + procNum))
}
return boxNums
}
问题内容: 使用HTML,将创建一个复选框,如下所示: 使用javascript,我们可以选中以下复选框: 现在,我正在尝试使用jquery-mobile创建相同的页面。该复选框如下所示: 为什么这里没有呢?是这个名字吗?我应该删除属性名称并使用名称创建一个吗? 如何在此处使用Javascript / jQuery选中此复选框? 我尝试了上面的代码,但似乎不适用于此复选框。 问题答案: 您需要使用
我有一个动态的形式,下面是结构 > 类添加到父类 将is_required下的所有复选框换行如下 我可以在is_required上循环,然后找到checkboxes_required,如下所示,但不知道如何传递这个as as选择器以进一步循环复选框 下面的代码在复选框上循环到,但我不确定如何将选择器传递给
问题内容: 我正在使用Selenium,需要获取控件的ID,但是ID是动态的,我无法获取。 数字1122是动态的,并且其他按钮的开头相同。 问题答案: 我已经多次回答类似的问题,您可能想看看。 ExtJS页面很难测试,尤其是在查找元素时。 以下是一些我认为有用的提示: 永远不要使用动态生成的ID。喜欢 永远不要使用绝对/无意义的XPath,例如 利用有意义的自动生成的部分ID和类名。(因此,在我的
问题内容: 我正在使用spark-sql 2.4.1和Java 8。 如何从给定年份的country_df中动态填充(data_df的)select子句? 即从第一个数据帧,我将获得column的值,这些是我需要从第二个datafame中选择的列。如何才能做到这一点 ? 试过这个 错误: 那么,这里有什么问题,以及如何解决? 问题答案: 您可以尝试以下代码。 从第一个数据集中选择列名称。 在第二个
为什么不能以这种方式获得分配的缓冲区长度。 释放同一数组时 运行时必须知道要解除分配多少。在删除数组之前,是否有任何访问长度的方法。如果没有,为什么没有提供获取长度的API?
我正在寻找一种使用testng和selenium动态获取列值的方法。我有2个表用于显示帐户详细信息,例如帐户id、帐户名称、余额、可用余额。表1是 我想要一个方法,它将接受帐户id作为参数(例如:id2),