summaryrefslogtreecommitdiff
path: root/projects/10/ExpressionLessSquare/Square.jack
diff options
context:
space:
mode:
Diffstat (limited to 'projects/10/ExpressionLessSquare/Square.jack')
-rw-r--r--projects/10/ExpressionLessSquare/Square.jack99
1 files changed, 99 insertions, 0 deletions
diff --git a/projects/10/ExpressionLessSquare/Square.jack b/projects/10/ExpressionLessSquare/Square.jack
new file mode 100644
index 0000000..33a54ad
--- /dev/null
+++ b/projects/10/ExpressionLessSquare/Square.jack
@@ -0,0 +1,99 @@
+// 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;
+ }
+}