var pc = 0; var registers = {a: 0, b: 0, c: 0, d: 0, e: 0, f: 0, g: 0, h: 0}; var instructions = require("fs").readFileSync("input.txt").toString().split("\n").filter((a)=>(a)); var numMul = 0; while((pc >= 0) && (pc < instructions.length)){ val = a => ((isNaN(parseInt(a))) ? (registers[a]) : (parseInt(a))); var instruction = instructions[pc]; var parts = instruction.split(" "); var pcstart = pc; switch(parts[0]){ case "set": registers[parts[1]] = val(parts[2]); break; case "sub": registers[parts[1]] -= val(parts[2]); break; case "mul": numMul++; registers[parts[1]] *= val(parts[2]); break; case "jnz": if(val(parts[1]) != 0){ pc += (val(parts[2]) - 1); } break; } pc++; } console.log(numMul); console.log(registers);