Move user input to run method
This commit is contained in:
parent
28d32820fc
commit
8ce1437b74
1 changed files with 2 additions and 6 deletions
|
|
@ -33,11 +33,7 @@ module Intcode
|
||||||
@initial_state = mem
|
@initial_state = mem
|
||||||
end
|
end
|
||||||
|
|
||||||
def on_input(&block)
|
def run(&user_input)
|
||||||
@input = block
|
|
||||||
end
|
|
||||||
|
|
||||||
def run
|
|
||||||
@mem = Memory.new(@initial_state.clone)
|
@mem = Memory.new(@initial_state.clone)
|
||||||
ip = 0
|
ip = 0
|
||||||
loop do
|
loop do
|
||||||
|
|
@ -68,7 +64,7 @@ module Intcode
|
||||||
r1 = mem[ip + 1]
|
r1 = mem[ip + 1]
|
||||||
raise StandardError, "unexpected mode: #{mode[0]}" if mode[0] != 0
|
raise StandardError, "unexpected mode: #{mode[0]}" if mode[0] != 0
|
||||||
|
|
||||||
mem[r1] = input
|
mem[r1] = user_input.nil? ? input : user_input.call
|
||||||
ip += 2
|
ip += 2
|
||||||
when 4
|
when 4
|
||||||
r1 = mem[ip + 1]
|
r1 = mem[ip + 1]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue