Boa noite a todos. Estou tentando implementar um algoritmo referente ao exercício dos Deitel “Gráficos de Tartaruga”, Cap. 7. Gostaria de saber como eu posso fazer para percorrer uma matriz a partir do ponto de parada da “tartaruga”. Ex.: supondo que ela tenha dado 20 passos e tenha parado numa posição x, como faço para os for aninhados no método “Avancar” fazerem com que a tartaruga continue a percorrer a matriz dessa posição x (pois como o i é inicializado como zero nos for, a posição
da trajetória voltará a ser a inicial (0,0) ). Segue abaixo o que eu já fiz:
import java.util.Scanner;
public class GraficoTartaruga {
private boolean direita, esquerda;
private boolean caneta = false; // decide se a tartaruga irá marcar o seu trajeto
private int floor[][] =
{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
public void canetaCima(){
caneta = false; // a tartaruga deixará de marcar o seu trajeto
}
public void canetaBaixo() {
caneta = true; // a tartaruga marcará o seu trajeto
}
public void Direita() {
direita = true;
if(esquerda)
esquerda = false;
}
public void Esquerda() {
esquerda = true;
if(direita)
/* não é possível que hajam as duas direções ao mesmo tempo
* logo configure um dos sentidos como false
*/
direita = false;
}
public void Avancar() {
int i, j;
int stop = 0;
int andar = 0;
Scanner input = new Scanner(System.in);
System.out.println("Digite a quantidade de passos da tartaruga: ");
andar = input.nextInt();
for(i = 0; i < floor.length; i++){
for(j = 0; j < floor[i].length; j++ ){
}
}
}
public void exibirCaminho() {
}
}
Obrigado pela ajuda.