diff --git a/2019/day5/Main.scala b/2019/day5/Main.scala deleted file mode 100644 index 0b29700..0000000 --- a/2019/day5/Main.scala +++ /dev/null @@ -1,41 +0,0 @@ -package day5 - -import day5.opcode.{Action, Jump, OpCode99} - -import scala.io.Source - -object Main { - - val insertTape = Source.fromFile(getClass.getResource("/input5.txt").getFile).mkString.split("[^\\d-]+").map(x => x.toInt) - - def opCodeRunner(tape: Array[Int], nextPtr: Int): Boolean = - { - //println("=======\nParsing at "+nextPtr+": ["+tape(nextPtr)+", "+tape(nextPtr+1)+", "+tape(nextPtr+2)+", "+tape(nextPtr+3)+ "]"); - val tuple = OpCode99.parseInt(tape(nextPtr)); - //println("Executing: " + tuple) - tuple match - { - case (_, _, _, OpCode99) => true // finish - case (m3, m2, m1, instruction: Jump) => - { - val (bool, jmpPtr) = instruction.checkConditionAndJump(tape, tape(nextPtr+1), tape(nextPtr+2), tape(nextPtr+3), m1, m2, m3) - //println("Jumping?: " + bool + " " + jmpPtr) - if (bool) opCodeRunner(tape, jmpPtr) - else opCodeRunner(tape, nextPtr + instruction.length) - } - case (m3, m2, m1, instruction: Action) => - { - instruction.exec(tape, tape(nextPtr+1), tape(nextPtr+2), tape(nextPtr+3), m1, m2, m3) - opCodeRunner(tape, nextPtr + instruction.length) - } - } - } - - def main(args: Array[String]): Unit = { - println("Starting program...") - - opCodeRunner(insertTape, 0) - - println("Program finished...") - } -}