summaryrefslogblamecommitdiff
path: root/projects/09/K/KGame.vm
blob: 57fc333bdfa5e33e84e411b59e7eb14be7aad098 (plain) (tree)





















                        
                    


               
           
                
            


                  




                      

                

               






                          
           
                
            





                          
           

                






















                         
           



























































                         




                 















                         



                
function KGame.new 0
push constant 1
call Memory.alloc 1
pop pointer 0
call Board.new 0
pop this 0
push this 0
call Board.draw 1
pop temp 0
push pointer 0
return
function KGame.dispose 0
push argument 0
pop pointer 0
push this 0
call Board.dispose 1
pop temp 0
push pointer 0
call Memory.deAlloc 1
pop temp 0
push constant 0
return
function KGame.run 5
push argument 0
pop pointer 0
push constant 0
pop local 4
label WHILE_EXP0
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 0
eq
not
if-goto WHILE_END1
call Keyboard.keyPressed 0
pop local 0
goto WHILE_EXP1
label WHILE_END1
push local 0
pop local 2
label WHILE_EXP2
push local 2
push constant 0
eq
not
not
if-goto WHILE_END2
call Keyboard.keyPressed 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
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
return