package quartaQuestao;
public class TurtleGraphics {
private String[][] piso;
private String sentidoCaneta;
private int[] posicaoAtual;
public TurtleGraphics() {
this.piso = new String[20][20];
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 20; j++) {
this.piso[i][j] = "0";
}
}
this.sentidoCaneta = "up";
this.posicaoAtual = new int[2];
this.posicaoAtual[0] = 0;
this.posicaoAtual[1] = 0;
}
public String[][] getPiso() {
return piso;
}
public void setPiso(String[][] piso) {
this.piso = piso;
}
public String getSentidoCaneta() {
return sentidoCaneta;
}
public void setSentidoCaneta(String sentidoCaneta) {
this.sentidoCaneta = sentidoCaneta;
}
public int[] getPosicaoAtual() {
return posicaoAtual;
}
public void setPosicaoAtual(int[] posicaoAtual) {
this.posicaoAtual = posicaoAtual;
}
public void desenharComando(String instrucoes) {
String direcao = "N";
for (int i = 0; i < instrucoes.length(); i++) {
if (instrucoes.equals("1")) {
this.sentidoCaneta = "up";
}
if (instrucoes.equals("2")) {
this.sentidoCaneta = "down";
}
if (instrucoes.equals("3")) {
if (direcao.equals("N")) { //N = norte , L = leste, S = Sul, O = oeste
direcao = "L";
}
else if (direcao.equals("L")) {
direcao = "S";
}
else if (direcao.equals("S")) {
direcao = "O";
}
else if (direcao.equals("O")) {
direcao = "N";
}
}
if (instrucoes.equals("4")) {
if (direcao.equals("N")) {
direcao = "O";
}
else if (direcao.equals("O")) {
direcao = "S";
}
else if (direcao.equals("S")) {
direcao = "L";
}
else if (direcao.equals("L")) {
direcao = "N";
}
}
if (instrucoes.charAt(0) == 53 && this.sentidoCaneta.equals("down")) {
int casas = 0;
int casasAuxiliar = 0;
if (instrucoes.length() == 3) {
casas = Integer.parseInt(instrucoes.substring(2,3));
}
else if (instrucoes.length() == 4) {
casas = Integer.parseInt(instrucoes.substring(2,4));
}
casasAuxiliar = casas;
if (direcao.equals("N")) {
if (this.posicaoAtual[0] - casas >= 0 && this.posicaoAtual[0] - casas <= 19) {
for (int k = this.posicaoAtual[0]; casas > 0; k--) {
this.piso[k][this.posicaoAtual[1]] = "1";
casas--;
}
this.posicaoAtual[0] = this.posicaoAtual[0] - casasAuxiliar;
}
}
else if (direcao.equals("O")) {
if (this.posicaoAtual[1] - casas >= 0 && this.posicaoAtual[1] - casas <= 19) {
for (int k = this.posicaoAtual[1]; casas > 0; k--) {
this.piso[this.posicaoAtual[0]][k] = "1";
casas--;
}
this.posicaoAtual[1] = this.posicaoAtual[1] - casasAuxiliar;
}
}
else if (direcao.equals("S")) {
if (this.posicaoAtual[0] + casas >= 0 && this.posicaoAtual[0] + casas <= 19) {
for (int k = this.posicaoAtual[0]; casas > 0; k++) {
this.piso[k][this.posicaoAtual[1]] = "1";
casas--;
}
this.posicaoAtual[0] = this.posicaoAtual[0] + casasAuxiliar;
}
}
else if (direcao.equals("L")) {
if (this.posicaoAtual[1] + casas >= 0 && this.posicaoAtual[1] + casas <= 19) {
for (int k = this.posicaoAtual[1]; casas > 0; k++) {
this.piso[this.posicaoAtual[0]][k] = "1";
casas--;
}
this.posicaoAtual[1] = this.posicaoAtual[1] + casasAuxiliar;
}
}
}
if (instrucoes.equals("6")) {
for (int k = 0; k < 20; k++){
for (int m = 0; m < 20; m++) {
if (this.piso[k][m].equals("1")) {
this.piso[k][m] = "*";
}
else if (this.piso[k][m].equals("0")) {
this.piso[k][m] = " ";
}
}
}
}
}
}
}