<tokens> <keyword> class </keyword> <identifier> SquareGame </identifier> <symbol> { </symbol> <keyword> field </keyword> <identifier> Square </identifier> <identifier> square </identifier> <symbol> ; </symbol> <keyword> field </keyword> <keyword> int </keyword> <identifier> direction </identifier> <symbol> ; </symbol> <keyword> constructor </keyword> <identifier> SquareGame </identifier> <identifier> new </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> { </symbol> <keyword> let </keyword> <identifier> square </identifier> <symbol> = </symbol> <identifier> Square </identifier> <symbol> . </symbol> <identifier> new </identifier> <symbol> ( </symbol> <integerConstant> 0 </integerConstant> <symbol> , </symbol> <integerConstant> 0 </integerConstant> <symbol> , </symbol> <integerConstant> 30 </integerConstant> <symbol> ) </symbol> <symbol> ; </symbol> <keyword> let </keyword> <identifier> direction </identifier> <symbol> = </symbol> <integerConstant> 0 </integerConstant> <symbol> ; </symbol> <keyword> return </keyword> <keyword> this </keyword> <symbol> ; </symbol> <symbol> } </symbol> <keyword> method </keyword> <keyword> void </keyword> <identifier> dispose </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> { </symbol> <keyword> do </keyword> <identifier> square </identifier> <symbol> . </symbol> <identifier> dispose </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <keyword> do </keyword> <identifier> Memory </identifier> <symbol> . </symbol> <identifier> deAlloc </identifier> <symbol> ( </symbol> <keyword> this </keyword> <symbol> ) </symbol> <symbol> ; </symbol> <keyword> return </keyword> <symbol> ; </symbol> <symbol> } </symbol> <keyword> method </keyword> <keyword> void </keyword> <identifier> moveSquare </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> { </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> direction </identifier> <symbol> = </symbol> <integerConstant> 1 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> do </keyword> <identifier> square </identifier> <symbol> . </symbol> <identifier> moveUp </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> direction </identifier> <symbol> = </symbol> <integerConstant> 2 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> do </keyword> <identifier> square </identifier> <symbol> . </symbol> <identifier> moveDown </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> direction </identifier> <symbol> = </symbol> <integerConstant> 3 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> do </keyword> <identifier> square </identifier> <symbol> . </symbol> <identifier> moveLeft </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> direction </identifier> <symbol> = </symbol> <integerConstant> 4 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> do </keyword> <identifier> square </identifier> <symbol> . </symbol> <identifier> moveRight </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <symbol> } </symbol> <keyword> do </keyword> <identifier> Sys </identifier> <symbol> . </symbol> <identifier> wait </identifier> <symbol> ( </symbol> <integerConstant> 5 </integerConstant> <symbol> ) </symbol> <symbol> ; </symbol> <keyword> return </keyword> <symbol> ; </symbol> <symbol> } </symbol> <keyword> method </keyword> <keyword> void </keyword> <identifier> run </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> { </symbol> <keyword> var </keyword> <keyword> char </keyword> <identifier> key </identifier> <symbol> ; </symbol> <keyword> var </keyword> <keyword> boolean </keyword> <identifier> exit </identifier> <symbol> ; </symbol> <keyword> let </keyword> <identifier> exit </identifier> <symbol> = </symbol> <keyword> false </keyword> <symbol> ; </symbol> <keyword> while </keyword> <symbol> ( </symbol> <symbol> ~ </symbol> <identifier> exit </identifier> <symbol> ) </symbol> <symbol> { </symbol> <keyword> while </keyword> <symbol> ( </symbol> <identifier> key </identifier> <symbol> = </symbol> <integerConstant> 0 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> let </keyword> <identifier> key </identifier> <symbol> = </symbol> <identifier> Keyboard </identifier> <symbol> . </symbol> <identifier> keyPressed </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <keyword> do </keyword> <identifier> moveSquare </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> key </identifier> <symbol> = </symbol> <integerConstant> 81 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> let </keyword> <identifier> exit </identifier> <symbol> = </symbol> <keyword> true </keyword> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> key </identifier> <symbol> = </symbol> <integerConstant> 90 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> do </keyword> <identifier> square </identifier> <symbol> . </symbol> <identifier> decSize </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> key </identifier> <symbol> = </symbol> <integerConstant> 88 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> do </keyword> <identifier> square </identifier> <symbol> . </symbol> <identifier> incSize </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> key </identifier> <symbol> = </symbol> <integerConstant> 131 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> let </keyword> <identifier> direction </identifier> <symbol> = </symbol> <integerConstant> 1 </integerConstant> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> key </identifier> <symbol> = </symbol> <integerConstant> 133 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> let </keyword> <identifier> direction </identifier> <symbol> = </symbol> <integerConstant> 2 </integerConstant> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> key </identifier> <symbol> = </symbol> <integerConstant> 130 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> let </keyword> <identifier> direction </identifier> <symbol> = </symbol> <integerConstant> 3 </integerConstant> <symbol> ; </symbol> <symbol> } </symbol> <keyword> if </keyword> <symbol> ( </symbol> <identifier> key </identifier> <symbol> = </symbol> <integerConstant> 132 </integerConstant> <symbol> ) </symbol> <symbol> { </symbol> <keyword> let </keyword> <identifier> direction </identifier> <symbol> = </symbol> <integerConstant> 4 </integerConstant> <symbol> ; </symbol> <symbol> } </symbol> <keyword> while </keyword> <symbol> ( </symbol> <symbol> ~ </symbol> <symbol> ( </symbol> <identifier> key </identifier> <symbol> = </symbol> <integerConstant> 0 </integerConstant> <symbol> ) </symbol> <symbol> ) </symbol> <symbol> { </symbol> <keyword> let </keyword> <identifier> key </identifier> <symbol> = </symbol> <identifier> Keyboard </identifier> <symbol> . </symbol> <identifier> keyPressed </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <keyword> do </keyword> <identifier> moveSquare </identifier> <symbol> ( </symbol> <symbol> ) </symbol> <symbol> ; </symbol> <symbol> } </symbol> <symbol> } </symbol> <keyword> return </keyword> <symbol> ; </symbol> <symbol> } </symbol> <symbol> } </symbol> </tokens>