37 lines
657 B
JavaScript
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)));
|