From 7e4cd1bac23f7cc02d0f14bcc6ef00357377fc2a Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Mon, 8 Jan 2018 12:35:44 +0100 Subject: checkpoint finished first draft of Board.jack --- projects/09/Square/SquareGame.vm | 179 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 projects/09/Square/SquareGame.vm (limited to 'projects/09/Square/SquareGame.vm') diff --git a/projects/09/Square/SquareGame.vm b/projects/09/Square/SquareGame.vm new file mode 100644 index 0000000..8444dbc --- /dev/null +++ b/projects/09/Square/SquareGame.vm @@ -0,0 +1,179 @@ +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 +if-goto IF_TRUE0 +goto IF_FALSE0 +label IF_TRUE0 +push this 0 +call Square.moveUp 1 +pop temp 0 +label IF_FALSE0 +push this 1 +push constant 2 +eq +if-goto IF_TRUE1 +goto IF_FALSE1 +label IF_TRUE1 +push this 0 +call Square.moveDown 1 +pop temp 0 +label IF_FALSE1 +push this 1 +push constant 3 +eq +if-goto IF_TRUE2 +goto IF_FALSE2 +label IF_TRUE2 +push this 0 +call Square.moveLeft 1 +pop temp 0 +label IF_FALSE2 +push this 1 +push constant 4 +eq +if-goto IF_TRUE3 +goto IF_FALSE3 +label IF_TRUE3 +push this 0 +call Square.moveRight 1 +pop temp 0 +label IF_FALSE3 +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 WHILE_EXP0 +push local 1 +not +not +if-goto WHILE_END0 +label WHILE_EXP1 +push local 0 +push constant 0 +eq +not +if-goto WHILE_END1 +call Keyboard.keyPressed 0 +pop local 0 +push pointer 0 +call SquareGame.moveSquare 1 +pop temp 0 +goto WHILE_EXP1 +label WHILE_END1 +push local 0 +push constant 81 +eq +if-goto IF_TRUE0 +goto IF_FALSE0 +label IF_TRUE0 +push constant 0 +not +pop local 1 +label IF_FALSE0 +push local 0 +push constant 90 +eq +if-goto IF_TRUE1 +goto IF_FALSE1 +label IF_TRUE1 +push this 0 +call Square.decSize 1 +pop temp 0 +label IF_FALSE1 +push local 0 +push constant 88 +eq +if-goto IF_TRUE2 +goto IF_FALSE2 +label IF_TRUE2 +push this 0 +call Square.incSize 1 +pop temp 0 +label IF_FALSE2 +push local 0 +push constant 131 +eq +if-goto IF_TRUE3 +goto IF_FALSE3 +label IF_TRUE3 +push constant 1 +pop this 1 +label IF_FALSE3 +push local 0 +push constant 133 +eq +if-goto IF_TRUE4 +goto IF_FALSE4 +label IF_TRUE4 +push constant 2 +pop this 1 +label IF_FALSE4 +push local 0 +push constant 130 +eq +if-goto IF_TRUE5 +goto IF_FALSE5 +label IF_TRUE5 +push constant 3 +pop this 1 +label IF_FALSE5 +push local 0 +push constant 132 +eq +if-goto IF_TRUE6 +goto IF_FALSE6 +label IF_TRUE6 +push constant 4 +pop this 1 +label IF_FALSE6 +label WHILE_EXP2 +push local 0 +push constant 0 +eq +not +not +if-goto WHILE_END2 +call Keyboard.keyPressed 0 +pop local 0 +push pointer 0 +call SquareGame.moveSquare 1 +pop temp 0 +goto WHILE_EXP2 +label WHILE_END2 +goto WHILE_EXP0 +label WHILE_END0 +push constant 0 +return -- cgit v1.2.3