aoc2021

Advent of Code 2021 solutions in Perl.
git clone git://git.samirparikh.com/aoc2021
Log | Files | Refs | README

commit 78ff4db7334f6a4f092f5c1e2b3914881515dcd3
parent 2a99e78ef9061493fc5ef7a8161d7cd644f6edeb
Author: Samir Parikh <noreply@samirparikh.com>
Date:   Wed,  8 Dec 2021 01:04:10 +0000

add day05-1.pl

Diffstat:
Mday05-1.pl | 58+++++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 45 insertions(+), 13 deletions(-)

diff --git a/day05-1.pl b/day05-1.pl @@ -3,7 +3,7 @@ use strict; use warnings; use v5.22; -use diagnostics; +#use diagnostics; if (@ARGV !=1) { die "Usage: $0 [input-filename]"; @@ -14,18 +14,50 @@ open my $filehandle, '<', $input_filename or die "Could not open input file $input_filename: $!"; chomp( my @input = ( <$filehandle> ) ); - -say foreach (@input); - +my $wait; +my @matrix = (); foreach (@input) { - my @captures = ( /(\d+),(\d+) -> (\d+),(\d+)/ ); - say join(":", @captures); + my ($x1, $y1, $x2, $y2) = ( /(\d+),(\d+) -> (\d+),(\d+)/ ); + say "input: $x1, $y1 -> $x2, $y2"; + if (($x2 <= $x1) && ($y2 <= $y1)) { + ($x2, $x1) = ($x1, $x2); + ($y2, $y1) = ($y1, $y2); + } + if (($x2 <= $x1) && ($y2 >= $y1)) { + ($x2, $x1) = ($x1, $x2); + ($y2, $y1) = ($y1, $y2); + } + say "input now: $x1, $y1 -> $x2, $y2"; + if (($x2 >= $x1) && ($y2 >= $y1)) { + say "i got to A"; + for (my $x = $x1; $x < $x2 + 1; $x++) { + for (my $y = $y1; $y < $y2 + 1; $y++) { + if (($x1 == $x2) || ($y1 == $y2)) { + $matrix[$y][$x]++; + say "\$matrix[$y][$x] = $matrix[$y][$x]"; + $wait = <>; + } + } + } + } + elsif (($x2 >= $x1) && ($y2 <= $y1)) { + say "i got to B"; + for (my $x = $x1; $x < $x2 + 1; $x++) { + for (my $y = $y2; $y < $y1 + 1; $y++) { + if (($x1 == $x2) || ($y1 == $y2)) { + $matrix[$y][$x]++; + say "\$matrix[$y][$x] = $matrix[$y][$x]"; + $wait = <>; + } + } + } + } } -my @matrix; - -$matrix[0][9] = 1; -$matrix[1][9] = 1; -$matrix[2][9] = 1; -$matrix[1][9]++; -say $matrix[1][9]; +foreach my $y (0 .. 9) { + foreach my $x (0 .. 9) { + my $char = defined( $matrix[$y][$x] ) ? $matrix[$y][$x] : "."; + print $char; + } + print "\n"; +}