diff options
author | Yuchen Pei <me@ypei.me> | 2018-01-18 12:00:28 +0100 |
---|---|---|
committer | Yuchen Pei <me@ypei.me> | 2018-01-18 12:00:28 +0100 |
commit | 84445f00a572497784fb6d97e23bdd1e655f6e5d (patch) | |
tree | be8fdd8993a03e17ddb81e59cc1a02b25d46f4fe /projects/09/K/KGame.jack | |
parent | 01da7177bd2f4d83e8916540a69d8b2690b52bbb (diff) |
refactored K
- added title, win, and lose frames
- reduced heap usage
Diffstat (limited to 'projects/09/K/KGame.jack')
-rw-r--r-- | projects/09/K/KGame.jack | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/projects/09/K/KGame.jack b/projects/09/K/KGame.jack index 796f5b5..e2b6d3d 100644 --- a/projects/09/K/KGame.jack +++ b/projects/09/K/KGame.jack @@ -14,20 +14,43 @@ class KGame{ } method void run() { - var int key, dir; + var int key, dir, key1, st; var boolean exit; - let key = 0; let exit = false; while (~exit) { - while ((key < 130) | (key > 133)) { + let st = board.getStatus(); + let key = 0; + while (key = 0) { let key = Keyboard.keyPressed(); } - let dir = key - 130; - while (~(key = 0)) { - let key = Keyboard.keyPressed(); + let key1 = key; + while (~(key1 = 0)) { + let key1 = Keyboard.keyPressed(); } - do board.next(dir); - do board.draw(); + if (key = 81) { + let exit = true; + } else { if ((st = 0)) { + do Screen.clearScreen(); + do board.setStatus(1); + do board.draw(); + } else { if ((st = 2) | (st = 3)) { + do Screen.clearScreen(); + do board.setStatus(0); + do board.draw(); + do board.initBoard(); + } else { if (key = 82) { // r for restart + do Screen.clearScreen(); + do board.initBoard(); + do board.draw(); + } else { if ((key > 129) & (key < 134)) { + do Screen.clearScreen(); + do board.next(key - 130); + do board.draw(); + do Sys.wait(300); + do Screen.clearScreen(); + do board.addTile(); + do board.draw(); + }}}}} } return; } |