diff --git a/impl/wunnel.js/src/wunnel-controller.js b/impl/wunnel.js/src/wunnel-controller.js index 6ef47ea..1958740 100644 --- a/impl/wunnel.js/src/wunnel-controller.js +++ b/impl/wunnel.js/src/wunnel-controller.js @@ -114,13 +114,13 @@ } else if (k === 'NOP') { } else if (k === 'SHU') { if (ip.isHeaded(-1, 0)) { - ip.setY(ip.getY() - tape.get(head)); + ip.setY(ip.getY() - tape.read()); } else if (ip.isHeaded(1, 0)) { - ip.setY(ip.getY() + tape.get(head)); + ip.setY(ip.getY() + tape.read()); } else if (ip.isHeaded(0, -1)) { - ip.setX(ip.getX() + tape.get(head)); + ip.setX(ip.getX() + tape.read()); } else if (ip.isHeaded(0, 1)) { - ip.setX(ip.getX() - tape.get(head)); + ip.setX(ip.getX() - tape.read()); } } else if (k === 'ROT') { ip.rotateCounterclockwise(); @@ -128,23 +128,23 @@ opp.rotateCounterclockwise(); opp.rotateCounterclockwise(); } else if (k === 'LEF') { - head--; + head.moveLeft(); } else if (k === 'RIG') { - head++; + head.moveRight(); } else if (k === 'NEG') { - tape.put(head, -1); + tape.write(-1); } else if (k === 'BLA') { - tape.put(head, 0); + tape.write(0); } else if (k === 'PLU') { - tape.put(head, 1); + tape.write(1); } else if (k === 'OUT') { - this.outputElem.innerHTML += (tape.get(head) === 0 ? '0' : '1'); + this.outputElem.innerHTML += (tape.read() === 0 ? '0' : '1'); } else if (k === 'INP') { var c = this.inputElem.value; if (c === '') { return 'block'; } - tape.put(head, c.charAt(0) === '1' ? 1 : 0); + tape.write(c.charAt(0) === '1' ? 1 : 0); this.inputElem.value = c.substr(1); } } else { @@ -172,9 +172,11 @@ opp.dx = 0; opp.dy = 1; - tape = (new yoob.Tape()).init({}); + head = (new yoob.Cursor()).init(); + tape = (new yoob.Tape()).init({ + cursors: [head] + }); this.tapeView.setTape(tape); - head = 0; this.inputElem.value = ""; this.outputElem.innerHTML = "";