Crea un programa que permita “jugar a adivinar un número” como se expone a continuación.
En el programa generar un número aleatorio entero entre 0 y 20,
El usuario introducirá un número y si el número aleatorio generado por el
ordenador es menor deberá indicarse "el número es menor". Si el
usuario introduce un número menor que el número aleatorio deberá indicarse “el número es mayor”.
El programa terminará cuando el usuario introduzca el número aleatorio que había escogido el
ordenador.
// se importan las librerias necesarias y la clase juego donde estan los metodos
#include <iostream>
#include <stdlib.h>
#include "juego.h"
using namespace std;
int main(void)
{
// se crea un objeto de la clase juego (Instanciación)
juego* obj1 = new juego();
// se crean dos variables de tipo string, una para saber si el usuario desea salir del juego
// y otra para pedir el nombre de el mismo
string nombre, parar = "";
// se le asigna a nombre el valor ingresado por pantalla
cout<<"Cual Es Tu Nombre ?"<<endl;
cin>>nombre;
// limpiamos y cambiamos el color de la consola
system("cls");
system("color E0");
// se muestra un mensaje de bienvenida con su nombre
cout<<"###############################################################################"<<endl;
cout<<""<<endl;
cout<<"########## #########"<<endl;
cout<<" Bienvenido ["+nombre+"] "<<endl;
cout<<"########## #########"<<endl;
cout<<""<<endl;
cout<<"###############################################################################"<<endl;
system("pause");
// se crea un ciclo DO-WHILE
do
{
// limpiamos y cambiamos el color de la consola
system("cls");
system("color 0A");
cout<<"_________________________________________________________________________"<<endl;
cout<<" JUEGO ADIVINAR NUMERO "<<endl;
cout<<"_________________________________________________________________________"<<endl;
// se llama al metodo Juego() mediante la instanciación
obj1->Juego();
// limpiamos y cambiamos el color de la consola
system("cls");
system("color 0F");
// a la variable salir se le asignara el valor ingresado en pantalla
// este dira si el usuario desea salir o no del juego
cout<<"*************************************************************************"<<endl;
cout<<"\nDeseas Salir? YES/NOT"<<endl;
cout<<">>--> ";
cin>>parar;
// se repetira el juego mientras que el usuario no escriba YES en la peticion
}
while (parar != "YES");
}
#ifndef JUEGO_H
#define JUEGO_H
class juego
{
public:
juego();
virtual ~juego();
// se declaran los métodos publicos
// se implementan los metodos SETTER y GETTER
void Set_NumI(int n){num = n;}
int Get_NumI(){return num;}
void Juego();
void Solicitar();
protected:
// se declaran las variables privadas
private:
int num;
};
#endif
#include "juego.h"
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
juego::juego()
{
// se le asignan valores por defecto a los atributos en el constructor
num = 0;
}
juego::~juego()
{
//dtor
}
// aqui viene lo bueno, se declaran los metodos
// se crea el metodo para solicitar el numero
void juego::Solicitar()
{
// se crea una variable de tipo entero llamada Intento
int Intento;
// a dicha variable se le asigna el valor que entre por consola mediante el CIN
cout<<"\nAdivina un numero entre 0 - 20: ";
cin>>Intento;
// encapsulamos el valor de Intento
Set_NumI(Intento);
}
// creamos el metodo donde va la logica del juego
void juego::Juego()
{
// se crean dos variables de tipo int, una de ellas icializada en 5
int Secreto,vidas=5;
// creamos una variable de tipo bool que nos ayudara a saber cuando se ha ganado el juego
bool Gano;
// creamos una variable o semilla random de tipo entero para escoger el numero a adivinar
srand(time(0));
// a la variable secreto le asignamos dicho numero
Secreto = rand()%20;
// mostramos un mensaje con el numero de vidas que queremos empiece el jugador
cout<<"\nUD CUENTA CON ["<<vidas<<"] VIDAS"<<endl;
// creamos un DO-WHILE
do
{
cout<<"\n_____________________________________"<<endl;
// Llamamos al metodo Solicitar() para pedir el numero
Solicitar();
if(Get_NumI()==Secreto)
{
// Decimos que si el numero ingresado es el mismo creado por la variable random, muestra un mensaje de felicitaciones
// Limpiamos y cambiamos el color de la consola mediante SYSTEM llamado por la libreria <stdlib.h>
system("cls");
system("color E0");
cout<<"###############################################################################"<<endl;
cout<<""<<endl;
cout<<"########## #########"<<endl;
cout<<"########## FELICITACIONES GANASTE ;v #########"<<endl;
cout<<"########## #########"<<endl;
cout<<""<<endl;
cout<<"###############################################################################\n"<<endl;
// le asignamos a Gano el valor TRUE
Gano=true;
cout<<"\n";
system("pause");
// de lo contrario 1er nivel
else
{
system("cls");
// Decrementamos en 1 la variable Vidas
vidas--;
// Mostramos las vidas restantes
cout<<"\nTe quedan ["<<vidas<<"] vidas"<<endl;
// Decimos que si Vidas es igual a 0, muestramos un mensaje diciendo que perdio
if(vidas==0)
{
// Limpiamos y cambiamos el color de la consola
system("cls");
system("color C0");
cout<<"###############################################################################"<<endl;
cout<<""<<endl;
cout<<"########## #########"<<endl;
cout<<"########## PERDISTE :'v #########"<<endl;
cout<<"########## #########"<<endl;
cout<<""<<endl;
cout<<"###############################################################################\n"<<endl;
system("pause");
}
// de lo contrario 2do nivel
else
{
// Si el numero ingresado en mayor al proporcionado por la variable random, mostramos un mensje diciendo que el numero buscado es menor
// suando en el IF solo hay una funcion que ejecutar, se pueden omitir las llaves
if(Get_NumI()>Secreto)
cout<<"\nEl numero secreto es menor"<<endl;
// si el numero ingresado en menor al proporcionado por la variable random, mostramos un mensje diciendo que el numero buscado es mayor
if(Get_NumI()<Secreto)
cout<<"\nEl numero secreto es mayor"<<endl;
}
}
// el ciclo DO-WHILE repetira todas las acciones dichas anteriormente siempre y cuando las vidas sean mayores
// a 0 y la variable Gano sea diferente de TRUE
}
while(vidasɬ&&Gano != true);
}
package juego;
// se importa paquete JOptionPane para dibujar un cuadro de dialogo en pantalla
// que muestre información o para llenar información
import javax.swing.JOptionPane;
public class Juego
{
public static void main(String[] args)
{
// se crea un objeto de la clase logica (Instanciación)
logica obj = new logica();
// se crean dos variables de tipo string, una para saber si el usuario desea salir del juego
// y otra para pedir el nombre de el mismo
String salir, nombre;
// se le asigna a nombre el valor ingresado por pantalla
nombre = JOptionPane.showInputDialog(null, "Cual Es Tu Nombre ?");
// se muestra un mensaje de bienvenida con su nombre
JOptionPane.showMessageDialog(null, "*********************************\n"+
"* BIENVENIDO "+nombre+" *\n"+
"*********************************\n");
// se crea un ciclo DO-WHILE
do
{
// se llama al metodo Juego() mediante la instanciación
obj.Juego();
// a la variable salir se le asignara el valor ingresado en pantalla
// este dira si el usuario desea salir o no del juego
salir = JOptionPane.showInputDialog(null, "Deseas Salir ? YES/NOT");
}
// se repetira el juego mientras que el usuario no escriba YES en la peticion
// con el equalIngnoreCase podemos ignorar las mayusculas, ¿ que quiere decir esto ?
// que no importa si el usuario escribe yes ó YES con el Ignore case no nos limitamos a las mayusculas
while (!salir.equalsIgnoreCase("YES"));
}
}
package juego;
import javax.swing.*;
public class logica
{
// se declaran los atributos privados de la clase
private int numero;
// se le asignan valores por defecto a los atributos en el constructor
public logica()
{
numero = 0;
}
// implementacion de los metodos SETTER y GETTER
public void Set_Numero(int val)
{
numero = val;
}
int Get_Numero()
{
return numero;
}
// aqui viene lo bueno, se declaran los metodos
// se crea el metodo para solicitar el numero
public void solicitar()
{
// se crea una variable de tipo entero llamada num
int num;
// a dicha variable se le asigna el valor que entre por consola mediante el INPUT
num = Integer.parseInt(JOptionPane.showInputDialog(null, "¿En Que Numero Estoy Pensando?"));
// encapsulamos el valor de num
Set_Numero(num);
}
// creamos el metodo donde va la logica del juego
public void Juego()
{
// se crean dos variables de tipo int, una de ellas icializada en 5
int Secreto,vidas=5;
// creamos una variable de tipo bool que nos ayudara a saber cuando se ha ganado el juego
boolean Gano = false;
// creamos una variable random de tipo entero para escoger el numero a adivinar
int random = (int)(Math.random() * 20);
// mostramos un mensaje con el numero de vidas que queremos empiece el jugador
JOptionPane.showMessageDialog(null, "Cuentas Con "+vidas+" Vidas");
// creamos un DO-WHILE
do
{
// llamamos al metodo Solicitar() para pedir el numero
solicitar();
// decimos que si el numero ingresado es el mismo creado por la variable random, muestra un mensaje de felicitaciones
if (Get_Numero() == random)
{
JOptionPane.showMessageDialog(null,"* Felicidades Eres Lo Mejor *\n\t"
+ " Ganaste :v\n"+
"------------------------------------------");
// le asignamos a Gano el valor TRUE
Gano = true;
}
// de lo contrario 1er nivel
else
{
// decrementamos en 1 la variable Vidas
vidas--;
// decimos que si Vidas es igual a 0, muestramos un mensaje diciendo que perdio
if (vidas == 0)
{
JOptionPane.showMessageDialog(null, "ALV Perdiste :'v \n");
}
// de lo contrario 2do nivel
else
{
// si el numero ingresado en mayor al proporcionado por la variable random, mostramos un mensje diciendo que el numero buscado es menor
// cuando en el IF solo hay una funcion que ejecutar, se pueden omitir las llaves
if (Get_Numero() > random)
JOptionPane.showMessageDialog(null, "El Numero Es Menor"+"\n"+
"Te Quedan "+vidas+"\n");
// si el numero ingresado en menor al proporcionado por la variable random, mostramos un mensje diciendo que el numero buscado es mayor
if(Get_Numero() < random)
JOptionPane.showMessageDialog(null, "El Numero Es Mayor"+"\n"+
"Te Quedan "+vidas+" Vidas\n");
}
}
// el ciclo DO-WHILE repetira todas las acciones dichas anteriormente siempre y cuando las vidas sean mayores a 0 y la variable Gano sea diferente de TRUE
}
while (vidas > 0 && Gano != true);
}
}