summaryrefslogtreecommitdiff
path: root/2024/php/day_04/part_01.php
diff options
context:
space:
mode:
authorDJ O'Leary <dijitol@proton.me>2026-06-26 18:04:09 +0200
committerDJ O'Leary <dijitol@proton.me>2026-06-26 18:04:09 +0200
commit6d8fb621d1e93b83786890d6d9cb6f0d8defa8ae (patch)
tree17c90d3984c114aa023600cc5bec6f6004b02243 /2024/php/day_04/part_01.php
parentad4ea5ca4bc9f7540ee1d6a4fa2d881709dc6459 (diff)
refactor!: invert repo directory structure
now is language first
Diffstat (limited to '2024/php/day_04/part_01.php')
-rw-r--r--2024/php/day_04/part_01.php94
1 files changed, 0 insertions, 94 deletions
diff --git a/2024/php/day_04/part_01.php b/2024/php/day_04/part_01.php
deleted file mode 100644
index 0faa5b0..0000000
--- a/2024/php/day_04/part_01.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-spl_autoload_register(fn (string $className) => require "{$className}.php");
-
-// Assumes executed from workspace root
-$input = new Input('../_input/day_04.txt');
-if ($input->contents === "") {
- throw new RuntimeException("File not found");
-}
-
-$grid = $input->toGrid();
-
-$matchCount = 0;
-foreach ($grid->data as $y => $row) {
- foreach ($row as $x => $char) {
- if ($char !== 'X') {
- continue;
- }
-
- $start = new Position($x, $y);
-
- $possibleMatches = [];
-
- $possibleMatches["north"] = $grid->getStringFromPositions([
- $start,
- $start->getNorth(),
- $start->getNorth()->getNorth(),
- $start->getNorth()->getNorth()->getNorth(),
- ]);
-
- $possibleMatches["east"] = $grid->getStringFromPositions([
- $start,
- $start->getEast(),
- $start->getEast()->getEast(),
- $start->getEast()->getEast()->getEast(),
- ]);
-
- $possibleMatches["south"] = $grid->getStringFromPositions([
- $start,
- $start->getSouth(),
- $start->getSouth()->getSouth(),
- $start->getSouth()->getSouth()->getSouth(),
- ]);
-
- $possibleMatches["west"] = $grid->getStringFromPositions([
- $start,
- $start->getWest(),
- $start->getWest()->getWest(),
- $start->getWest()->getWest()->getWest(),
- ]);
-
- $possibleMatches["north-east"] = $grid->getStringFromPositions([
- $start,
- $start->getNorthEast(),
- $start->getNorthEast()->getNorthEast(),
- $start->getNorthEast()->getNorthEast()->getNorthEast(),
- ]);
-
- $possibleMatches["north-west"] = $grid->getStringFromPositions([
- $start,
- $start->getNorthWest(),
- $start->getNorthWest()->getNorthWest(),
- $start->getNorthWest()->getNorthWest()->getNorthWest(),
- ]);
-
- $possibleMatches["south-east"] = $grid->getStringFromPositions([
- $start,
- $start->getSouthEast(),
- $start->getSouthEast()->getSouthEast(),
- $start->getSouthEast()->getSouthEast()->getSouthEast(),
- ]);
-
- $possibleMatches["south-west"] = $grid->getStringFromPositions([
- $start,
- $start->getSouthWest(),
- $start->getSouthWest()->getSouthWest(),
- $start->getSouthWest()->getSouthWest()->getSouthWest(),
- ]);
-
- $matchCount += array_reduce(
- array: $possibleMatches,
- callback: fn (int $acc, string $possibleMatch): int => match ($possibleMatch) {
- "XMAS" => $acc + 1,
- default => $acc,
- },
- initial: 0,
- );
- }
-}
-
-// ANSWER: 2517
-echo $matchCount;