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
0 comentarios:
Publicar un comentario