summaryrefslogblamecommitdiff
path: root/projects/09/K/KGame.vm
blob: df3a069b8af5ded83f29a31d389407fa5a1fc272 (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 4
push argument 0
pop pointer 0
push constant 0
pop local 3
label WHILE_EXP0
push local 3
not
not
if-goto WHILE_END0
push this 0
call Board.getStatus 1
pop local 2
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 1
label WHILE_EXP2
push local 1
push constant 0
eq
not
not
if-goto WHILE_END2
call Keyboard.keyPressed 0
pop local 1
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 3
goto IF_END0
label IF_FALSE0
push local 2
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 2
push constant 2
eq
push local 2
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