daniel-ac-martin / word-ladder
一个用于解决单词梯子谜题的命令行程序和库。
Requires
Requires (Dev)
- squizlabs/php_codesniffer: 2.3.x
This package is not auto-updated.
Last update: 2024-09-14 18:20:21 UTC
README
word-ladder是一个用于解决单词梯子谜题的命令行程序和PHP库。
单词梯子是一种由刘易斯·卡罗尔发明的文字游戏。玩家被给出两个单词,必须找到一条从一端到另一端的“梯子”,梯子上相邻的梯阶之间只有一个字母不同。例如:
Ladder from GIT to HUB:
GIT -> GUT -> HUT -> HUB
单词梯子问题可能有多个正确答案。因此,word-ladder将声明它找到的第一个解决方案,然后分析所有解决方案(与第一个解决方案相同长度)并声明最佳解决方案。(这里的“最佳”是指最不常见的单词比其他所有解决方案中最不常见的单词更常见。即,梯子的强度仅取决于最弱的一环/梯阶。)
单词梯子游戏有一些变体,其中必须在指定的步数内解决问题。在某些情况下,可能可以在更少的步骤内解决问题。与其他大多数求解器不同,word-ladder接受一个选项,尝试在指定的步数内解决问题。(如果没有提供此选项,它将尝试尽可能少地解决问题。)
程序 - 入门
下载Phar。将其放在您系统的任何位置。通过PHP在命令行中执行它。(或者如果您在/usr/bin/php有有效的、现代的PHP二进制文件,您可以直接执行它。)
程序 - 使用方法
Usage: word-ladder.phar START FINISH [STEPS]
命令行程序接受三个参数,START、FINISH和STEPS,其中只有第三个STEPS是可选的。
START:梯子中的第一个单词。
FINISH:梯子中的最后一个单词。
STEPS:梯子上的步数/梯阶数。
示例
$ php word-ladder.phar git hub
Attempting: git -> hub
First solution set (3 steps) found after 2 lookups:
0: git [a person who is deemed to be despicable or contemptible; "only a ro...]
1: gib [a castrated tomcat]
2: gub []
3: hub [the central part of a car wheel (or fan or propeller etc) through w...]
[Prevalence score: 112.26878713664]
Finding and analysing all solutions... Done.
10 solution(s) found.
0: git [a person who is deemed to be despicable or contemptible; "only a ro...]
1: gut [a strong cord made from the intestines of sheep and used in surgery]
2: hut [small crude shelter used as a dwelling]
3: hub [the central part of a car wheel (or fan or propeller etc) through w...]
[Prevalence score: 16551.249116398]
库 - 入门
- 获取Composer
- 通过
php composer.phar require daniel-ac-martin/word-ladder
要求word-ladder - 使用
php composer.phar install
安装依赖关系
库 - 使用方法
通过包含Composer的自动加载器并调用方法WordLadder\WordLadder::solve来调用库。请参阅以下示例。
<?php require_once 'vendor/autoload.php'; // Composer's autoloader $start = 'git'; $finish = 'hub'; $steps = 4; try { $solution = WordLadder\WordLadder::solve($start, $finish, $steps); foreach($solution->solution() as $e) { echo $e->word() . ': ' . substr($e->definition(), 0, 78 - strlen($start)) . "\n"; } } catch(Exception $e) { die('Error: ' . $e->getMessage() . "\n"); } ?>
许可证
版权所有(C) 2015 Daniel A.C. Martin
在GNU GPL v3下分发。