Euromillones

Mario Pérez

Este programa es una simulación real del sorteo Euromillones. Pide 5 números y 2 estrellas y la cantidad a apostar, los ordena, genera aleatoriamente 5 números y 2 estrellas que definen el resultado del sorteo, los ordena también y compara esta combinación con la que el jugador ha apostado y dice cuanto dinero se ha ganado (hay 13 categorías distintas). Se parte de un saldo de 100€, que varía en función de nuestra suerte.
El propio programa “evita” que el jugador salga del juego preguntándole insistentemente si desea volver a jugar. Además, contiene un bucle para volver a jugar sin salir del programa.

#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

int main(){
int newgame, newgameagain;
double saldo;
saldo = 100;

// Pantalla principal y bucle que reinicia el juego despues de apostar
do{
int numeros, num[5], estrellas, e[2], numgen[5], egen[2], aux, numerosacertados, estrellasacertadas;
double apuesta, premio;
cout << "\t\t\t***** Euromillones *****"
 << "\n\n\n !!!Juega dos euros y gana 190 millones de euros!!! "
 << "\n\n Empiezas con 100 euros. El objetivo es !!HACERTE RICO!!"
 << "\n\n Como jugar: "
 << "\n\n\t1) La apuesta minima es de dos euros."
 << "\n\t2) Las apuestas deben ser multiplo de dos."
 << "\n\t3) Primero introduce cuanto dinero quieres jugar."
 << "\n\t4) Despues, introduce cinco numeros distintos del 1 al 50"
 << "\n\t5) Por ultimo, escribe las dos estrellas, del 1 al 11."
 << "\n\t6) Al final aparecera la pantalla de resultados."
 << "\n\n\n\t* Juegue con moderacion. "
 << "\n\n\n Lee las instrucciones y pulsa Enter para continuar: ";
cin.ignore();
system("cls");



cout << "\t\t\t***** Euromillones *****"
 << "\n\n Categorias:\tNumeros\tEstrellas\tPremio(por cada 2 euros)"
 << "\n\n\t1a:\t5\t2\t\t190.000.000 euros"
 << "\n\t2a:\t5\t1\t\t2.500.000 euros"
 << "\n\t3a:\t5\t0\t\t150.000 euros"
 << "\n\t4a:\t4\t2\t\t30.000 euros"
 << "\n\t5a:\t4\t1\t\t1.500 euros"
 << "\n\t6a:\t4\t0\t\t400 euros"
 << "\n\t7a:\t3\t2\t\t200 euros"
 << "\n\t8a:\t2\t2\t\t90 euros"
 << "\n\t9a:\t3\t1\t\t60 euros"
 << "\n\t10a:\t3\t0\t\t20 euros"
 << "\n\t11a:\t1\t2\t\t25 euros"
 << "\n\t12a:\t2\t1\t\t10 euros"
 << "\n\t13a:\t2\t0\t\t5 euros"
 << "\n\n\n\t\t\t\t\t\tTienes " << saldo << " euros."
 << "\n\n Pulsa Enter para realizar una nueva apuesta: ";
cin.ignore();
system("cls");
// Introducción de caracteres en los arrays
cout << "\t\t\t***** Euromillones *****"
 << "\n\n\n Escribe cuantos euros quieres apostar: "; cin >> apuesta;
saldo = saldo - apuesta;
cout << "\n Introduce cinco numeros distintos del 1 al 50: ";
for(int i = 0; i < 5; i++){ cin >> numeros;
 num[i] = numeros;}

// Bucle que ordena los 5 numeros introducidos de menor a mayor
for (int i = 0; i < 5; i++){
 for(int j=0; j < 4; j++){ if(num[j]>num[j+1]){
 aux=num[j];
 num[j]=num[j+1];
 num[j+1]=aux;}
 }
}
cout << "\n Introduce dos estrellas del 1 al 11: ";
for(int j = 0; j < 2; j++){ cin >> estrellas;
 e[j] = estrellas;}

// Ordenación de las estrellas introducidas de menor a mayor
if(e[0] > e[1]){
 aux = e[0];
 e[0] = e[1];
 e[1] = aux;}

cout << "\n\n\n El sorteo tendra lugar en "; for(int i=5; i>0; i--){
 cout << i << " \a";
 _sleep(1000);}
system("cls");

srand(time(NULL)); // La semilla que calcula los números cambiará cada vez que se inicia el programa

// Bucle que genera 5 números aleatorios
for (int i = 0; i < 5; i++){
 numgen[i] = rand() %50 + 1;
 while (numgen[i]==numgen[i-1] || numgen[i]==numgen[i-2] ||numgen[i]==numgen[i-3] ||numgen[i]==numgen[i-4]){
 numgen[i] = rand() %50 + 1;}
}

// Bucle que ordena los 5 numeros de menor a mayor
for (int i = 0; i < 5; i++){
 for(int j=0; j < 4; j++){ if(numgen[j]>numgen[j+1]){
 aux=numgen[j];
 numgen[j]=numgen[j+1];
 numgen[j+1]=aux;}
 }
}

// Bucle que genera 2 estrellas aleatorias
for (int j = 0; j < 2; j++){ egen[j] = rand() %11 + 1; while (egen[j]==egen[j-1]){ egen[j] = rand() %11 + 1;} } // Ordenación de las estrellas de menor a mayor if(egen[0] > egen[1]){
 aux = egen[0];
 egen[0] = egen[1];
 egen[1] = aux;}

// Bucle que compara elemento a elemento los numeros y estrellas acertados
numerosacertados = 0;
for (int i = 0; i < 5; i++){
 for (int j = 0; j < 5; j++){
 if (num[j] == numgen[i]){numerosacertados++;}
 }
}
estrellasacertadas = 0;
for (int j = 0; j < 2; j++){
 for (int k = 0; k < 2; k++){
 if (e[k] == egen[j]){estrellasacertadas++;}
 }
}

// Presentación comparativa de la apuesta del jugador y el resultado del sorteo
cout << "\t\t\t***** Euromillones *****"
 << "\n\n\n Resultado:"
 << "\n\n\t- Combinacion apostada -> Numeros: ";
for (int i = 0; i < 5; i++){cout << num[i] << " ";}
cout << " Estrellas: ";
for (int j = 0; j < 2; j++){cout << e[j] << " ";}
cout << "\n\n\t- Resultado del sorteo -> Numeros: ";
for (int i = 0; i < 5; i++){cout << numgen[i] << " ";}
cout << " Estrellas: ";
for (int j = 0; j < 2; j++){cout << egen[j] << " ";}

cout << "\n\n Numeros acertados: " << numerosacertados << "\n Estrellas acertadas: " << estrellasacertadas << "\n\n";
if(numerosacertados==0 || numerosacertados==1 && estrellasacertadas < 2){cout << " No has ganado ningun premio. !!Intentalo de nuevo!!\n\n";}
else{cout << " !!Enhorabuena, has alcanzado la ";
switch(numerosacertados){
case 1: cout << "11";
 premio = 25;
break;
case 2: switch(estrellasacertadas){
 case 0:cout << "13";
 premio = 5;
 break;
 case 1:cout << "12";
 premio = 10;
 break;
 case 2:cout << "8";
 premio = 90;
 break;
 }
break;
case 3: switch(estrellasacertadas){
 case 0:cout << "10";
 premio = 20;
 break;
 case 1:cout << "9";
 premio = 60;
 break;
 case 2:cout << "7";
 premio = 200;
 break;
 }
break;
case 4: switch(estrellasacertadas){
 case 0:cout << "6";
 premio = 400;
 break;
 case 1:cout << "5";
 premio = 1500;
 break;
 case 2:cout << "4";
 premio = 30000;
 break;
 }
break;
case 5: switch(estrellasacertadas){
 case 0:cout << "3";
 premio = 150000;
 break;
 case 1:cout << "2";
 premio = 2500000;
 break;
 case 2:cout << "1";
 premio = 190000000;
 break;
 }
break;
}
cout << "a categoria!!";
if(premio==190000000){cout << "\n\n !!!!!!INCREIBLE!!!!!!\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a";}
cout << " !!Acabas de llevarte " << premio * (apuesta/2) << " euros!!";
saldo = saldo + premio * (apuesta/2);
}
cout << "\n\n Si quieres realizar una nueva apuesta, escribe 1.\n Si deseas retirarte, escribe 0.\n\n"; cin >> newgame;
if(newgame!=1){
for(int i=0; i< 25; i++){
 system("cls");
 cout << "\n\n No quieres echar otra partida? (1: Si / 0: No): "; cin >> newgameagain;
 if(newgameagain==1){
 cout << "\n\n !!!Eso es!!! Seguro que ganas algun premio.\n\n\n";
 system("pause");
 i = 25;
 newgame = 1;}
}
}
system("cls");
}
while(newgame==1);
cout << "\t\t\t***** Euromillones *****"
 << "\n\n Te has retirado con " << saldo << " euros. !!!Vuelve otra vez!!!\n\n\n";
system("pause");
return 0;
}

Anuncios
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s