Java - Ciclo interminable

 
Vista:

Ciclo interminable

Publicado por Daniel Castro (1 intervención) el 17/06/2009 06:11:19
Soy nuevo programando, y me pusieron de tarea hacer un programa que simule el juego craps de casino, las reglas son estas: 2. Escribir un programa JAVA para simular el juego de dados conocido “craps”. Este juego consiste en las siguientes reglas: Un jugador tira dos dados. Cada dado tiene 6 caras. Las caras contienen 1, 2, 3, 4, 5 y 6 puntos. Una vez que los dados se hayan detenido, se calcula la suma de los puntos en las dos caras superiores. Si a la primera tirada, la suma es 7, o bien 11, el jugador gana. Si en la primera tirada, la suma es 2, 3 o 12 (conocido como “craps”), el jugador pierde (es decir, la casa “gana”). Si en la primera tirada, la suma es 4, 5, 6, 8, 9 o 10, entonces dicha suma se convierte en el “punto” o “tirada”. Para ganar, el jugador deberá seguir tirando los dados, hasta que haga su “punto”. El jugador perderá si antes de hacer su “tirada” o “punto” la suma de los dados dá 7.

el programa puede ser que de otra forma sea mas sencillo, pero en vez de que me den otro metodo me gustaria que me digan porque el ciclo while no se detiene, asi si lo soluciono podre explicar como lo hize...ya que podria buscarlo por internet y copiarlo pero me gusta hacerlos yo mismo

AQUI ESTA EL PROGRAMA (gracias de ante mano)

package juegocraps;
import java.util.Random;
import java.util.Scanner;
/**
*
* @author Owner
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int dado1, dado2;
int punto = 0;
Scanner en = new Scanner (System.in);
System.out.println("Digite LANZAR para tirar los dados");
en.next();
System.out.println("Lanzamiento de dados:");
dado1 = (int)(Math.random() * 6) + 1;
dado2 = (int)(Math.random() * 6) + 1;
System.out.println(dado1);
System.out.println(dado2);

int suma = dado1 + dado2;

if (suma == 7 || suma == 11){
System.out.println("Felicidades has ganado");
}
if (suma == 2 || suma == 3 || suma == 12){
System.out.println("Lo siento has perdido");
}
if (suma !=7 && suma != 11 && suma != 2 && suma != 3 && suma != 12){
punto = suma;
System.out.println("Su Punto es: "+punto);
System.out.println("Digite LANZAR para tirar los dados otra vez");
en.next();
dado1 = (int)(Math.random() * 6) + 1;
dado2 = (int)(Math.random() * 6) + 1;
System.out.println(dado1);
System.out.println(dado2);
suma = dado1 + dado2;
if (suma == punto){
System.out.println("Felicidades has ganado");
}
if (suma == 7){
System.out.println("Lo siento has perdido");
}
do {

System.out.println("Su Punto es: "+punto);
System.out.println("Digite LANZAR para tirar los dados otra vez");
en.next();
dado1 = (int)(Math.random() * 6) + 1;
dado2 = (int)(Math.random() * 6) + 1;
System.out.println(dado1);
System.out.println(dado2);
suma = dado1 = dado2;
} while (suma != 7 || suma != punto);
if (suma == 7){
System.out.println("Lo siento has perdido");
}
if (suma == punto){
System.out.print("Felicidades has ganado");
}

}

}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ciclo interminable

Publicado por cucu (14 intervenciones) el 17/06/2009 23:16:20
hola, no me he leido ni tu enunciado ni tu código entero, basta con el while, si eres más conciso recibirás más ayuda (es solo un consejo), pero vamos, esta línea suena mal:

suma = dado1 = dado2;

o imprime por pantalla suma para ver donde está el error, lo de imprimir lso datos por pantalla suele ayudar mucho.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar