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
Graficos de tartaruga
7 Respostas
Olá!
O que é jhtp 6ed? É um livro!
Obrigado!
Olá!
Sim, J How to program, Deitel!
Desculpe!
Abraços!
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
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
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
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
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…