Abstract intocode into separate files.

This commit is contained in:
2020-12-04 18:17:39 -08:00
parent e62a0067e7
commit 161ee6e244
5 changed files with 132 additions and 67 deletions

24
day2.cr
View File

@@ -1,25 +1,11 @@
require "./intcode.cr"
lines = File.read("day2.txt").lines.map(&.split(",").map(&.to_i32)).flatten
def run(lines, noun, verb)
lines[1] = noun
lines[2] = verb
pos = 0
loop do
case lines[pos]
when 1
lines[lines[pos+3]] = lines[lines[pos+1]] + lines[lines[pos+2]]
pos += 4
when 2
lines[lines[pos+3]] = lines[lines[pos+1]] * lines[lines[pos+2]]
pos += 4
when 99
break
end
end
lines[0]
end
100.times do |noun|
100.times do |verb|
if run(lines.dup, noun, verb) == 19690720
prog = lines.clone
prog[1] = noun
prog[2] = verb
if run(prog, [] of Int32)[1][0] == 19690720
puts 100*noun + verb
break
end