Direção e sentido numa matriz 20 x 20

1 resposta
PhoenixWings

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.

1 Resposta

Ziguifrid

Deve ser igual a este:

http://www.guj.com.br/posts/list/96623.java

Criado 16 de julho de 2010
Ultima resposta 16 de jul. de 2010
Respostas 1
Participantes 2