Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Kenkox

#11

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 (java) [Seleccionar]
import java.util.Scanner;

public class Tortuga
{
Scanner entrada = new Scanner( System.in );
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;
public static void main( String args[] )
{
                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();
System.out.println("La tortuga iniciara en el espacio [0][0]...Por favor inserte el comando");
centinela = entrada.nextInt;
                 //inicia while
while( centinela > 9 || centinela <= 0 || centinela == 7 || centinela == 8)
{
System.out.println("Por favor inserte un numero valido");
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;
case 5: System.out.println("Por favor, inserte el numero de espacios para avanzar");
avanze = entrada.nextInt();
if( estado == Pluma.UP )
{
            }
break;
case 6: imprimir(arreglo[]);
break;
}

System.out.println("Por favor inserte otro comando");
centinela = entrada.nextInt;
} // termina while


} // termina main

private static void imprimir()
{ //inicia imprimir
System.out.println("\nAhora mismo te mostraremos el tablero:");
for(int fila = 0; fila < piso.lenght; fila++)
{
for(int columna = 0; columna < piso[fila].lenght; columna++)
System.out.printf("%d ", piso[fila][columna] );
System.out.println("");
}

} // termina imprimir

private static void imprimir(int arreglo[][])
{ //inicia
System.out.println("\nAhora mismo te mostraremos el tablero:");
for(int fila = 0; fila < piso.lenght; fila++)
{
for(int columna = 0; columna < piso[fila].lenght; columna++)
System.out.printf("%d ", piso[fila][columna] );
System.out.println("");
}
} //termina
}
#12
Gracias, ya pude *-*
#13
Soy nuevo en esto, tengo 14 años, el primer desafio estubo muy sencillo, pero el segundo, me estoy literalmente matando de tanto pensar y no poder =/ muy bien, con el firebug pude ver todo el codigo fuente de la "pagina", tambien consegui el codigo del script:
Citar
function ver (cod) {
if (cod.length != 16){
alert("Codigo No Valido");
return false;
}
var codx =new Array(cod);
var chk = '';
var tmp;
var cvs;
var cvd;
cvd = cod.substr(15,1);
cod = cod.substr(0,15);
if (cod.length != 15 || IsNumeric(cod) == false){
alert("Codigo No Valido");
return false;
}
for (i=0;i<cod.length;i++){
   if (i%2 == 0){
   tmp = cod.substring(i,i+1) * 1;
      }
   else{
   tmp = cod.substring(i,i+1) * 2;
   }
     if (tmp >= 10){
  tmp = tmp.toString();
  tmp = tmp.substr(0,1) + tmp.substr(1,1);
  }
chk = chk.concat(tmp);
}
tmp = '';
for (i=0;i<chk.length;i++){
tmp = (tmp*1) + (chk.charAt(i)*1);
}
tmp = tmp.toString();
chk = (tmp.substr(0,1)*1) + (tmp.substr(1,1)*1);
chk = chk * 10;
chk = (chk*1) - (tmp*1);
cvs = chk % 10;
  if (cvs == cvd){
    return true;
  }
  else{
  alert("Codigo No Valido");
  return false;
  }
}
function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++)
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         IsNumber = false;
         }
      }
   return IsNumber;
      }

estuve viendo en que consistia el javascript, pero no pude encontrar el codigo de acceso, alguien podria guiarme? despues de esto, que sigue o que debo de hacer o en que parte debo fijarme =/