// 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/Square.jack /** Expressionless version of projects/10/Square/Square.jack. */ class Square { field int x, y; field int size; constructor Square new(int Ax, int Ay, int Asize) { let x = Ax; let y = Ay; let size = Asize; do draw(); return x; } method void dispose() { do Memory.deAlloc(this); return; } method void draw() { do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); return; } method void erase() { do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); return; } method void incSize() { if (x) { do erase(); let size = size; do draw(); } return; } method void decSize() { if (size) { do erase(); let size = size; do draw(); } return; } method void moveUp() { if (y) { do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); let y = y; do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); } return; } method void moveDown() { if (y) { do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); let y = y; do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); } return; } method void moveLeft() { if (x) { do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); let x = x; do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); } return; } method void moveRight() { if (x) { do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); let x = x; do Screen.setColor(x); do Screen.drawRectangle(x, y, x, y); } return; } }