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
-
Buenas quisiera que me corrigieran este ejercicio por favor. (Ejercicio CU00909C del curso avanzado de Java)
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
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");
}
}
-
Hola HumbertoAli.
Al probar el código obtuve este resultado:
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