summaryrefslogtreecommitdiff
path: root/projects/11/Pong/PongGame.vm
diff options
context:
space:
mode:
Diffstat (limited to 'projects/11/Pong/PongGame.vm')
-rw-r--r--projects/11/Pong/PongGame.vm309
1 files changed, 309 insertions, 0 deletions
diff --git a/projects/11/Pong/PongGame.vm b/projects/11/Pong/PongGame.vm
new file mode 100644
index 0000000..5521919
--- /dev/null
+++ b/projects/11/Pong/PongGame.vm
@@ -0,0 +1,309 @@
+function PongGame.new 0
+push constant 7
+call Memory.alloc 1
+pop pointer 0
+call Screen.clearScreen 0
+pop temp 0
+push constant 50
+pop this 6
+push constant 230
+push constant 229
+push this 6
+push constant 7
+call Bat.new 4
+pop this 0
+push constant 253
+push constant 222
+push constant 0
+push constant 511
+push constant 0
+push constant 229
+call Ball.new 6
+pop this 1
+push this 1
+push constant 400
+push constant 0
+call Ball.setDestination 3
+pop temp 0
+push constant 0
+push constant 238
+push constant 511
+push constant 240
+call Screen.drawRectangle 4
+pop temp 0
+push constant 22
+push constant 0
+call Output.moveCursor 2
+pop temp 0
+push constant 8
+call String.new 1
+push constant 83
+call String.appendChar 2
+push constant 99
+call String.appendChar 2
+push constant 111
+call String.appendChar 2
+push constant 114
+call String.appendChar 2
+push constant 101
+call String.appendChar 2
+push constant 58
+call String.appendChar 2
+push constant 32
+call String.appendChar 2
+push constant 48
+call String.appendChar 2
+call Output.printString 1
+pop temp 0
+push constant 0
+pop this 3
+push constant 0
+pop this 4
+push constant 0
+pop this 2
+push constant 0
+pop this 5
+push pointer 0
+return
+function PongGame.dispose 0
+push argument 0
+pop pointer 0
+push this 0
+call Bat.dispose 1
+pop temp 0
+push this 1
+call Ball.dispose 1
+pop temp 0
+push pointer 0
+call Memory.deAlloc 1
+pop temp 0
+push constant 0
+return
+function PongGame.newInstance 0
+call PongGame.new 0
+pop static 0
+push constant 0
+return
+function PongGame.getInstance 0
+push static 0
+return
+function PongGame.run 1
+push argument 0
+pop pointer 0
+label run.While0
+push this 3
+not
+not
+if-goto run.EndWhile0
+label run.While0.While0
+push local 0
+push constant 0
+eq
+push this 3
+not
+and
+not
+if-goto run.While0.EndWhile0
+call Keyboard.keyPressed 0
+pop local 0
+push this 0
+call Bat.move 1
+pop temp 0
+push pointer 0
+call PongGame.moveBall 1
+pop temp 0
+push constant 50
+call Sys.wait 1
+pop temp 0
+goto run.While0.While0
+label run.While0.EndWhile0
+push local 0
+push constant 130
+eq
+not
+if-goto run.While0.Else1
+push this 0
+push constant 1
+call Bat.setDirection 2
+pop temp 0
+goto run.While0.Endif1
+label run.While0.Else1
+push local 0
+push constant 132
+eq
+not
+if-goto run.While0.If1.Else0
+push this 0
+push constant 2
+call Bat.setDirection 2
+pop temp 0
+goto run.While0.If1.Endif0
+label run.While0.If1.Else0
+push local 0
+push constant 140
+eq
+not
+if-goto run.While0.If1.If0.Else0
+push constant 1
+neg
+pop this 3
+label run.While0.If1.If0.Else0
+label run.While0.If1.Endif0
+label run.While0.Endif1
+label run.While0.While2
+push local 0
+push constant 0
+eq
+not
+push this 3
+not
+and
+not
+if-goto run.While0.EndWhile2
+call Keyboard.keyPressed 0
+pop local 0
+push this 0
+call Bat.move 1
+pop temp 0
+push pointer 0
+call PongGame.moveBall 1
+pop temp 0
+push constant 50
+call Sys.wait 1
+pop temp 0
+goto run.While0.While2
+label run.While0.EndWhile2
+goto run.While0
+label run.EndWhile0
+push this 3
+not
+if-goto run.Else1
+push constant 10
+push constant 27
+call Output.moveCursor 2
+pop temp 0
+push constant 9
+call String.new 1
+push constant 71
+call String.appendChar 2
+push constant 97
+call String.appendChar 2
+push constant 109
+call String.appendChar 2
+push constant 101
+call String.appendChar 2
+push constant 32
+call String.appendChar 2
+push constant 79
+call String.appendChar 2
+push constant 118
+call String.appendChar 2
+push constant 101
+call String.appendChar 2
+push constant 114
+call String.appendChar 2
+call Output.printString 1
+pop temp 0
+label run.Else1
+push constant 0
+return
+function PongGame.moveBall 5
+push argument 0
+pop pointer 0
+push this 1
+call Ball.move 1
+pop this 2
+push this 2
+push constant 0
+gt
+push this 2
+push this 5
+eq
+not
+and
+not
+if-goto moveBall.Else0
+push this 2
+pop this 5
+push constant 0
+pop local 0
+push this 0
+call Bat.getLeft 1
+pop local 1
+push this 0
+call Bat.getRight 1
+pop local 2
+push this 1
+call Ball.getLeft 1
+pop local 3
+push this 1
+call Ball.getRight 1
+pop local 4
+push this 2
+push constant 4
+eq
+not
+if-goto moveBall.Else0.Else0
+push local 1
+push local 4
+gt
+push local 2
+push local 3
+lt
+or
+pop this 3
+push this 3
+not
+not
+if-goto moveBall.Else0.Else0.Else0
+push local 4
+push local 1
+push constant 10
+add
+lt
+not
+if-goto moveBall.Else0.Else0.Else0.Else0
+push constant 1
+neg
+pop local 0
+goto moveBall.Else0.Else0.Else0.Endif0
+label moveBall.Else0.Else0.Else0.Else0
+push local 3
+push local 2
+push constant 10
+sub
+gt
+not
+if-goto moveBall.Else0.Else0.Else0.If0.Else0
+push constant 1
+pop local 0
+label moveBall.Else0.Else0.Else0.If0.Else0
+label moveBall.Else0.Else0.Else0.Endif0
+push this 6
+push constant 2
+sub
+pop this 6
+push this 0
+push this 6
+call Bat.setWidth 2
+pop temp 0
+push this 4
+push constant 1
+add
+pop this 4
+push constant 22
+push constant 7
+call Output.moveCursor 2
+pop temp 0
+push this 4
+call Output.printInt 1
+pop temp 0
+label moveBall.Else0.Else0.Else0
+label moveBall.Else0.Else0
+push this 1
+push local 0
+call Ball.bounce 2
+pop temp 0
+label moveBall.Else0
+push constant 0
+return