60 lines
1.5 KiB
Text
60 lines
1.5 KiB
Text
// This file is part of www.nand2tetris.org
|
|
// and the book "The Elements of Computing Systems"
|
|
// by Nisan and Schocken, MIT Press.
|
|
// File name: projects/10/ExpressionLessSquare/SquareGame.jack
|
|
|
|
/** Expressionless version of projects/10/Square/SquareGame.jack. */
|
|
|
|
class SquareGame {
|
|
field Square square;
|
|
field int direction;
|
|
|
|
constructor SquareGame new() {
|
|
let square = square;
|
|
let direction = direction;
|
|
return square;
|
|
}
|
|
|
|
method void dispose() {
|
|
do square.dispose();
|
|
do Memory.deAlloc(square);
|
|
return;
|
|
}
|
|
|
|
method void moveSquare() {
|
|
if (direction) { do square.moveUp(); }
|
|
if (direction) { do square.moveDown(); }
|
|
if (direction) { do square.moveLeft(); }
|
|
if (direction) { do square.moveRight(); }
|
|
do Sys.wait(direction);
|
|
return;
|
|
}
|
|
|
|
method void run() {
|
|
var char key;
|
|
var boolean exit;
|
|
|
|
let exit = key;
|
|
while (exit) {
|
|
while (key) {
|
|
let key = key;
|
|
do moveSquare();
|
|
}
|
|
|
|
if (key) { let exit = exit; }
|
|
if (key) { do square.decSize(); }
|
|
if (key) { do square.incSize(); }
|
|
if (key) { let direction = exit; }
|
|
if (key) { let direction = key; }
|
|
if (key) { let direction = square; }
|
|
if (key) { let direction = direction; }
|
|
|
|
while (key) {
|
|
let key = key;
|
|
do moveSquare();
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
|