aoc/src/day2.nu

38 lines
1.0 KiB
Plaintext

let input = (open ../input/day2.txt | lines)
let choices = ($input | each { |i| $i | split words })
def part1 [om, mm] {
let msel = (if $mm == 'X' { 1 } else { if $mm == 'Y' { 2 } else { 3 } })
let round = (
if $mm == 'X' {
if $om == 'A' { 3 } else { if $om == 'B' { 0 } else { 6 } }
} else {
if $mm == 'Y' {
if $om == 'A' { 6 } else { if $om == 'B' { 3 } else { 0 } }
} else {
if $om == 'A' { 0 } else { if $om == 'B' { 6 } else { 3 } }
}
}
)
$msel + $round
}
def part2 [om, mm] {
let round = (if $mm == 'X' { 0 } else { if $mm == 'Y' { 3 } else { 6 } })
let msel = (
if $om == 'A' {
if $mm == 'X' { 3 } else { if $mm == 'Y' { 1 } else { 2 } }
} else {
if $om == 'B' {
if $mm == 'X' { 1 } else { if $mm == 'Y' { 2 } else { 3 } }
} else {
if $mm == 'X' { 2 } else { if $mm == 'Y' { 3 } else { 1 } }
}
}
)
$msel + $round
}
$choices | each { |c| part1 $c.0 $c.1 } | math sum
$choices | each { |c| part2 $c.0 $c.1 } | math sum