Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: HumbertoAli en 29 de Marzo 2017, 18:57

Título: Java Ejemplo números aleatorios clase Random separar procesos en clases CU00909C
Publicado por: HumbertoAli en 29 de Marzo 2017, 18:57
Buenas quisiera que me corrigieran este ejercicio por favor. (Ejercicio CU00909C del curso avanzado de Java)

Citar
EJERCICIO Nº 1

Crea un programa que elija dos números enteros aleatorios A y B pero no los muestre por pantalla aún. Si los dos números fueran iguales, deberá repetirse la elección hasta que sean distintos. El programa preguntará por quién apostamos, A o B (gana el número más alto). Una vez el usuario haya introducido su apuesta, el programa mostrará el valor de A y B, dirá si hemos ganado la apuesta (acertado el número más alto) o perdido y nos dirá cuántas partidas hemos ganado y perdido hasta el momento. Tras una jugada, nos preguntará si queremos jugar otra vez.

Ejemplo de ejecución:

Apuestas por A o por B ? : A
A saca un 9 y B saca un 6     HAS GANADO!!!
Llevas 1 partidas ganadas y 0 partidas perdidas
Quieres probar otra vez ? (S/N) : S
Apuestas por A o por B ? : A
A saca un 1 y B saca un 8     HAS PERDIDO!!!
Llevas 1 partidas ganadas y 1 partidas perdidas
Quieres probar otra vez ? (S/N) : N
Adiós

mi codigo
Código: [Seleccionar]
import java.util.*;/**
 *
 * @author baseuser
 */
public class Programa2 {
    public static void main(String[]args){
        Random rnd = new Random();
        Scanner sc = new Scanner(System.in);
        int a, b, mayor, ganadas = 0, perdidas = 0;
        String seleccion, opcion;
        do{
            a = (rnd.nextInt(11));
            b = (rnd.nextInt(11));
            System.out.print("Apuestas por A o por B ?:");
            seleccion = sc.next();
            System.out.print("A saca un "+a+" y B saca un "+b);
            if(a > b){
                if(seleccion.equalsIgnoreCase("A")){
                    System.out.println("  HAS GANADO!!!");
                    ganadas++;
                }else if(seleccion.equalsIgnoreCase("B")){
                   System.out.println("  HAS PERDIDO!!!");
                   perdidas++;
                }
            }else{
                if(seleccion.equalsIgnoreCase("B")){
                    System.out.println("  HAS GANADO!!!");
                    ganadas++;
                }else if(seleccion.equalsIgnoreCase("A")){
                   System.out.println("  HAS PERDIDO!!!");
                   perdidas++;
                }
            }
            System.out.println("Llevas "+ganadas+" partidas ganadas y "+perdidas+" partidas perdidas");
            System.out.println("Quieres probar otra vez ? (S/N) :");
            opcion = sc.next();
        }while(opcion.equalsIgnoreCase("S"));
        System.out.println("Adios");
    }
}
Título: Re:números aleatorios clase Random. Enteros con nextInt (CU00909C)
Publicado por: pedro,, en 08 de Abril 2017, 19:17
Hola HumbertoAli.

Al probar el código obtuve este resultado:

Citar
Apuestas por A o por B ?:a
A saca un 8 y B saca un 8  HAS PERDIDO!!!
Llevas 0 partidas ganadas y 1 partidas perdidas
Quieres probar otra vez ? (S/N) :
s
Apuestas por A o por B ?:b
A saca un 10 y B saca un 3  HAS PERDIDO!!!
Llevas 0 partidas ganadas y 2 partidas perdidas
Quieres probar otra vez ? (S/N) :
s
Apuestas por A o por B ?:a
A saca un 7 y B saca un 6  HAS GANADO!!!
Llevas 1 partidas ganadas y 2 partidas perdidas
Quieres probar otra vez ? (S/N) :
n
Adios

Según el enunciado si los dos números fuesen iguales habrá que conseguir que sean distintos.

También comentarte que sería adecuado que empezaras a separar procesos usando más clases o métodos, en este caso podrías crear una clase o método que se encargara de crear los números aleatorios, para las entradas por teclado también se podría crear otra clase o método que se encargase de ello y no tener una clase única que haga muchas cosas distintas.

Saludos. ;D