Some checks failed
CI Pipeline / install (pull_request) Failing after 7s
CI Pipeline / phpstan (pull_request) Has been skipped
CI Pipeline / rector (pull_request) Has been skipped
CI Pipeline / pest (pull_request) Has been skipped
CI Pipeline / style-check (pull_request) Has been skipped
CI Pipeline / install (push) Failing after 3s
CI Pipeline / phpstan (push) Has been skipped
CI Pipeline / rector (push) Has been skipped
CI Pipeline / pest (push) Has been skipped
CI Pipeline / style-check (push) Has been skipped
Advent of Code
In this repository, you'll find my Advent of Code framework and solutions. If you want to
use this framework for your own solution, just remove all data in the ./data
folder.
🛠 Setup and running
- Run
composer install
to install the dependencies. - Run
./aoc day {day} {year?}
to run the solution for a specific day. If year is not given, use the current year (for example./aoc day 1
to run the code for day 1 2023) - Run
./aoc test {day} {year?}
to run the solution against the specified results. - Run
./aoc puzzle {day} {year?}
to get the description of the puzzle for the specific day.
Tips:
- You can add
--one
or--two
(or-1
and-2
) to the day to run the solution for part 1 or part 2.- You can add
--skip-example
(or-s
) to skip the example data.
🧪 Testing and quality control
- Run
./vendor/bin/pest
to automatically validate the solutions. - Run
./vendor/bin/phpstan analyse
to run static analysis on the code. - Run
./vendor/bin/php-cs-fixer fix
to run (and fix) code style checks.
🧩 Add a new puzzle/solution
- Run
./aoc new {day?} {year?}
to create a new puzzle/solution.
Manual setup
- Create a directory in
./data/Y??/day?
with the correct name.- Create
example.txt
with the example values from the puzzle.- If there are different examples for part 1 and part 2, create
example-part1.txt
andexample-part2.txt
.
- If there are different examples for part 1 and part 2, create
- Create
data.txt
with your personal input. - (optional) Create
puzzle.md
with the puzzle description. You can use this plugin to easily convert the puzzle to markdown.
- Create
- Create a new class in the
Day??.php
directory and make sure it has the structure defined below.
Solution structure
<?php
namespace trizz\AdventOfCode\Y21;
// Make sure the classname is correct.
class Day1 extends Solution
{
// Provide the expected results for part 1.
public static int $part1ExampleResult = null;
public static int $part1Result = null;
// Provide the expected results for part 2.
public static int $part2ExampleResult = null;
public static int $part2Result = null;
protected function part1(array $data): int
{
// Solution for part 1.
}
protected function part2(array $data): int
{
// Solution for part 2.
}
}
Description
Languages
PHP
100%