Pilota um módulo lunar neste universo. A cada passo da simulação recebe a posição, velocidade, ângulo e potência do módulo e deve enviar um comando a ajustar o ângulo e a potência.
[!java|c]double [/!]getX()[!scala]:Double[/!] [!java|c]double [/!]getY()[!scala]:Double[/!]Obter (Get) as posições X e Y do módulo.
[!java|c]double [/!]getSpeedX()[!scala]:Double[/!] [!java|c]double [/!]getSpeedY()[!scala]:Double[/!]Obter a velocidade horizontal e vertical do módulo.
[!java|c]double [/!]getAngle()[!scala]:Double[/!] [!java|c]void [/!]setDesiredAngle([!java|c]double [/!]desiredAngle[!scala]:Double[/!])Obter ou ajustar o ângulo do módulo.
[!java|c]int [/!]getThrust()[!scala]:Int[/!] [!java|c]void [/!]setDesiredThrust([!java|c]int [/!]thrust[!scala]:Int[/!])Obter ou ajustar a potência do módulo.
[!java|c]int [/!]getFuel()[!scala]:Int[/!]Obter o combustível restante no módulo. A cada passo da simulação o módulo consome tantas unidades de combustível como a potência atual. Uma vez que fique sem combustível entra em queda livre. Portanto, cuidado!
[!java]List<Point> [/!]getGround() [!scala]:List[Point][/!]Obter os vértices do perfil do solo da esquerda para a direita. [!java|scala]Pode recuperar as coordenadas X e Y de cada ponto com os métodos correspondentes do seu ponto:
p.x()
e
p.y()
.[/!] [!python]Cada ponto é uma array de dois inteiros a
denotar respetivamente as coordenadas X e Y de cada ponto.[/!]