git @ Cat's Eye Technologies Wunnel / 8de1a06
Address the tape with a yoob.Cursor which is displayed in the view. Chris Pressey 5 years ago
1 changed file(s) with 15 addition(s) and 13 deletion(s). Raw diff Collapse all Expand all
113113 } else if (k === 'NOP') {
114114 } else if (k === 'SHU') {
115115 if (ip.isHeaded(-1, 0)) {
116 ip.setY(ip.getY() - tape.get(head));
116 ip.setY(ip.getY() - tape.read());
117117 } else if (ip.isHeaded(1, 0)) {
118 ip.setY(ip.getY() + tape.get(head));
118 ip.setY(ip.getY() + tape.read());
119119 } else if (ip.isHeaded(0, -1)) {
120 ip.setX(ip.getX() + tape.get(head));
120 ip.setX(ip.getX() + tape.read());
121121 } else if (ip.isHeaded(0, 1)) {
122 ip.setX(ip.getX() - tape.get(head));
122 ip.setX(ip.getX() - tape.read());
123123 }
124124 } else if (k === 'ROT') {
125125 ip.rotateCounterclockwise();
127127 opp.rotateCounterclockwise();
128128 opp.rotateCounterclockwise();
129129 } else if (k === 'LEF') {
130 head--;
130 head.moveLeft();
131131 } else if (k === 'RIG') {
132 head++;
132 head.moveRight();
133133 } else if (k === 'NEG') {
134 tape.put(head, -1);
134 tape.write(-1);
135135 } else if (k === 'BLA') {
136 tape.put(head, 0);
136 tape.write(0);
137137 } else if (k === 'PLU') {
138 tape.put(head, 1);
138 tape.write(1);
139139 } else if (k === 'OUT') {
140 this.outputElem.innerHTML += (tape.get(head) === 0 ? '0' : '1');
140 this.outputElem.innerHTML += (tape.read() === 0 ? '0' : '1');
141141 } else if (k === 'INP') {
142142 var c = this.inputElem.value;
143143 if (c === '') {
144144 return 'block';
145145 }
146 tape.put(head, c.charAt(0) === '1' ? 1 : 0);
146 tape.write(c.charAt(0) === '1' ? 1 : 0);
147147 this.inputElem.value = c.substr(1);
148148 }
149149 } else {
171171 opp.dx = 0;
172172 opp.dy = 1;
173173
174 tape = (new yoob.Tape()).init({});
174 head = (new yoob.Cursor()).init();
175 tape = (new yoob.Tape()).init({
176 cursors: [head]
177 });
175178 this.tapeView.setTape(tape);
176 head = 0;
177179
178180 this.inputElem.value = "";
179181 this.outputElem.innerHTML = "";