Graficos de tartaruga

7 respostas
J

Alguem já fez o exercício 7.21 do jhtp 6ed.? To com dificuldades na movimentação da tartaruga, coisas do tipo como faze-la caminhar pelo array.
Obrigado

7 Respostas

G

Olá!

O que é jhtp 6ed? É um livro!

Obrigado!

G

Olá!

Sim, J How to program, Deitel!

Desculpe!

Abraços!

J

Irmão gaúcho… como é que tá aí pelos pampas hein? Sim… jhtp é a abreviação em ingles de Java Como Programar 6ºed. ok!?
Abraço

J

Acertei fazer, eu penso que seja isso mesmo… segue a baixo o código pra irriquecer ainda mais o conteudo de pesquisa do portal. Acredito possa auxiliar alguem que futuramente possa passar pela mesma dificuldade.

Abraço

J

Segue a baixo o código da classe main para teste… ainda existem melhoras para serem feitas, por isso se alguem fizer poste aqui, assim podemos contribuir para o desenvolvimento mutuo.

Abraço

J

Pronto já dei uma melhorada… ta bem melhor… um ótimo protótipo do win logo… com pequenos detalhes… não confugurei circulo, nem diagobal, vai só pra uma lado, pro outro pra cima e pra baixo, podendo desenhar ou não ao caminhar…

public class tartaruga1
{

private  int casas;
private  int mov;
private  int linhaAtual=40;
private  int colunaAtual=40;
private  boolean direita=false;
private  boolean esquerda=false;
private  boolean cima=false;
private  boolean baixo=false;
private  int colunaAtualTEMP;
private  int linhaAtualTEMP;
private static String floor[][]=new String[40][40];
private boolean coco=true;



public  void inicio ()
{
	
	for(int linha=0;linha<floor.length;linha++)
	{
		for(int coluna=0;coluna<floor[0].length;coluna++)
		{
			floor[linha][coluna]="   ";
			
		}
		
	}

	floor[35][2]=".Ü.";
	

}


public  void setNdeCasas(int qualquer,int casasREF)
{
casas = (casasREF>0 && casasREF<40)? casasREF : 0;
}

    public void setMovimento(int movREF)
    {
    	mov = ((movREF==3)||(movREF==4)||(movREF==5)||(movREF==6))? movREF :0;
    	
    	if(mov==3)
    	{
    		cima=true;
    		baixo=false;
    		esquerda=false;
    		direita=false;
    	}
    	
    	if(mov==4)
    	{
    		baixo=true;
    		cima=false;
    		esquerda=false;
    		direita=false;
    		
    	}
    	
    	if(mov==5)
    	{
    		direita=true;
    		esquerda=false;
    		baixo=false;
    		cima=false;
    	}
    	
    	if(mov==6)
    	{
    		esquerda=true;
    		direita=false;
    		baixo=false;
    		cima=false;
    	}
  
    }


    
   public void andar()
   {

	   

	   if((baixo==true)&&(cima==false))
	   {
		   
		   linhaAtualTEMP=linhaAtual;
		   colunaAtualTEMP=colunaAtual;
		   limpa();
		   
		linhaAtual+=((linhaAtual+casas<40))?casas:0; 
	   floor[linhaAtual][colunaAtual]=".Ü.";
	   

	   }
	   
	   if((cima==true)&&(baixo==false))
	   {
		  
		   linhaAtualTEMP=linhaAtual;
		   colunaAtualTEMP=colunaAtual;
		   limpa();
		linhaAtual-=((colunaAtual-casas>=0))?casas:0; 
	   floor[linhaAtual][colunaAtual]=".Ü.";

	   }
	   
	   if((esquerda==true)&&(direita==false))
	   {
		   
		   linhaAtualTEMP=linhaAtual;
		   colunaAtualTEMP=colunaAtual;
		   limpa();
		colunaAtual-=((colunaAtual-casas>=0))?casas:0; 
	   floor[linhaAtual][colunaAtual]=".Ü.";

	   }
	   if((direita==true)&&(esquerda==false))
	   {
		   
		   linhaAtualTEMP=linhaAtual;
		   colunaAtualTEMP=colunaAtual;
		   limpa();
		   colunaAtual+=((colunaAtual+casas<40))?casas:0;
	   floor[linhaAtual][colunaAtual]=".Ü.";
	   

	   }
	   coco=false;
   }
   

   public void desenhar()
   {
	   
	   
	   if((direita==true)&&(esquerda==false))
	   {
		   
		   colunaAtualTEMP=colunaAtual;
		   colunaAtual+=((colunaAtual+casas<40))?casas:0;
	   floor[linhaAtual][colunaAtual]=".Ü.";
	
	   for(int coluna=colunaAtualTEMP;coluna<colunaAtual;coluna++)
	   {
	   
	   floor[linhaAtual][coluna]="*";
	   }
	   }
	   
	   
	   if((esquerda==true)&&(direita==false))
	   {
		   
		   colunaAtualTEMP=colunaAtual;
		   colunaAtual-=((colunaAtual-casas>=0))?casas:0;
	   floor[linhaAtual][colunaAtual]=".Ü.";
	
	   for(int coluna=colunaAtualTEMP;coluna>colunaAtual;coluna--)
	   {
	   
	   floor[linhaAtual][coluna]="*";
	   }
	   }
	   
  	   if((baixo==true)&&(cima==false))
	   {
		   
		   linhaAtualTEMP=linhaAtual;
		   linhaAtual+=((linhaAtual+casas<40))?casas:0;
	   floor[linhaAtual][colunaAtual]=".Ü.";
	
	   for(int linha=linhaAtualTEMP;linha<linhaAtual;linha++)
	   {
	   
	   floor[linha][colunaAtual]="*";
	   }
	   }
  	   
  	 if((cima==true)&&(baixo==false))
   {
	  
  		 linhaAtualTEMP=linhaAtual;
	   linhaAtual-=((linhaAtual-casas>=0))?casas:0;
   floor[linhaAtual][colunaAtual]=".Ü.";

   for(int linha=linhaAtualTEMP;linha>linhaAtual;linha--)
   {
   
   floor[linha][colunaAtual]="*";
   }

   
   }
	   
  	coco=true;   
	   
   }

	public  void verCasaAtual()
	{
		inicio();
		for(int linha=0;linha<floor.length;linha++)
		{
			for(int coluna=0;coluna<floor[0].length;coluna++)
			{
				System.out.printf("%3s",floor[linha][coluna]);
				
			}
			System.out.println();
		}
		
		
	}
	
	public void limpa()
	{

floor[linhaAtualTEMP][colunaAtualTEMP]=(coco==true)?"*":"";

}

}


Abraços

J

Se alguem com mais pratica poder da uma avaliada no código pra me dizer como esta meu desempenho em relação a OO eu agradeceria… Dando conselhos, apontando falhas, erros ou sujestões.
Obrigado…

Criado 8 de agosto de 2006
Ultima resposta 10 de ago. de 2006
Respostas 7
Participantes 2