abcaeffchen / sudoku-php
生成不同大小和难度的随机数独并检查解决方案。
1.1.0
2023-04-05 12:04 UTC
Requires
- php: >=7.4.0
Requires (Dev)
- phpunit/phpunit: ^9 || ^8 || ^7
This package is auto-updated.
Last update: 2024-09-05 15:15:45 UTC
README
概述
生成不同大小和难度的随机数独并检查解决方案。功能
- 选择以下大小:4,9,16,25,36。
- 从五个难度级别中选择。
- 数独可以通过整数种子重复生成。
- 检查输入是否为任何数独的解决方案或特定任务的解决方案。
- 解决数独。
- 支持PHP 7.4至8.2(可能也支持PHP < 7.4,但这些版本不再受支持)
- 仅后端,因此您可以按自己的喜好构建前端。
安装
您可以使用composer安装此包:
{ "require": { "abcaeffchen/sudoku-php": "~1.1.0" } }
或者直接下载 Sudoku.php
文件并将其包含到您的项目中。请确保使用命名空间 AbcAeffchen\sudoku
。
如何使用
生成任务
use AbcAeffchen\sudoku\Sudoku;
$task = Sudoku::generate(9, Sudoku::NORMAL);
生成标准9x9难度正常的数独。您可以使用难度级别 VERY_EASY
、EASY
、NORMAL
、MEDIUM
、HARD
。
$task
包含一个二维整数数组,其中空白设置为 null
。您可以使用
list($task,$solution) = Sudoku::generateWithSolution(9, Sudoku::NORMAL)
生成任务和可能的解决方案。也许可以提供提示?
通过提供种子可以重复生成数独。
$seed = 0;
$task = Sudoku::generate(9, Sudoku::NORMAL, $seed);
这样,您就可以存储一个种子并在任何时间重复任务。
种子可以是任何正整数。
检查解决方案
您可以使用以下方法检查解决方案:
if(Sudoku::checkSolution($solution))
{
echo 'Nice done!';
}
else
{
echo 'Try again!';
}
如果您还想要检查解决方案是否与任务相关,您可以像这样提供任务:
if(Sudoku::checkSolution($solution,$task))
...
解决数独
此函数用于生成数独,但您也可以使用它来解决您手动生成(或从其他地方获取)的数独。
$solution = Sudoku::solve($task);
您只需确保,$task
是一个二维整数数组,只包含从1到大小的数字,所有空白都包含 null
。
许可
在LGPL v3.0许可证下授权。