blob: 588a5e84fe59b1a817b3dd1d1fe93c093e303558 (
plain) (
tree)
|
|
proc setup {n {mode lines}} {
puts "Advent of Code 2024 day $n Solution"
puts "<https://adventofcode.com/2024/day/$n>"
puts ""
set n [string range 0$n end-1 end]
upvar input input
set fd [open ../input.$n.txt]
switch -- $mode {
lines {
set input [split [string trim [read $fd]] "\r\n"]
close $fd
}
data {
set input [read $fd]
close $fd
}
fd {
set input $fd
}
grid {
set input(raw) [string trim [read $fd]]
set input(lines) [split $input(raw) "\r\n"]
set input(grid) {}
foreach line $input(lines) {
lappend input(grid) [split $line ""]
}
set input(h) [llength $input(grid)]
set input(w) [llength [lindex $input(grid) 0]]
set input(debug) $input(grid)
}
}
}
proc regroup {pat {var input}} {
upvar $var list
set list2 {}
set cur {}
foreach el $list {
if {[string match $pat $el]} {
if {$cur != {}} {
lappend list2 $cur
set cur {}
}
} else {
lappend cur $el
}
}
lappend list2 $cur
set list $list2
}
proc sindex {str args} {
set ret {}
foreach arg $args {
append ret [string index $str $arg]
}
return $ret
}
proc lrindex {list args} {
set ret {}
foreach arg $args {
lappend ret [lindex $list {*}$arg]
}
return $ret
}
|