Imagine una tortuga mecanica que camina por todo el cuarto, bajo el control de una aplicacion en java. La tortuga sostiene una pluma en una de dos posiciones, arriba o abajo. Mientras la pluma esta abajo, la tortuga va trazando figuras a medida que se va moviendo, y mientras la pluma esta arriba, la tortuga se mueve alrededor libremente, sin trazar nada. En este problema, usted simulara la operacion de la tortuga, y creara un bloc de dibujo computarizado. Utilize un arreglo de 20 x 20 llamado piso, que se inicialice en ceros. Lea los comandos de un arreglo que la contenga. Lleve el registro de la posicion actual de la tortuga en todo momento, y si la pluma se encuentra arriba o abajo. Suponga que la tortuga siempre empieza en posicion (0,0) del piso, con su pluma hacia arriba. A medida que la tortuga se vaya desplazando con la pluma hacia abajo, asigne 1 a los elementos apropiados del arreglo piso. Cuando se de el comando 6, siempre que haya un 1 en el arreglo muestee un asterisco o cualquier caracter. Siempre que haya un cero, mueste un caracter en blanco. " comandos: 1: pluma arriba, 2:pluma abajo 3: voltear a la derecha, 4:voltear a la izquierda, 5,X avanzar hacia delante un numero X de espacios.. 6: imrpimir arreglo.. 9: fin de los datos, centinela.
Este problema, lo vi en un libro, es de Deitel&Deitel, y pues comenze a hacerlo hace unos pocos dias.. el problema fue que al momento de ir avanzando al programa, cada vez mas me perdia XDDDD la verdad es que no se como hacer que la tortuga tome una direccion u otra, asi que cree dos enumeraciones, una para la pluma, y otra para la direccion... este codigo todo lo hize yo, no he depurado ni nada, asi que si le falta algun ";" o hay algun error de escritura, disculpen... el codigo que presento, esta incompleto, en gedit lo tenia mas largo, habia puesto if anidados.. pero despues supe que era mucho lio, y que necesitaba preguntar.
No pido que me escriban el programa, lo que busco es que me den una ayuda, para que encuentre la manera para realizar la aplicacion, no sé podrian guiarme o algo asi. Cabe resaltar que apenas comenze hace 2 meses y medio en java. Lo que no se realizar, es apartir del case 5 xDDD no se como hacer que avanze conforme indique el usuario, no se como hacer para que segun cambien de direccion >.< tenia pensado varios if aninados, lo hize, pero la verdad no me salio mucho que digamos
Muchas gracias de Antemano
Código
import java.util.Scanner; public class Tortuga { private int piso[][] = new int[20][20]; private int centinela = 0; private int avanze = 0; private int filaActiva = 0; private int columnaActiva = 0; private enum Estado = { LEFT, RIGHT }; private enum Pluma = { UP, DOWN }; Estado direccion; Pluma estado; { for(int contador = 0;contador < piso.lenght; contador++) //inicializamos todo el arreglo { for(int contador2 = 0; contador2 < piso[].lenght; contador2++) piso[contador][contador2] = 0; } // termina for System.out.println("Ponga mucha atencion!, estos seran los comandos: \n 1: Pluma arriba\n2: Pluma abajo\n3: Voltear a la derecha\n4: voltear a la izquierda\n5, \"X\": Avanzar hacia delante\n6: Imprimir tablero\n9: Fin del juego"); imprimir(); centinela = entrada.nextInt; //inicia while while( centinela > 9 || centinela <= 0 || centinela == 7 || centinela == 8) { centinela = entrada.nextInt; } while( centinela != 9 ) { switch( centinela ) { case 1: estado = Pluma.UP; break; case 2: estado = Pluma.DOWN; break; case 3: direccion = Estado.RIGHT; break; case 4: direccion = Estado.LEFT; break; avanze = entrada.nextInt(); if( estado == Pluma.UP ) { } break; case 6: imprimir(arreglo[]); break; } centinela = entrada.nextInt; } // termina while } // termina main private static void imprimir() { //inicia imprimir for(int fila = 0; fila < piso.lenght; fila++) { for(int columna = 0; columna < piso[fila].lenght; columna++) } } // termina imprimir private static void imprimir(int arreglo[][]) { //inicia for(int fila = 0; fila < piso.lenght; fila++) { for(int columna = 0; columna < piso[fila].lenght; columna++) } } //termina }