X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?p=aoc2020.git;a=blobdiff_plain;f=24.pl;fp=24.pl;h=29b1fdf83ccc1e4307b8692227b1fa0ccf0a9101;hp=0000000000000000000000000000000000000000;hb=9561c5adee8468b3a3f06990b3845dbb3046e676;hpb=43e4d5ca179c9b228a3eadc780d38c341824cc37 diff --git a/24.pl b/24.pl new file mode 100755 index 0000000..29b1fdf --- /dev/null +++ b/24.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl -w + +use strict; + +my ($wx, $wy, $x, $y) = (10, 1); + +while (<>) { + my ($cmd, $num) = /\A(.)(\d+)/; + print "cmd=$cmd, num=$num: "; + if ($cmd eq 'F') { + $x += $num*$wx; + $y += $num*$wy; + } elsif ($cmd eq 'R') { + while (($num -= 90) >= 0) { + my $tmp = $wx; + $wx = $wy; + $wy = -$tmp; + } + } elsif ($cmd eq 'L') { + while (($num -= 90) >= 0) { + my $tmp = $wy; + $wy = $wx; + $wx = -$tmp; + } + } elsif ($cmd eq 'N') { + $wy += $num; + } elsif ($cmd eq 'S') { + $wy -= $num; + } elsif ($cmd eq 'E') { + $wx += $num; + } elsif ($cmd eq 'W') { + $wx -= $num; + } + print " at ($x, $y, $wx, $wy)\n"; +} + +print abs($x) + abs($y), "\n"; +