summaryrefslogtreecommitdiff
path: root/projects/09/K/KGame.vm
diff options
context:
space:
mode:
Diffstat (limited to 'projects/09/K/KGame.vm')
-rw-r--r--projects/09/K/KGame.vm129
1 files changed, 112 insertions, 17 deletions
diff --git a/projects/09/K/KGame.vm b/projects/09/K/KGame.vm
index 767c14a..57fc333 100644
--- a/projects/09/K/KGame.vm
+++ b/projects/09/K/KGame.vm
@@ -20,26 +20,25 @@ call Memory.deAlloc 1
pop temp 0
push constant 0
return
-function KGame.run 3
+function KGame.run 5
push argument 0
pop pointer 0
push constant 0
-pop local 0
-push constant 0
-pop local 2
+pop local 4
label WHILE_EXP0
-push local 2
+push local 4
not
not
if-goto WHILE_END0
+push this 0
+call Board.getStatus 1
+pop local 3
+push constant 0
+pop local 0
label WHILE_EXP1
push local 0
-push constant 130
-lt
-push local 0
-push constant 133
-gt
-or
+push constant 0
+eq
not
if-goto WHILE_END1
call Keyboard.keyPressed 0
@@ -47,27 +46,123 @@ pop local 0
goto WHILE_EXP1
label WHILE_END1
push local 0
-push constant 130
-sub
-pop local 1
+pop local 2
label WHILE_EXP2
-push local 0
+push local 2
push constant 0
eq
not
not
if-goto WHILE_END2
call Keyboard.keyPressed 0
-pop local 0
+pop local 2
goto WHILE_EXP2
label WHILE_END2
+push local 0
+push constant 81
+eq
+if-goto IF_TRUE0
+goto IF_FALSE0
+label IF_TRUE0
+push constant 0
+not
+pop local 4
+goto IF_END0
+label IF_FALSE0
+push local 3
+push constant 0
+eq
+if-goto IF_TRUE1
+goto IF_FALSE1
+label IF_TRUE1
+call Screen.clearScreen 0
+pop temp 0
+push this 0
+push constant 1
+call Board.setStatus 2
+pop temp 0
push this 0
-push local 1
+call Board.draw 1
+pop temp 0
+goto IF_END1
+label IF_FALSE1
+push local 3
+push constant 2
+eq
+push local 3
+push constant 3
+eq
+or
+if-goto IF_TRUE2
+goto IF_FALSE2
+label IF_TRUE2
+call Screen.clearScreen 0
+pop temp 0
+push this 0
+push constant 0
+call Board.setStatus 2
+pop temp 0
+push this 0
+call Board.draw 1
+pop temp 0
+push this 0
+call Board.initBoard 1
+pop temp 0
+goto IF_END2
+label IF_FALSE2
+push local 0
+push constant 82
+eq
+if-goto IF_TRUE3
+goto IF_FALSE3
+label IF_TRUE3
+call Screen.clearScreen 0
+pop temp 0
+push this 0
+call Board.initBoard 1
+pop temp 0
+push this 0
+call Board.draw 1
+pop temp 0
+goto IF_END3
+label IF_FALSE3
+push local 0
+push constant 129
+gt
+push local 0
+push constant 134
+lt
+and
+if-goto IF_TRUE4
+goto IF_FALSE4
+label IF_TRUE4
+call Screen.clearScreen 0
+pop temp 0
+push this 0
+push local 0
+push constant 130
+sub
call Board.next 2
pop temp 0
push this 0
call Board.draw 1
pop temp 0
+push constant 300
+call Sys.wait 1
+pop temp 0
+call Screen.clearScreen 0
+pop temp 0
+push this 0
+call Board.addTile 1
+pop temp 0
+push this 0
+call Board.draw 1
+pop temp 0
+label IF_FALSE4
+label IF_END3
+label IF_END2
+label IF_END1
+label IF_END0
goto WHILE_EXP0
label WHILE_END0
push constant 0