Don't like ads? PRO users don't see any ads ;-)
Guest

classe auxiliar turtle

By: a guest on May 8th, 2012  |  syntax: Java  |  size: 3.91 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. package quartaQuestao;
  2.  
  3. public class TurtleGraphics {
  4.         private String[][] piso;
  5.         private String sentidoCaneta;
  6.         private int[] posicaoAtual;
  7.        
  8.         public TurtleGraphics() {
  9.                 this.piso = new String[20][20];
  10.                
  11.                 for (int i = 0; i < 20; i++) {
  12.                         for (int j = 0; j < 20; j++) {
  13.                                 this.piso[i][j] = "0";
  14.                         }
  15.                 }
  16.                        
  17.                 this.sentidoCaneta = "up";
  18.                
  19.                 this.posicaoAtual = new int[2];
  20.                 this.posicaoAtual[0] = 0;
  21.                 this.posicaoAtual[1] = 0;
  22.         }
  23.  
  24.         public String[][] getPiso() {
  25.                 return piso;
  26.         }
  27.  
  28.         public void setPiso(String[][] piso) {
  29.                 this.piso = piso;
  30.         }
  31.  
  32.         public String getSentidoCaneta() {
  33.                 return sentidoCaneta;
  34.         }
  35.  
  36.         public void setSentidoCaneta(String sentidoCaneta) {
  37.                 this.sentidoCaneta = sentidoCaneta;
  38.         }
  39.  
  40.         public int[] getPosicaoAtual() {
  41.                 return posicaoAtual;
  42.         }
  43.  
  44.         public void setPosicaoAtual(int[] posicaoAtual) {
  45.                 this.posicaoAtual = posicaoAtual;
  46.         }
  47.        
  48.         public void desenharComando(String instrucoes) {
  49.                 String direcao = "N";
  50.                
  51.                 for (int i = 0; i < instrucoes.length(); i++) {
  52.                         if (instrucoes.equals("1")) {
  53.                                 this.sentidoCaneta = "up";
  54.                         }
  55.                        
  56.                         if (instrucoes.equals("2")) {
  57.                                 this.sentidoCaneta = "down";
  58.                         }
  59.                        
  60.                         if (instrucoes.equals("3")) {
  61.                                 if (direcao.equals("N")) {     //N = norte , L = leste, S = Sul, O = oeste
  62.                                         direcao = "L";                                                                                         
  63.                                 }
  64.  
  65.                                 else if (direcao.equals("L")) {
  66.                                         direcao = "S";
  67.                                 }
  68.  
  69.                                 else if (direcao.equals("S")) {
  70.                                         direcao = "O";
  71.                                 }
  72.  
  73.                                 else if (direcao.equals("O")) {
  74.                                         direcao = "N";
  75.                                 }
  76.                         }
  77.                        
  78.                         if (instrucoes.equals("4")) {
  79.                                 if (direcao.equals("N")) {
  80.                                         direcao = "O";
  81.                                 }
  82.  
  83.                                 else if (direcao.equals("O")) {
  84.                                         direcao = "S";
  85.                                 }
  86.  
  87.                                 else if (direcao.equals("S")) {
  88.                                         direcao = "L";
  89.                                 }
  90.  
  91.                                 else if (direcao.equals("L")) {
  92.                                         direcao = "N";
  93.                                 }
  94.                         }
  95.                        
  96.                         if (instrucoes.charAt(0) == 53 && this.sentidoCaneta.equals("down")) {
  97.                                 int casas = 0;
  98.                                 int casasAuxiliar = 0;
  99.                                
  100.                                 if (instrucoes.length() == 3) {
  101.                                         casas = Integer.parseInt(instrucoes.substring(2,3));
  102.                                 }
  103.                                
  104.                                 else if (instrucoes.length() == 4) {
  105.                                         casas = Integer.parseInt(instrucoes.substring(2,4));
  106.                                 }
  107.                                
  108.                                 casasAuxiliar = casas;
  109.                                
  110.                                 if (direcao.equals("N")) {
  111.                                         if (this.posicaoAtual[0] - casas >= 0 && this.posicaoAtual[0] - casas <= 19) {
  112.                                                 for (int k = this.posicaoAtual[0]; casas > 0; k--) {
  113.                                                         this.piso[k][this.posicaoAtual[1]] = "1";
  114.                                                         casas--;
  115.                                                 }
  116.                                                
  117.                                                 this.posicaoAtual[0] = this.posicaoAtual[0] - casasAuxiliar;
  118.                                         }
  119.                                 }
  120.  
  121.                                 else if (direcao.equals("O")) {
  122.                                        
  123.                                         if (this.posicaoAtual[1] - casas >= 0 && this.posicaoAtual[1] - casas <= 19) {
  124.                                                 for (int k = this.posicaoAtual[1]; casas > 0; k--) {
  125.                                                         this.piso[this.posicaoAtual[0]][k] = "1";
  126.                                                         casas--;
  127.                                                 }
  128.                                        
  129.                                                 this.posicaoAtual[1] = this.posicaoAtual[1] - casasAuxiliar;
  130.                                         }      
  131.                                 }
  132.  
  133.                                 else if (direcao.equals("S")) {
  134.                                        
  135.                                         if (this.posicaoAtual[0] + casas >= 0 && this.posicaoAtual[0] + casas <= 19) {
  136.                                                 for (int k = this.posicaoAtual[0]; casas > 0; k++) {
  137.                                                         this.piso[k][this.posicaoAtual[1]] = "1";
  138.                                                         casas--;
  139.                                                 }
  140.                                        
  141.                                                 this.posicaoAtual[0] = this.posicaoAtual[0] + casasAuxiliar;
  142.                                         }
  143.                                 }
  144.  
  145.                                 else if (direcao.equals("L")) {
  146.                                         if (this.posicaoAtual[1] + casas >= 0 && this.posicaoAtual[1] + casas <= 19) {
  147.                                                 for (int k = this.posicaoAtual[1]; casas > 0; k++) {
  148.                                                         this.piso[this.posicaoAtual[0]][k] = "1";
  149.                                                         casas--;
  150.                                                 }
  151.                                        
  152.                                                 this.posicaoAtual[1] = this.posicaoAtual[1] + casasAuxiliar;
  153.                                         }
  154.                                 }
  155.                         }
  156.                        
  157.                         if (instrucoes.equals("6")) {
  158.                                 for (int k = 0; k < 20; k++){
  159.                                         for (int m = 0; m < 20; m++) {
  160.                                                 if (this.piso[k][m].equals("1")) {
  161.                                                         this.piso[k][m] = "*";
  162.                                                 }
  163.                                                
  164.                                                 else if (this.piso[k][m].equals("0")) {
  165.                                                         this.piso[k][m] = " ";
  166.                                                 }
  167.                                         }
  168.                                 }
  169.                         }
  170.                        
  171.                 }
  172.         }
  173.        
  174. }