kayrunm / php-adventofcode
Advent of Code 的 PHP 解决方案包装器。
1.0
2021-12-07 21:19 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.4
- illuminate/http: ^8.0
- laravel-zero/framework: ^8.8
Requires (Dev)
- mockery/mockery: ^1.4.3
- pestphp/pest: ^1.3
README
这是一个基于 Laravel Zero 构建的 Advent of Code 解决方案包装器。
入门指南
有效年份
您可以通过更改 LOWEST_YEAR 和 CURRENT_YEAR 环境变量来更改有效的挑战年份。 CURRENT_YEAR 被用作在没有给定年份的情况下运行的任何命令的回退。
API 会话
您需要从 Advent of Code 网站获取您的 session ID。这用于下载每天挑战的独特输入。
您可以通过登录到 Advent of Code 网站并复制存储在名为 session 的cookie中的字符串来完成此操作。一旦复制完毕,将其粘贴到 .env 文件下的 AOC_SESSION 键下。
命令
制作解决方案
adventofcode make {day} 命令创建一个解决方案文件并下载指定天挑战的独特输入。默认情况下,它将从您在 CURRENT_YEAR 环境变量中指定的年份检索挑战。这可以通过 --year 选项在运行时设置。
例如,以下将创建2021年第7天的解决方案
$ php adventofcode make 7 --year=2021
解决方案
您可以使用 day 或 year 命令运行给定日期或年份的解决方案。
例如,以下将运行2021年第7天的解决方案
$ php adventofcode day 7 --year=2021
以下将运行2021年所有可用的解决方案。
$ php adventofcode year 2021
重构
为了帮助重构,您可以通过在任何解决方案类上设置 $answers 属性来设置任何解决方案的答案。
假设解决方案的A部分和B部分的答案分别是 383 和 493,您可以使用以下代码设置它们
protected array $answers = [ 'partOne' => 383, 'partTwo' => 493, ];
通过这样做,运行任何解决方案命令将显示您的解决方案是否有正确答案。