[Codigo Basico] Adivinar un numero en 10 oportunidades

Iniciado por Only, Octubre 30, 2011, 04:00:35 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 30, 2011, 04:00:35 PM Ultima modificación: Febrero 08, 2014, 05:25:18 PM por Expermicid
Descripcion :

Programe una aplicacion donde el usuario intente adivinar un numero entre 1 y 500 en menos de 10 oportunidades

Nota : dependiendo del numero que de el usuario ,indique si el numero a adivinar es mayor o menor

Código: java
import javax.swing.*;

/**
* Write a description of class AdivinarNumero here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class AdivinarNumero
{
    /**
     * An example of a method - replace this comment with your own
     *
     * @param  y   a sample parameter for a method
     * @return     the sum of x and y
     */
    public static void main (String [] args)
    {
        // put your code here
        int numUsuario;
        int numAdivinar;
        int oportunidad;
       
        //definir el numero que se va a adivinar
        numAdivinar = 250;
        oportunidad = 1;
       
        //se utilizara un ciclo DO
        do
        {
            numUsuario = Integer.parseInt(JOptionPane.showInputDialog(null,"Que numero crees que sea? (1-500)"));
                if(numUsuario == numAdivinar)
                {
                    JOptionPane.showMessageDialog(null,"GANASTE :)" + "\nEl numero es : " + numAdivinar);
                    oportunidad = 10;
                }
                else
                {
                    JOptionPane.showMessageDialog(null,"Sigue Intentando" + "\nOportunidad #" + oportunidad);
                    if(numUsuario<numAdivinar)
                    {
                        JOptionPane.showMessageDialog(null,"El numero es mayor");   
                    }
                    else
                    {
                        JOptionPane.showMessageDialog(null,"El numero es menor");     
                    }
                }
                oportunidad++;
        }
        while(oportunidad <= 10);
    }
}

Noviembre 06, 2011, 10:23:41 AM #1 Ultima modificación: Abril 18, 2013, 12:53:07 PM por Expermicid
esto es una especie de busqueda binaria no?

O almenos induce al usuario a realizar una XD

Estaria bueno que genere el numero a buscar de forma aleatoria

Se le agregaria esto cuando se declaran las variables y queda:

Código: java
        Random aleatorio = new Random();
       
        //definir el numero que se va a adivinar
       
        numAdivinar = aleatorio.nextInt(500);


Y si queres saber que numero tira, para probar, sino te moris de angustia buscando XD:

Código: java
System.out.print(numAdivinar);


Eso va antes de que entre al Do While

Saludos

Noviembre 06, 2011, 02:37:31 PM #2 Ultima modificación: Abril 18, 2013, 12:53:17 PM por Expermicid
Me dieron ganas de hacer uno XD bueno el mio te da 3 oportunidades de adivinar un numero del 1 al 10 generado por la computadora aletoriamente

Código: java
import java.util.*;

class AdivinaelNumero
{
    public static void main (String[] args)
    {
        int Numero, Constante, Intentos, i=0;
        Constante = (int)(Math.random()*10);
        Scanner Leer = new Scanner(System.in);
        do
        {
            System.out.println("Te quedan " +(3-i) +" Intentos");
            System.out.println("Adivina el numero =): ");
            Numero = Leer.nextInt();
            if(Constante > Numero)
            {
                System.out.println("El numero es mayor =( \n");
            }
            else
            {
                System.out.println("El numero es menor =(\n");
            }
            i++;
        }
        while(Numero != Constante && i <3);
        if(Numero == Constante)
        {
        System.out.println("Haz adivinado el numero¡¡¡ =)");
        }
    }
}

Noviembre 06, 2011, 11:03:29 PM #3 Ultima modificación: Abril 18, 2013, 12:53:44 PM por Expermicid
Cita de: [Corruptedyte link=topic=7992.msg28354#msg28354 date=1320601051]
Me dieron ganas de hacer uno XD bueno el mio te da 3 oportunidades de adivinar un numero del 1 al 10 generado por la computadora aletoriamente

Código: java
import java.util.*;

class AdivinaelNumero
{
    public static void main (String[] args)
    {
        int Numero, Constante, Intentos, i=0;
        Constante = (int)(Math.random()*10);
        Scanner Leer = new Scanner(System.in);
        do
        {
            System.out.println("Te quedan " +(3-i) +" Intentos");
            System.out.println("Adivina el numero =): ");
            Numero = Leer.nextInt();
            if(Constante > Numero)
            {
                System.out.println("El numero es mayor =( \n");
            }
            else
            {
                System.out.println("El numero es menor =(\n");
            }
            i++;
        }
        while(Numero != Constante && i <3);
        if(Numero == Constante)
        {
        System.out.println("Haz adivinado el numero¡¡¡ =)");
        }
    }
}



Error si pone el numero correcto como la condicion dice :
if(Constante > Numero)
Y luego viene un else
al ser el correcto mostrara lo que viene en el else, por lo que deveria ser mas bien un else if
asi
else if(Constante < Numero)
Y ahora si tu programa estuviera andando bien

Noviembre 07, 2011, 02:08:44 PM #4 Ultima modificación: Abril 18, 2013, 12:53:33 PM por Expermicid
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Cita de: [Corruptedyte link=topic=7992.msg28354#msg28354 date=1320601051]
Me dieron ganas de hacer uno XD bueno el mio te da 3 oportunidades de adivinar un numero del 1 al 10 generado por la computadora aletoriamente

Código: java
import java.util.*;

class AdivinaelNumero
{
    public static void main (String[] args)
    {
        int Numero, Constante, Intentos, i=0;
        Constante = (int)(Math.random()*10);
        Scanner Leer = new Scanner(System.in);
        do
        {
            System.out.println("Te quedan " +(3-i) +" Intentos");
            System.out.println("Adivina el numero =): ");
            Numero = Leer.nextInt();
            if(Constante > Numero)
            {
                System.out.println("El numero es mayor =( \n");
            }
            else
            {
                System.out.println("El numero es menor =(\n");
            }
            i++;
        }
        while(Numero != Constante && i <3);
        if(Numero == Constante)
        {
        System.out.println("Haz adivinado el numero¡¡¡ =)");
        }
    }
}


Error si pone el numero correcto como la condicion dice :
if(Constante > Numero)
Y luego viene un else
al ser el correcto mostrara lo que viene en el else, por lo que deveria ser mas bien un else if
asi
else if(Constante < Numero)
Y ahora si tu programa estuviera andando bien

o es cierto se me paso hacer ese else if