class AirBalloon : Balloon { override fun begin() { super.begin() direction = SOUTH } override fun roll( dx : int ) { super.roll(dx) actor.direction -= Angle.degrees(90 * dx) } override fun myTurn() { val south = lookSouth() if (south.squashable( SOUTH )) { moveSouth() } else { if ( south.rounded( NORTH_WEST ) && canRoll(-1) ) { roll( -1 ) } else if ( south.rounded( NORTH_EAST ) && canRoll(1) ) { roll( 1 ) } } } }