Problema metodo

Iniciado por anman, 25 Diciembre 2007, 19:19 PM

0 Miembros y 2 Visitantes están viendo este tema.

Ragnarok

#10
Deberías hacerlo con un fichero de propiedades, que, aunque no son realmente para eso, son muy facilitos de usar.

http://java.sun.com/docs/books/tutorial/i18n/resbundle/propfile.html
http://www.rgagnon.com/javadetails/java-0135.html

También puedes complicarte un poco más y usar xml o bases de datos, pero con usar ficheros de propiedades para empezar ya está bien.

Recuerda leer las normas y plantear las preguntas con claridad, lo de "intentar explicarlo  mejor" deberías haberlo hecho desde el principio.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

egyware

Voy a tomar tu codigo y si se que esta feo pero imaginen lo que yo hacia sin saber nada de java (con suerte sabia para que era System.out.println())
Código (java) [Seleccionar]

public static void preguntasTema1() {

c = new Console();
c.gotoxy(5,2);
c.cputs("Usuario:" +TestJava.nombre);
double ramdom;
         int a=10; //son veinte preguntas asi deberias colocar 20
          a = 20; //ahi sip
         random=Math.random();
         int caso = ((int)(random*a))+1;
     
    switch(caso){
      case 1:
       pregunta1_tema1();
        break; //si por algun motivo devuelve un String poner
                  //return tu_metodo(con algun_parametro);
                  //pero en este caso no lo es
      case 2:
       pregunta2_tema1();
      break; 
      case 3:
      pregunta3_tema1();
      break;
  case 4:
pregunta4_tema1();
break;
  case 5:
    pregunta5_tema1();break;
  case 6:
  pregunta6_tema1();break;
  case 7:
    pregunta7_tema1();break;
  case 8:
    pregunta8_tema1();break;
  case 9:
    pregunta9_tema1();break;
  case 10:
    pregunta10_tema1();break;
  case 11:
    pregunta11_tema1();break;
  case 12:
    pregunta12_tema1();break;
  case 13:
    pregunta13_tema1();break;
  case 14:
    pregunta14_tema1();break;
  case 15:
    pregunta15_tema1();break;
  case 16:
    pregunta16_tema1();break;
  case 17:
    pregunta17_tema1();break;
  case 18:
    pregunta18_tema1();break;
  case 19:
            pregunta19_tema1();break;
  case 20:
    pregunta20_tema1();break;
  }

te ayude un poco pero igual deberias arreglar un poco tu codigo

Aver si aún no se te ocurre aqui va algo
Código (java) [Seleccionar]

public Class Main {
public static void main (String s[]){
System.out.println("Tirando los dados");
int b = 6; //seis posibles respuestas
int caso = ((int)Math.random()*b)+1;
switch(caso){
case 1:
System.out.println("Ha Salido el numero 1");
break;
case 2:
System.out.println("Ha Salido el numero 2");
break;
case 3:
System.out.println("Ha Salido el numero 3");
break;
case 4:
System.out.println("Ha Salido el numero 4");
break;
case 5:
System.out.println("Ha Salido el numero 5");
break;
case 6:
System.out.println("Ha Salido el numero 6");
break;
}//fin de switch
}//fin de main
}//fin de la clase

pero puedo hacer mas pillo aún
Código (java) [Seleccionar]

public Class Main {
public static void main (String s[]){
System.out.println("Tirando los dados");
int a = 6; //seis posibles respuestas
int num = ((int)Math.random()*a)+1;
System.out.println("Ha Salido en el dado el numero *"+num+"*");
}//fin de main
}//fin de la clase

y eso te cambie algunas variables para que sepas para que realmente sirven y como puedes usar ese numero del tipo int para obtener las preguntas que estan en un Array de String
puedes
Código (java) [Seleccionar]

String preguntas[] = new String[2];
static {
s[0] = "Pregunta 1";
s[1] = "pregunta 2";
s[2] = "pregunta 3";
}
public static void main (String args[]){
int num = ((int)Math.random()*3)+1;/*deje immediatamente seteado que son 3 preguntas y nada mas*/
System.out.println(s[num]);
}

Bueno espero que estos ejemplos te sirvan te mucha ayuda
xauuu

anman

El codigo para hacer lo que pedi es este
public static void preguntasTema1() {
c = new Console();
c.gotoxy(5, 2);
c.cputs("Usuario:" + nombre);
// genera preguntas aleatorias.Math.random nos da un numero entre 0 y x
int[] preguntasAleatorias = new int[10];/*


for (int i = 0; i < 10; i++) {// recorremos el vector

int random = (int) (Math.random() * 20) + 1;

while (repetido(random, preguntasAleatorias)) {
random = (int) (Math.random() * 20) + 1;
}
preguntasAleatorias[i] = random;

}// fin de preguntas aleatorias
for (int i = 0; i < preguntasAleatorias.length; i++) {
switch (preguntasAleatorias[i]) {
case 1:
pregunta("","");
                                break;
                        case 2:
                                pregunta("","");
                                break;
}
}
}

// Verificamos que las preguntas no se repitan
public static boolean repetido(int x, int[] preguntasAleatorias) {
// recorremos el vector de preguntasAlaeatorias
for (int i = 0; i < preguntasAleatorias.length; i++)
if (preguntasAleatorias[i] == x)
return true;
return false;
}

pd:gracias a Casidiablo que me ha ayudado a hacerlo