| Ver tema anterior :: Ver siguiente tema |
| Autor |
Mensaje |
LuiSpain Conociendo Foroz

Registrado: 30 Oct 2007
Mensajes: 24
|
Publicado: Mie Dic 05, 2007 8:46 pm Título del mensaje: Java programa Dado |
|
|
hola,
¿alguien me puede ayudar con este programa??
Se trata de escribir una clase Dado que tenga un solo método lanzaDado(). Cada vez que se llama al método éste devuelve un valor aleatorio de tipo int entre 1 y 6, usando el metodo random() del API.
Luego escribe una clase PruebaDado con un main que tire 20 veces del dado y escriba un mensaje con el valor de lanzamiento del dado, no como número sino con la palabra.
Alguna idea???
Saludossssssssssssssss |
|
| Volver arriba |
|
 |
DonDavid Moderador


Registrado: 22 Abr 2004
Mensajes: 1272
Ubicación: Madrid
|
Publicado: Mie Dic 05, 2007 10:04 pm Título del mensaje: |
|
|
Pilla en codigo creo que esta bien... no lo he probado por que lo he hecho asi en 5 min y alomejor me he colado en algo, pero pruebalo tu y revisado, si no entiendes algo avisame... pero vamos que es un codigo muy muy sencillo.
Es algun trabajo de clase??o simplemente ocio.
| Código: |
class pruebaDado{
public static void main (String args[]){
int numero = -1;
Dado miDado = new Dado();
for (int i = 0;i <11;i++){
numero = miDado.lanzarDado();
switch numero{
case 1:
System.put.println("Tirada "+i+": uno");
break;
case 2:
System.put.println("Tirada "+i+": dos");
break;
case 3:
System.put.println("Tirada "+i+": tres");
break;
case 4:
System.put.println("Tirada "+i+": cuatro");
break;
case 5:
System.put.println("Tirada "+i+": cinco");
break;
case 6:
System.put.println("Tirada "+i+": seis");
break;
default:
System.put.println("Tirada NO VALIDA);
break;
}
}
}
}
class Dado();
public void Dado();
public int lanzarDado(){
int numero = -1;
numero = (int) ((Math.random()*6+1);
retunr numero;
}
}
|
_________________ La mayor sabiduría que existe es conocerse a uno mismo.
Te conoces tu??
|
|
| Volver arriba |
|
 |
LuiSpain Conociendo Foroz

Registrado: 30 Oct 2007
Mensajes: 24
|
Publicado: Mie Dic 05, 2007 10:35 pm Título del mensaje: no funciona |
|
|
Hola DonDavid;
Parece que la clase Dado, no compila bien ¿la pudes revisar?, entre otras cosa es xq no as puesto {
Con { seria asi:
public class Dado{
public void Dado() {
}
public int lanzarDado(){
int numero = -1;
numero = (int) ((Math.random()*6+1);
return numero;
}
}
Pero aun asi m da el siguiente error en la linea de "numero = (int) ((Math.random()*6+1); " :
Dado.java:7: ')' expected
numero = (int) ((Math.random()*6+1);
^
1 error
En la clase pruebaDado, m da el mismo error.
Xq puede ser???
Un saludo y gracias. |
|
| Volver arriba |
|
 |
DonDavid Moderador


Registrado: 22 Abr 2004
Mensajes: 1272
Ubicación: Madrid
|
Publicado: Mie Dic 05, 2007 10:39 pm Título del mensaje: |
|
|
tienes que importar al principio de la clase las librerias
si pones arriba import java.math; funciona
si asi tampoco buscaa que libreria pertenece... o pon import java.* que te importa todo el api.. es muy cutre pero funciona. _________________ La mayor sabiduría que existe es conocerse a uno mismo.
Te conoces tu??
|
|
| Volver arriba |
|
 |
LuiSpain Conociendo Foroz

Registrado: 30 Oct 2007
Mensajes: 24
|
Publicado: Mie Dic 05, 2007 11:14 pm Título del mensaje: |
|
|
q grande sooos Doooonnn!
Si funciona si, habia q poner import java.math.*
Ahora aver si comprendo como funciona XD.
Un saludo y gracias |
|
| Volver arriba |
|
 |
LuiSpain Conociendo Foroz

Registrado: 30 Oct 2007
Mensajes: 24
|
Publicado: Mie Dic 05, 2007 11:34 pm Título del mensaje: |
|
|
lo q no entiendo es esta linea: numero = (int) ((Math.random()*6+1));
¿¿por que *6+1 ??? ¿¿ y lo de (int)??¿¿no se supone que el metodo random devuelve un double???
Un saludo |
|
| Volver arriba |
|
 |
DonDavid Moderador


Registrado: 22 Abr 2004
Mensajes: 1272
Ubicación: Madrid
|
Publicado: Jue Dic 06, 2007 12:10 am Título del mensaje: |
|
|
En un dado solo salen numero enteros.. por eso el (int). Eso es un castin que te pasa de double a entero truncando las cifras decimales, es decir sin redondeo.
Y lo de 6+1 es por que el Math.random, devuelve un decimal entre 0 y 1, y entonces si a cualkier numero entre 0 y 1 le multiplicas por 6 y le sumas 1 y te kedas con la parte entera, solo obtienes numeros entre 1 y6 que es lo que puedes obtener con un dado. _________________ La mayor sabiduría que existe es conocerse a uno mismo.
Te conoces tu??
|
|
| Volver arriba |
|
 |
LuiSpain Conociendo Foroz

Registrado: 30 Oct 2007
Mensajes: 24
|
Publicado: Jue Dic 06, 2007 12:24 am Título del mensaje: |
|
|
ahhhh, comprendo...
y lo de numero = -1??? lo e kitado y funciona tb.... |
|
| Volver arriba |
|
 |
DonDavid Moderador


Registrado: 22 Abr 2004
Mensajes: 1272
Ubicación: Madrid
|
Publicado: Jue Dic 06, 2007 12:31 am Título del mensaje: |
|
|
es la inicializacion de la variable entera... yo tengo la constumbre de inicializar todo... o con constructores genericos si son objetos o con valores poco comunes para tipos basicos.. asi por ejemplo si el metodo de donde sacas el dato funciona mal o te da excepcion y no devulve nada.. la tienes inicializada y no lanzas otra excepcion y sabes que no ha funcionado por que la variable tiene el valor de inicio. Los enteros siempre se suelen inicializar a 0 o -1 _________________ La mayor sabiduría que existe es conocerse a uno mismo.
Te conoces tu??
|
|
| Volver arriba |
|
 |
LuiSpain Conociendo Foroz

Registrado: 30 Oct 2007
Mensajes: 24
|
Publicado: Jue Dic 06, 2007 12:35 am Título del mensaje: |
|
|
| ah ok ok. Gracias por tu interes, un saludo tio y GRACIASS!!!!!!!! |
|
| Volver arriba |
|
 |
|
|
|