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