diff --git a/2016/02/1.pl b/2016/02/1.pl new file mode 100644 index 0000000..13ba6f8 --- /dev/null +++ b/2016/02/1.pl @@ -0,0 +1,35 @@ +use 5.20.0; +use List::AllUtils qw/ reduce min max /; + +my @grid = ( + [ 1,2,3], + [4,5,6], + [7,8,9], +); + +my %d = ( + U => [ -1, 0 ], + R => [ 0, 1 ], + L => [ 0, -1 ], + D => [ 1, 0 ], +); + +my $coord = [ 1,1 ]; +while(<>) { + chomp; + $coord = reduce { + my $n = $d{$b}; + use DDP; + # p $a; + [ + map { max 0, min $_, 2 } + map { $a->[$_] + $n->[$_] } + 0..1 + ] + + + } $coord, split ''; + + say $grid[$coord->[0]][$coord->[1]]; + +} diff --git a/2016/02/2.pl b/2016/02/2.pl new file mode 100644 index 0000000..5e8bc7b --- /dev/null +++ b/2016/02/2.pl @@ -0,0 +1,37 @@ +use 5.20.0; +use List::AllUtils qw/ reduce min max /; + +my @grid = ( + [ ], + [ '', '', '', 1, '','' ], + [ '', '', 2, 3, 4, '' ,'' ], + [ '', 5, 6, 7, 8, 9, ], +[ '', '', 'A' ,'B', 'C' ], +[ '', '', '', 'D' ], +); + +my %d = ( + U => [ -1, 0 ], + R => [ 0, 1 ], + L => [ 0, -1 ], + D => [ 1, 0 ], +); + +my $coord = [ 3,1 ]; +while(<>) { + chomp; + $coord = reduce { + my $n = $d{$b}; + use DDP; + # p $a; + my $x = [ + map { $a->[$_] + $n->[$_] } + 0..1 + ]; + + $grid[$x->[0]][$x->[1]] ? $x : $a; + } $coord, split ''; + + print $grid[$coord->[0]][$coord->[1]]; + +} diff --git a/2016/02/input.txt b/2016/02/input.txt new file mode 100644 index 0000000..9b6e654 --- /dev/null +++ b/2016/02/input.txt @@ -0,0 +1,5 @@ +RDLRUUULRRDLRLLRLDDUDLULULDDULUDRRUURLRLLUULDURRULLRULDRRDLLULLRLLDRLDDRRRRLLRLURRRDRDULRDUULDDDULURUDDRRRUULUDRLLUUURLUDRUUUDRDUULLRLLUDDRURRDDDRDLUUURLRLLUDRURDUDUULDDLLRDURULLLURLDURLUUULDULDDULULLLRRUDLRUURDRDLLURLUDULDUUUURRLDLUDRULUDLDLLDRLDDDRRLLDUDLLRRDDDRLUDURLLLDRUDDLDDRRLUDRRDUDLRRLULDULURULDULUULDRLLDRUUDDRLLUDRULLRRRLRDLRLUDLRULDRDLRDRLRULUDUURRUUULLDDDDUDDLDDDDRRULRDLRDDULLDLDLLDLLDLLDRRDDDRDDLRRDDDRLLLLURRDLRRLDRURDDURDULDDRUURUDUDDDRDRDDRLRRLRULLDRLDLURLRLRUDURRRDLLLUDRLRDLLDDDLLUDRLDRRUUDUUDULDULLRDLUDUURLDDRUDR +URULDDLDDUDLLURLUUUUUULUDRRRDDUDURDRUURLLDRURLUULUDRDRLLDRLDULRULUURUURRLRRDRUUUDLLLLRUDDLRDLLDUDLLRRURURRRUDLRLRLLRULRLRLRDLRLLRRUDDRLRUDULDURDLDLLLRDRURURRULLLDLLRRDRLLDUUDLRUUDDURLLLDUUDLRDDURRDRRULLDRLRDULRRLLRLLLLUDDDRDRULRRULLRRUUDULRRRUDLLUUURDUDLLLURRDDUDLDLRLURDDRRRULRRUDRDRDULURULRUDULRRRLRUDLDDDDRUULURDRRDUDLULLRUDDRRRLUDLRURUURDLDURRDUUULUURRDULLURLRUUUUULULLDRURULDURDDRRUDLRLRRLLLLDDUURRULLURURRLLDRRDDUUDLLUURRDRLLLLRLUDUUUDLRLRRLDURDRURLRLRULURLDULLLRRUUUDLLRRDUUULULDLLDLRRRDUDDLRULLULLULLULRU +DURUUDULRRLULLLDDUDDLRRDURURRRDDRRURDRURDRLULDUDUDUULULDDUURDDULRDUDUDRRURDRDDRLDRDRLDULDDULRULLDULURLUUDUDULRDDRRLURLLRRDLLDLDURULUDUDULDRLLRRRUDRRDDDRRDRUUURLDLURDLRLLDUULLRULLDDDDRULRRLRDLDLRLUURUUULRDUURURLRUDRDDDRRLLRLLDLRULUULULRUDLUDULDLRDDDDDRURDRLRDULRRULRDURDDRRUDRUDLUDLDLRUDLDDRUUULULUULUUUDUULDRRLDUDRRDDLRUULURLRLULRURDDLLULLURLUDLULRLRRDDDDDRLURURURDRURRLLLLURLDDURLLURDULURUUDLURUURDLUUULLLLLRRDUDLLDLUUDURRRURRUUUDRULDDLURUDDRRRDRDULURURLLDULLRDDDRRLLRRRDRLUDURRDLLLLDDDDLUUURDDDDDDLURRURLLLUURRUDLRLRRRURULDRRLULD +LLUUURRDUUDRRLDLRUDUDRLRDLLRDLLDRUULLURLRRLLUDRLDDDLLLRRRUDULDLLLDRLURDRLRRLURUDULLRULLLURRRRRDDDLULURUDLDUDULRRLUDDURRLULRRRDDUULRURRUULUURDRLLLDDRDDLRRULRDRDRLRURULDULRRDRLDRLLDRDURUUULDLLLRDRRRLRDLLUDRDRLURUURDLRDURRLUDRUDLURDRURLRDLULDURDDURUUDRLULLRLRLDDUDLLUUUURLRLRDRLRRRURLRULDULLLLDLRRRULLUUDLDURUUUDLULULRUDDLLDLDLRLDDUDURDRLLRRLRRDDUDRRRURDLRLUUURDULDLURULUDULRRLDUDLDDDUUDRDUULLDDRLRLLRLLLLURDDRURLDDULLULURLRDUDRDDURLLLUDLLLLLUDRDRDLURRDLUDDLDLLDDLUDRRDDLULRUURDRULDDDLLRLDRULURLRURRDDDRLUUDUDRLRRUDDLRDLDULULDDUDURRRURULRDDDUUDULLULDDRDUDRRDRDRDLRRDURURRRRURULLLRRLR +URLULLLDRDDULRRLRLUULDRUUULDRRLLDDDLDUULLDRLULRRDRRDDDRRDLRRLLDDRDULLRRLLUDUDDLDRDRLRDLRDRDDUUDRLLRLULLULRDRDDLDDDRLURRLRRDLUDLDDDLRDLDLLULDDRRDRRRULRUUDUULDLRRURRLLDRDRRDDDURUDRURLUDDDDDDLLRLURULURUURDDUDRLDRDRLUUUULURRRRDRDULRDDDDRDLLULRURLLRDULLUUDULULLLLRDRLLRRRLLRUDUUUULDDRULUDDDRRRULUDURRLLDURRDULUDRUDDRUURURURLRDULURDDDLURRDLDDLRUDUUDULLURURDLDURRDRDDDLRRDLLULUDDDRDLDRDRRDRURRDUDRUURLRDDUUDLURRLDRRDLUDRDLURUDLLRRDUURDUDLUDRRL diff --git a/2016/02/test b/2016/02/test new file mode 100644 index 0000000..5139196 --- /dev/null +++ b/2016/02/test @@ -0,0 +1,4 @@ +ULL +RRDDD +LURDL +UUUUD