adventofcode-2017/day23/part1.js
2017-12-25 23:22:40 +00:00

31 lines
774 B
JavaScript

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);