[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
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
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