aminyazdanpanah / rush-hour-solver
此软件包已被废弃,不再维护。未建议替代软件包。
🚗 拥挤时段游戏求解器
v0.1.0
2022-08-11 15:41 UTC
Requires
- php: ^8.1
Requires (Dev)
- phpunit/phpunit: ^8.4
This package is not auto-updated.
Last update: 2023-11-12 23:11:21 UTC
README
拥挤时段是一款在6x6方格板(可以更大)上玩的微型滑动板游戏。游戏的目标是通过滑动车辆,将周围交通让开,移动到空白方格上,直到红色的汽车可以开出板右边的出口。请注意,车辆只能向前或向后移动,不能向侧面移动。使用google或这个视频来获得印象。
内容
需求
此软件包版本仅与PHP 8.1或更高版本兼容。
安装
通过 composer 安装此软件包
composer require aminyazdanpanah/rush-hour-solver
或者,直接将依赖项添加到您的 composer.json
文件中
"require": { "aminyazdanpanah/rush-hour-solver": "^0.1" }
快速入门
首先,您需要将软件包包含在您的代码中
require 'vendor/autoload.php'; // path to the autoload file
加载板
有两种方式来加载板。
1. 从数组
use RushHourSolver\BoardLoader; $board_array = [ [".", ".", ".", ".", "A", "A"], [".", ".", "B", "B", "C", "C"], ["r", "r", ".", ".", "E", "F"], ["G", "G", "H", "H", "E", "F"], [".", ".", ".", "I", "E", "F"], [".", ".", ".", "I", "J", "J"], ]; $board_loader = new BoardLoader($board_array); $board = $board_loader->getBoard();
2. 从文件
use RushHourSolver\BoardLoader; $board_loader = new BoardLoader(); $board_loader->loadBoardFromFile("/path/to/board.txt"); $board = $board_loader->getBoard();
求解板
use RushHourSolver\BoardSolver; use RushHourSolver\Enums\Direction; use RushHourSolver\Enums\Orientation; $board_solver = new BoardSolver($board); $solutions = $board_solver->getSolution(); foreach ($solutions as $index => $solution) { $vehicle = $solution[0]; $direction = $solution[1]; if ($vehicle->getOrientation() === Orientation::HORIZONTAL && $direction === Direction::FORWARD) { $direction_name = "Right"; } elseif ($vehicle->getOrientation() === Orientation::HORIZONTAL && $direction === Direction::BACKWARD) { $direction_name = "Left"; } elseif ($vehicle->getOrientation() === Orientation::VERTICAL && $direction === Direction::FORWARD) { $direction_name = "Down"; } elseif ($vehicle->getOrientation() === Orientation::VERTICAL && $direction === Direction::BACKWARD) { $direction_name = "Up"; } else { $direction_name = "Unknown"; } echo "\n" . $index + 1 . ": " . $vehicle->getName() . " -> " . $direction_name; }
输出
求解板的步骤
贡献和报告错误
我很乐意得到您的帮助来改进、纠正或添加到规范中。请 提交一个问题 或 提交一个pull请求。
致谢
许可
MIT许可(MIT)。有关更多信息,请参阅 许可文件。