O objetivo desta série de exercícios é fazer o buggle percorrer seu mundo. Ele deve numerar as células por onde passa para mostrar a ordem do caminho.
O loop principal de seu código deve ser algo como:
enquanto não estiver na posição final vá para a próxima posição rotule a célula com um número
Ao contrário dos exercícios que vimos até agora, não vamos usar os
métodos avançar()
, recuar()
e similares. Ao
invés disto, vamos calcular as coordenadas da próxima posição
de buggle e usar o método setPos(x, y)
para
teletransportar o buggle diretamente para esta posição. Por
exemplo, setPos(3, 5)
teletransporta o buggle para a
célula onde x=3 e y=5.
Sua primeira tarefa é escrever uma função booleana indicando se o
buggle alcançou a posição final ou não, ou seja se ele alcançou o
canto inferior direito do mundo. Para isto, você pode usar
getWorldWidth()
e getWorldHeight()
que
retornam respectivamente a largura e altura do mundo. Seu teste é deve
comparar a posição atual do buggle (que vocẽ pode acessar com
getX()
e getY()
) com as dimensões do mundo.
Cuidado, a primeira linha e a primeira coluna são numeradas com 0 e
não com 1...
Then, you have to write the code to reach the next position. In this exercise, you have to traverse the world row after row. So, if you are at the bottom of a row, you have to move to the top of next row, and you have to move to the cell below else.
Neste ponto, você pode lançar seu programa para verificar se o buggle percorre corretamente o mundo na ordem esperada, e que ele pára quando tem que parar. Use oo botão stop se o buggle não parar corretamente.
It is now time to write down the cell numbers. For that, you will need a
counter initialiser to zero at the beginning of your code, and incremented
by one at each step (for example with counter += 1;
). Then,
you have to use writeMessage()
to write the value on the
ground.
You probably need to write the first [!java|scala|c]or last [/!]value out of
the main loop [!java|scala|c], depending on whether you prefer to use a
while
or a do/while
one[/!].
Sua vez...