summaryrefslogtreecommitdiff
path: root/projects/09/K/Board.vm
diff options
context:
space:
mode:
Diffstat (limited to 'projects/09/K/Board.vm')
-rw-r--r--projects/09/K/Board.vm159
1 files changed, 77 insertions, 82 deletions
diff --git a/projects/09/K/Board.vm b/projects/09/K/Board.vm
index 398171f..ce1e791 100644
--- a/projects/09/K/Board.vm
+++ b/projects/09/K/Board.vm
@@ -894,101 +894,34 @@ return
label IF_FALSE6
push argument 1
return
-function Board.addTile 6
+function Board.addTile 1
push argument 0
pop pointer 0
-push this 1
-pop local 0
-push constant 23
-push local 0
-call Math.multiply 2
-push local 0
-call Math.multiply 2
-push constant 79
-add
-pop local 1
-push local 1
-push local 1
-push constant 16
-call Math.divide 2
-push constant 16
-call Math.multiply 2
-sub
-pop local 0
-push local 0
-push constant 4
-call Math.divide 2
-pop local 2
-push local 0
-push local 2
-push constant 4
-call Math.multiply 2
-sub
-pop local 3
-push constant 65
-pop local 4
-push local 2
+push constant 1
push this 0
add
pop pointer 1
push that 0
-pop local 5
-label WHILE_EXP0
-push local 3
-push local 5
-add
-pop pointer 1
-push that 0
-push constant 64
-gt
-not
-if-goto WHILE_END0
-push constant 23
-push local 0
-call Math.multiply 2
-push local 0
-call Math.multiply 2
-push constant 79
-add
-pop local 1
-push local 1
-push local 1
-push constant 16
-call Math.divide 2
-push constant 16
-call Math.multiply 2
-sub
pop local 0
+push constant 1
push local 0
-push constant 4
-call Math.divide 2
-pop local 2
-push local 0
-push local 2
-push constant 4
-call Math.multiply 2
-sub
-pop local 3
-push constant 131
-push local 4
-sub
-pop local 4
-push local 2
-push this 0
add
pop pointer 1
push that 0
-pop local 5
-goto WHILE_EXP0
-label WHILE_END0
-push local 3
-push local 5
+push constant 32
+eq
+if-goto IF_TRUE0
+goto IF_FALSE0
+label IF_TRUE0
+push constant 1
+push local 0
add
-push local 4
+push constant 65
pop temp 0
pop pointer 1
push temp 0
pop that 0
+label IF_FALSE0
push constant 0
return
function Board.transform 4
@@ -1076,9 +1009,6 @@ return
function Board.next 0
push argument 0
pop pointer 0
-push pointer 0
-call Board.addTile 1
-pop temp 0
push this 1
push constant 1
add
@@ -1087,6 +1017,9 @@ push pointer 0
push argument 1
call Board.transform 2
pop temp 0
+push pointer 0
+call Board.addTile 1
+pop temp 0
push constant 0
return
function Board.draw 5
@@ -1096,6 +1029,54 @@ push constant 9
pop local 0
push constant 30
pop local 1
+push local 0
+push constant 1
+sub
+push local 1
+push constant 1
+sub
+call Output.moveCursor 2
+pop temp 0
+push constant 6
+call String.new 1
+push constant 43
+call String.appendChar 2
+push constant 45
+call String.appendChar 2
+push constant 45
+call String.appendChar 2
+push constant 45
+call String.appendChar 2
+push constant 45
+call String.appendChar 2
+push constant 43
+call String.appendChar 2
+call Output.printString 1
+pop temp 0
+push local 0
+push constant 4
+add
+push local 1
+push constant 1
+sub
+call Output.moveCursor 2
+pop temp 0
+push constant 6
+call String.new 1
+push constant 43
+call String.appendChar 2
+push constant 45
+call String.appendChar 2
+push constant 45
+call String.appendChar 2
+push constant 45
+call String.appendChar 2
+push constant 45
+call String.appendChar 2
+push constant 43
+call String.appendChar 2
+call Output.printString 1
+pop temp 0
push constant 0
pop local 2
label WHILE_EXP0
@@ -1110,8 +1091,16 @@ push local 0
push local 2
add
push local 1
+push constant 1
+sub
call Output.moveCursor 2
pop temp 0
+push constant 1
+call String.new 1
+push constant 124
+call String.appendChar 2
+call Output.printString 1
+pop temp 0
push local 2
push this 0
add
@@ -1137,6 +1126,12 @@ add
pop local 3
goto WHILE_EXP1
label WHILE_END1
+push constant 1
+call String.new 1
+push constant 124
+call String.appendChar 2
+call Output.printString 1
+pop temp 0
push local 2
push constant 1
add