daVaxi / takuzu
PHP类,用于逐步检查和解决Takuzu网格
1.0.8
2016-09-23 21:00 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- php: >=5.4.0
- codeclimate/php-test-reporter: dev-master
README
PHP类,用于逐步(带解释)检查和解决Takuzu网格。
游戏
Takuzu是一种基于逻辑的数字放置谜题。目标是填充一个(通常是10×10)的网格,其中1s和0s的数量相等,每一行和每一列中1s和0s的数量相等,且相邻的任何两个数字的数量不超过两个。此外,行和列不能有相同的模式。
来源:维基百科
解决方法
-
每一行和每一列都应该包含相同数量的0s和1s。如果在行或列中达到了所需的0s或1s数量,则剩余的单元格应包含另一个数字。(1xx101 - 100101)
-
相同的数字不能相邻超过两个。如果相邻的两个单元格包含相同的数字,则这些数字旁边的单元格应包含另一个数字。(xxx00x - xx1001)如果两个单元格包含相同的数字,中间有一个空单元格,则该空单元格应包含另一个数字,因为否则会出现三个相同的数字。(x1x1xx - x101xx)
-
每一行和每一列都是唯一的。(100101 1001xx - 100101 100110)
-
消除不可能的组合。例如,110xxx,第6个单元格应包含0,否则会出现三联组(110xx1 - 110001)
安装
本页包含有关安装PHP库的信息。
要求
- PHP版本5.4.0或更高版本
获取客户端库
获取客户端库文件有两种选择。
使用Composer
您可以通过将库作为依赖项添加到composer.json中来安装库。
"require": {
"davaxi/takuzu": "^1.0"
}
从GitHub克隆
库可在GitHub上找到。您可以使用git clone命令将其克隆到本地仓库中。
git clone https://github.com/davaxi/Takuzu.git
如何处理文件
获取文件后,请确保它们可用于您的代码。如果您使用Composer,这将自动为您处理。如果您不这样做,则需要将客户端库中的autoload.php
文件添加到项目中。
require '/path/to/takuzu/folder/autoload.php';
示例
<?php // ... $grid = new \Davaxi\Takuzu\Grid(); $grid->setGridFromString( "1..1...0..\n" . "..0.1....1\n" . "......0.01\n" . "..00......\n" . ".....1..0.\n" . ".....1.1..\n" . "..0.0...0.\n" . "1.....00.0\n" . "..1.0.0.0.\n" . "0.1.1...01" ); $resolver = new \Davaxi\Takuzu\Resolver($grid); $resolver->resolve(); $resolvedGrid = $resolver->getResolvedGrid();