JUEGO 1: ROJO – AMARILLO – VERDE:
Escriba un programa que juegue al ROJO – AMARILLO – VERDE. El programa genera
tres dígitos aleatoriamente entre 0 y 9. A estos dígitos se le asigna la posición 1, 2, 3. El
objetivo del juego es adivinar los dígitos así como sus posiciones correctas con el menor
número de intentos posibles. Para cada intento, el jugador proporciona tres dígitos para
las posiciones 1, 2, 3. El programa responde con una pista que consta de rojo, amarillo y
verde. Si un dígito está en la posición correcta, la respuesta es verde. Si el dígito
adivinado está en la posición incorrecta, la respuesta es amarillo. Si el dígito para una
posición dada no coincide con ninguno de los tres dígitos, la respuesta es roja. A
continuación se muestra un ejemplo de respuestas para los dígitos: 6, 5 y 8 en las
opciones 1, 2, 3, respectivamente:
INTENTOS PISTAS
1 2 5 ROJO ROJO AMARILLO
8 5 3 AMARILLO VERDE ROJO
8 5 6 AMARILLO VERDE AMARILLO
6 5 8 VERDE VERDE VERDE
JUEGO 2: CRAPS.
Un juego de azar muy popular es el juego de dados conocido como “crasp”, el cual
consiste en:
Un jugador lanza dos dados. Cada dado tiene seis caras. Estas caras contienen 1, 2, 3, 4, 5
y 6 puntos. Una vez que los dados caen, se calcula la suma de los puntos de las caras
superiores de ambos dados. Si la suma es 7 u 11 en el primer tiro, el jugador gana. Si la
suma es 2, 3 o 12 en el primer tiro (llamado crasp), el jugador pierde (es decir, la casa
gana). Se la suma es 4, 5, 6, 8, 9 o 10 en el primer tiro, entonces ésta se convierte en
“puntos” del jugador. Para ganar, usted debe continuar tirando los dados hasta que
“haga su punto”. El jugador pierde si tira 7 antes de hacer su punto.
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<time.h>
using namespace std;
enum estado{CONTINUA, GANA, PIERDE};
int main()
{
int opcion, apuesta, balance_banco=1000, dado1, dado2, sum_dados, ptos; //variables
int adv_num1, num1, adv_num2, num2, adv_num3, num3, intentos=0;
char pista_num1 [10], pista_num2 [10], pista_num3 [10], respuesta;
enum estado estado_juego; //puede contener los estados del juego GANA, PIERDE o CONTINUA
system("COLOR 1F"); //cambia el color de fondo y de las letras
srand(time(NULL)); //evita que los numeros aleatorios se repitan
do{
cout<<endl<<"\t\t\t ***** Menu Principal *****"<<endl;
cout<<endl<<endl<<"\t ######## ### ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## "<<endl;
cout<<"\t 1.- ######## ####### ## ## ####### ## ## "<<endl;
cout<<"\t ## ## ######### ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## "<<endl;
cout<<"\t ## ## ## ## ### "<<endl<<endl;
cout<<"\t ###### ######## ### ######## ###### "<<endl;
cout<<"\t ## ## ## ## ## ## ## ## ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## ## ## "<<endl;
cout<<"\t 2.- ## ######## ## ## ######## ###### "<<endl;
cout<<"\t ## ## ## ######### ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## ## ## ## "<<endl;
cout<<"\t ###### ## ## ## ## ## ###### "<<endl<<endl;
cout<<"\t 3.- Salir del Programa"<<endl;
cout<<"\t Indique la opcion seleccionada: ";
cin>>opcion;
cout<<endl;
system("cls"); //borra la pantalla del menu principal
switch (opcion)
{
case 1:
{
do{
cout<<endl<<endl<<"\t ######## ### ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## "<<endl;
cout<<"\t ######## ####### ## ## ####### ## ## "<<endl;
cout<<"\t ## ## ######### ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## "<<endl;
cout<<"\t ## ## ## ## ### "<<endl;
cout<<endl<<"\t\t ***** Menu *****"<<endl;
cout<<"\t 1.- Juego Nvo."<<endl;
cout<<"\t 2.- Regresar al menu principal"<<endl;
cout<<"\t 3.- Salir del Programa"<<endl;
cout<<"\t Indique la opcion seleccionada: ";
cin>>opcion;
system("cls"); //borra la pantalla de menu del juego
switch(opcion)
{
case 1:
{
do{
adv_num1=rand()%10; //genera numeros aleatorios del 0 al 9
adv_num2=rand()%10;
adv_num3=rand()%10;
do{
cout<<endl<<endl<<"\t Indique el primer numero: ";
cin>>num1;
cout<<"\t Indique el segundo numero: ";
cin>>num2;
cout<<"\t Indique el tercer numero: ";
cin>>num3;
if(num1==adv_num1)
{
strcpy(pista_num1,"VERDE");
}
else
{
if((num1!=adv_num1)&&(num1!=adv_num2)&&(num1!=adv_num3))
{
strcpy(pista_num1,"ROJO");
}
else
{
if((num1==adv_num2)||(num1==adv_num3))
{
strcpy(pista_num1,"AMARILLO");
}
}
}
if(num2==adv_num2)
{
strcpy(pista_num2,"VERDE");
}
else
{
if((num2!=adv_num1)&&(num2!=adv_num2)&&(num2!=adv_num3))
{
strcpy(pista_num2,"ROJO");
}
else
{
if((num2==adv_num1)||(num2==adv_num3))
{
strcpy(pista_num2,"AMARILLO");
}
}
}
if(num3==adv_num3)
{
strcpy(pista_num3,"VERDE");
}
else
{
if((num3!=adv_num1)&&(num3!=adv_num2)&&(num3!=adv_num3))
{
strcpy(pista_num3,"ROJO");
}
else
{
if((num3==adv_num1)||(num3==adv_num2))
{
strcpy(pista_num3,"AMARILLO");
}
}
}
intentos+=1; //cuenta el numero de intentos
cout<<endl<<"\t INTENTOS "<<"\t\t PISTAS"<<"\t\t OPORTUNIDAD: "<<intentos<<"/3"<<endl;
cout<<"\t "<<num1<<" "<<num2<<" "<<num3<<"\t\t "<<pista_num1<<" "<<pista_num2<<" "<<pista_num3<<endl;
}while(((strcmp(pista_num1,"VERDE")!=0)||(strcmp(pista_num2,"VERDE")!=0)||(strcmp(pista_num3,"VERDE")!=0))&&(intentos!=3)); //verifica el valor de la pista dada y termuna el turno si falla 3 veces
intentos=0; //reinicia el contador de intentos
do{ //valida la continuacion el juego
cout<<endl<<"\t Desea continuar con el juego (S) o (N): ";
cin>>respuesta;
if((respuesta!='n')&&(respuesta!='N')&&(respuesta!='s')&&(respuesta!='S'))
{
cout<<endl<<endl<<"\t Opcion invalida intentelo de nuevo"<<endl<<endl;
}
}while((respuesta!='n')&&(respuesta!='N')&&(respuesta!='s')&&(respuesta!='S'));
system("cls"); //borra la pantalla luego de cada jugada
}while((respuesta!='n')&&(respuesta!='N'));
break;
}
case 2:
{
break;
}
case 3:
{
exit(0);
break;
}
default:
{
cout<<endl<<"\t opcion invalida"<<endl<<endl;
break;
}
}
}while((opcion!=2)&&(opcion!=3));
break;
}
case 2:
{ //inico opcion 2
do{
cout<<endl<<endl<<"\t ###### ######## ### ######## ###### "<<endl;
cout<<"\t ## ## ## ## ## ## ## ## ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## ## ## "<<endl;
cout<<"\t ## ######## ## ## ######## ###### "<<endl;
cout<<"\t ## ## ## ######### ## ## "<<endl;
cout<<"\t ## ## ## ## ## ## ## ## ## "<<endl;
cout<<"\t ###### ## ## ## ## ## ###### "<<endl;
cout<<endl<<endl<<"\t\t ***** Menu *****"<<endl;
cout<<"\t 1.- Juego Nvo."<<endl;
cout<<"\t 2.- Regresar al menu principal"<<endl;
cout<<"\t 3.- Salir del Programa"<<endl;
cout<<"\t Indique la opcion seleccionada: ";
cin>>opcion;
cout<<endl;
system("cls"); //borra la pantalla de menu del juego
switch(opcion)
{
case 1:
{//inicio craps
do{
cout<<endl<<endl<<"\t Balance del banco Bs. "<<balance_banco<<endl<<endl;
do{
cout<<"\t Jugador apuesta Bs: ";
cin>>apuesta;
if(apuesta<0)
{
cout<<endl<<"\t Monto invalido"<<endl<<endl;
}
else
{
if(apuesta<50)
{
cout<<endl<<"\t El monto minimo para apostar es de 50 Bs."<<endl<<endl;
}
else
{
if(apuesta>500)
{
cout<<endl<<"\t El monto de la apuesta no puede ser mayor de 500 Bs."<<endl<<endl;
}
}
}
}while((apuesta<0)||(apuesta<50)||(apuesta>500)); //valida el monto de la apuesta
if(apuesta<=balance_banco) //valida que el monto de la apuesta no sea mayor que el balance del banco
{
cout<<endl<<"\t El jugador esta lanzando los dados"<<endl;
dado1=1+(rand()%6); //genera la cara del dado 1 aleatoriamente
dado2=1+(rand()%6); //genera la cara del dado 2 aleatoriamente
sum_dados=dado1+dado2; //suma de los dados
cout <<"\t El jugador lanzo: "<< dado1<<" + "<<dado2<<" = "<<sum_dados<<endl; //muestra el resultado de este lanzamiento
if((sum_dados==7)||(sum_dados==11)) //el jugador gana en el primer intento
{
estado_juego=GANA;
}
else
{
if((sum_dados==2)||(sum_dados==3)||(sum_dados==12)) //el jugador pierde en el primer intento
{
estado_juego=PIERDE;
}
else //el juego continua
{
estado_juego=CONTINUA;
ptos=sum_dados;
cout<<endl<<"\t Puntos: "<<ptos<<endl;
}
}
while(estado_juego==CONTINUA)
{
cout<<endl<<"\t El jugador esta lanzando los dados"<<endl;
dado1=1+(rand()%6); //genera la cara del dado 1 aleatoriamente
dado2=1+(rand()%6); //genera la cara del dado 2 aleatoriamente
sum_dados=dado1+dado2; //suma de los dados
cout <<"\t El jugador lanzo: "<< dado1<<" + "<<dado2<<" = "<<sum_dados<<endl; //muestra el resultado de
cout<<endl<<"\t Puntos: "<<sum_dados<<endl;
if(sum_dados==ptos) //el jugador gana por punto
{
estado_juego=GANA;
}
else
{
if(sum_dados==7) //el jugador pierde por punto
{
estado_juego=PIERDE;
}
}
}
if(estado_juego==GANA)
{
balance_banco+=apuesta; //se suma el monto de la apuesta
cout<<endl<<"\t El jugador gana, el nuevo balance es: "<<balance_banco<<endl;
}
else
{
if(estado_juego==PIERDE)
{
balance_banco-=apuesta; //se resta el monto de la apuesta
cout<<endl<<"\t Craps! El jugador pierde"<<endl;
cout <<"\t El jugador tiene Bs. "<<balance_banco<<endl;
}
}
if(balance_banco==0) //si el monto del banco es cero el juego finaliza
{
system("cls");
cout<<endl<<"\t Disculpe, ya no tiene suficiente dinero"<<endl;
break; //rompe el ciclo
}
}
else
{
cout<<endl<<"\t La apuesta no puede ser mayor que el balance del banco"<<endl;
cout<<endl<<"\t Intente con otro monto"<<endl<<endl;
}
do{ //valida la continuacion el juego
cout<<endl<<"\t Desea continuar con la apuesta actual (S) o terminar el juego (N): ";
cin>>respuesta;
if((respuesta!='n')&&(respuesta!='N')&&(respuesta!='s')&&(respuesta!='S'))
{
cout<<endl<<endl<<"\t Opcion invalida intentelo de nuevo"<<endl<<endl;
}
}while((respuesta!='n')&&(respuesta!='N')&&(respuesta!='s')&&(respuesta!='S'));
system("cls"); //borra la pantalla luego de cada jugada
}while((respuesta!='n')&&(respuesta!='N'));
balance_banco=1000; //al finalizar el juego reinicia el monto del banco
break;
} //fin craps
case 2: //vuelve al menu principal
{
break;
}
case 3:
{
exit(0); //cierra el programa
break;
}
default: //valida las opciones del menu del juego
{
cout<<endl<<"\t Opcion invalida"<<endl<<endl;
break;
}
}
}while((opcion!=2)&&(opcion!=3)); //continua el juego hasta que seleccione la opcion 2 o la opcion 3
break;
} //fin opcion 2
case 3:
{
exit(0); //cierra el juego
break;
}
default: ////valida las opciones del menu principal
{
cout<<endl<<"\t Opcion invalida"<<endl<<endl;
break;
}
}
}while(opcion!=3);
system("pause");
return 0;
}
Descargar Código