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

37 lines
657 B
JavaScript

var state = "A";
var tape = {};
var pointer = 0;
var actions = {
A: [
[1, 1, "B"], [0, -1, "B"]
],
B: [
[0, 1, "C"], [1, -1, "B"]
],
C: [
[1, 1, "D"], [0, -1, "A"]
],
D: [
[1, -1, "E"], [1, -1, "F"]
],
E: [
[1, -1, "A"], [0, -1, "D"]
],
F: [
[1, 1, "A"], [1, -1, "E"]
],
}
aactions = {
A: [[1,1,"B"],[0,-1,"B"]],
B: [[1,-1,"A"],[1,1,"A"]],
}
for(var i = 0; i < 12629077; i++){
var action = actions[state][tape[pointer] ? 1 : 0];
//console.log(state, pointer, tape);
tape[pointer] = action[0];
pointer += action[1];
state = action[2];
}
console.log(tape);
console.log(Object.keys(tape).map(a=>(tape[a])).reduce((a,b)=>(a+b)));