From 09c40f135cb3f69599457a5b278d29bcb38fa6ef Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Mon, 15 Jan 2018 12:07:13 +0100 Subject: checkpoint --- projects/11/Square/SquareGame.vm | 168 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 projects/11/Square/SquareGame.vm (limited to 'projects/11/Square/SquareGame.vm') diff --git a/projects/11/Square/SquareGame.vm b/projects/11/Square/SquareGame.vm new file mode 100644 index 0000000..f2dd542 --- /dev/null +++ b/projects/11/Square/SquareGame.vm @@ -0,0 +1,168 @@ +function SquareGame.new 0 +push constant 2 +call Memory.alloc 1 +pop pointer 0 +push constant 0 +push constant 0 +push constant 30 +call Square.new 3 +pop this 0 +push constant 0 +pop this 1 +push pointer 0 +return +function SquareGame.dispose 0 +push argument 0 +pop pointer 0 +push this 0 +call Square.dispose 1 +pop temp 0 +push pointer 0 +call Memory.deAlloc 1 +pop temp 0 +push constant 0 +return +function SquareGame.moveSquare 0 +push argument 0 +pop pointer 0 +push this 1 +push constant 1 +eq +not +if-goto moveSquare.Else0 +push this 0 +call Square.moveUp 1 +pop temp 0 +label moveSquare.Else0 +push this 1 +push constant 2 +eq +not +if-goto moveSquare.Else1 +push this 0 +call Square.moveDown 1 +pop temp 0 +label moveSquare.Else1 +push this 1 +push constant 3 +eq +not +if-goto moveSquare.Else2 +push this 0 +call Square.moveLeft 1 +pop temp 0 +label moveSquare.Else2 +push this 1 +push constant 4 +eq +not +if-goto moveSquare.Else3 +push this 0 +call Square.moveRight 1 +pop temp 0 +label moveSquare.Else3 +push constant 5 +call Sys.wait 1 +pop temp 0 +push constant 0 +return +function SquareGame.run 2 +push argument 0 +pop pointer 0 +push constant 0 +pop local 1 +label run.While0 +push local 1 +not +not +if-goto run.EndWhile0 +label run.While0.While0 +push local 0 +push constant 0 +eq +not +if-goto run.While0.EndWhile0 +call Keyboard.keyPressed 0 +pop local 0 +push pointer 0 +call SquareGame.moveSquare 1 +pop temp 0 +goto run.While0.While0 +label run.While0.EndWhile0 +push local 0 +push constant 81 +eq +not +if-goto run.While0.Else1 +push constant 1 +neg +pop local 1 +label run.While0.Else1 +push local 0 +push constant 90 +eq +not +if-goto run.While0.Else2 +push this 0 +call Square.decSize 1 +pop temp 0 +label run.While0.Else2 +push local 0 +push constant 88 +eq +not +if-goto run.While0.Else3 +push this 0 +call Square.incSize 1 +pop temp 0 +label run.While0.Else3 +push local 0 +push constant 131 +eq +not +if-goto run.While0.Else4 +push constant 1 +pop this 1 +label run.While0.Else4 +push local 0 +push constant 133 +eq +not +if-goto run.While0.Else5 +push constant 2 +pop this 1 +label run.While0.Else5 +push local 0 +push constant 130 +eq +not +if-goto run.While0.Else6 +push constant 3 +pop this 1 +label run.While0.Else6 +push local 0 +push constant 132 +eq +not +if-goto run.While0.Else7 +push constant 4 +pop this 1 +label run.While0.Else7 +label run.While0.While8 +push local 0 +push constant 0 +eq +not +not +if-goto run.While0.EndWhile8 +call Keyboard.keyPressed 0 +pop local 0 +push pointer 0 +call SquareGame.moveSquare 1 +pop temp 0 +goto run.While0.While8 +label run.While0.EndWhile8 +goto run.While0 +label run.EndWhile0 +push constant 0 +return -- cgit v1.2.3