vsy*_*ync 18 javascript algorithm sudoku
我正在用Javascript编写一个有趣的数独游戏.
一切都很好,每次都用一个解决方案完全生成电路板.
我唯一的问题是,这就是让我从公开发布我的项目的原因
是我不知道如何评估我的电路板的难度等级.我在任何地方都看过,
发布在论坛上等等.我不想自己编写算法,这不是这个项目的重点,
除此之外,它们对我来说太复杂了,因为我不是数学家.
我唯一接近的是这个网站,它通过JS进行评分,
但问题是,代码是用一种糟糕的无证,非常特别的方式编写的,
因此无法借用......
我会谈到这一点 -
任何人都可以请我指向一个提供Sudoku评级/评级源代码的地方吗?
谢谢
更新22.6.11:
这是我的数独游戏,我已经实现了自己的评分系统,它依赖
于基本的人工逻辑解决技术,所以请查看它.
我自己已经考虑过这个问题,我能做的最好的事情就是通过实际解决它并分析游戏树来决定解决难题的难度.
最初:使用"人类规则"实现解算器,而不是人类玩家不太可能使用的算法.(这本身就是一个有趣的问题.)根据人类使用的难度,对解算器中的每个逻辑规则进行评分.使用数百或更大的值,这样您就可以自由地相对于彼此调整分数.
解决难题.在每个位置:
拼图的总体难度是通过游戏树的路径中的位置分数的总和.
编辑:替代位置得分:不是使用更难的规则完全排除扣除,而是计算每个规则(或复合应用程序)的总体难度并选择最小值.(这里的逻辑是,如果规则A得分为50,规则B得分为400,规则A可以应用于一个单元格但规则B可以应用于十,则位置得分为40,因为玩家更有可能发现十个比一个更容易的比赛更难的比赛之一.但这需要你计算所有可能性.)
编辑:Briguy37建议的替代方案:包括位置分数中的所有扣除.得分每个位置作为1 / (1/d1 + 1/d2 + ...)其中d1,d2等是个别的扣除.(这基本上计算"抗作任何扣减"在某一个人"演绎电阻"的位置d1,d2等等.但这需要你来计算所有的可能性.)
希望这种评分策略能够为谜题制定一个指标,随着您对难度的主观评价的增加而增加.如果没有,那么调整规则的分数(或从上述选项中选择启发式)可以实现所需的相关性.一旦你在得分和主观经验之间取得了一致的相关性,你就应该能够判断"简单","难"等数字阈值应该是多少.然后你就完成了!