1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
<!-- Please don't translate this file but l10n/missions/plm.pot (see https://github.com/oster/PLM/wiki/Working-on-translations) -->
<h2>Percorrer pelas colunas</h2>
<p>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.</p>
<p>O loop principal de seu código deve ser algo como:</p>
<pre>
enquanto não estiver na posição final
vá para a próxima posição
rotule a célula com um número
</pre>
<p>Ao contrário dos exercícios que vimos até agora, não vamos usar os
métodos <code>avançar()</code>, <code>recuar()</code> e similares. Ao
invés disto, vamos calcular as coordenadas da próxima posição
de buggle e usar o método <code>setPos(x, y)</code> para
<i>teletransportar</i> o buggle diretamente para esta posição. Por
exemplo, <code>setPos(3, 5)</code> teletransporta o buggle para a
célula onde x=3 e y=5.</p>
<p>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
<code>getWorldWidth()</code> e <code>getWorldHeight()</code> que
retornam respectivamente a largura e altura do mundo. Seu teste é deve
comparar a posição atual do buggle (que vocẽ pode acessar com
<code>getX()</code> e <code>getY()</code>) com as dimensões do mundo.<br/>
Cuidado, a primeira linha e a primeira coluna são numeradas com 0 e
não com 1...</p>
<p>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.</p>
<p>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 <b>stop</b> se o buggle não parar
corretamente.</p>
<p>Agora é hora de escrever os números das células. Para isto, você vai
precisar de um contador iniciando em zero no começo do seu código, e
incrementar de um em cada passo (por exemplo com <code>counter +=
1;</code>). Então, você terá que usar <code>escreverMensagem()</code>
para escrever o valor no chão.
</p>
<p>Você provavelmente vai precisar escrever o primeiro [!java|scala|c]ou
último [/!]valor fora do loop principal [!java|scala|c], dependendo se
você prefere usar um <code>while</code> ou um
<code>do/while</code>[/!].</p>
<p>Sua vez...</p>
|