diff options
author | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2022-12-09 19:07:26 +0900 |
---|---|---|
committer | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2022-12-09 19:07:26 +0900 |
commit | cde44cdda55d0a0139a8e6a98e1aa47831972395 (patch) | |
tree | 0cfc6ca45def36ff8ff0d4ec6b44167f5447a2b4 /aoc/2022/09/part-one.tcl | |
parent | f8b0528d933f4b7ac64c8460ed765e8e41240d7d (diff) | |
download | cp-cde44cdda55d.tar.gz |
[aoc/2022] Finish day 9
Diffstat (limited to 'aoc/2022/09/part-one.tcl')
-rwxr-xr-x | aoc/2022/09/part-one.tcl | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/aoc/2022/09/part-one.tcl b/aoc/2022/09/part-one.tcl new file mode 100755 index 0000000..3e7716a --- /dev/null +++ b/aoc/2022/09/part-one.tcl @@ -0,0 +1,25 @@ +#!/usr/bin/env tclsh +proc vec x {list [expr {abs($x)}] [expr {($x>0)-($x<0)}]} +set tx [set hx 0] +set ty [set hy 0] +while {1} { + set line [gets stdin] + if {[eof stdin] || $line == ""} then break + lassign [split $line] d n + for {set i 0} {$i < $n} {incr i} { + switch $d { + R {incr hx 1} + U {incr hy 1} + L {incr hx -1} + D {incr hy -1} + } + lassign [vec [expr {$hx-$tx}]] mx dx + lassign [vec [expr {$hy-$ty}]] my dy + if {$mx == 2 || $my == 2} { + incr tx $dx + incr ty $dy + } + set v($tx,$ty) 1 + } +} +puts [array size v] |