|
#include <stdio.h>
/*Menu principale*/
void intestazione(void);
/*Gioca*/
void giocare(void);
/*Costanti di enumerazione ke rappresentano lo stato del gioco*/
enum Status { CONTINUA, VITTORIA, SCONFITTA };
/*Regolamento*/
void regolamento(void);
/*Crediti*/
void crediti(void);
/*Esci*/
void esci(void);
int main()
{
int i;
void (*menu[4])(void) = {esci, giocare, regolamento, crediti};
intestazione();
scanf("%d", &i);
while(i<0 || i>3){
intestazione();
scanf("%d", &i);
}
menu[i]();
if(i != 0) main();
return 0;
}
/*Intestazione*/
void intestazione()
{
/*Colore Sfondo bianco e testo nero*/
system("color F0");
/*Nome gioco*/
printf("\n\t\t .aMMMb dMMMMb .aMMMb dMMMMb .dMMMb");
printf("\n\t\t dMP\"VMP dMP.dMP dMP\"dMP dMP.dMP dMP\" VP");
printf("\n\t\t dMP dMMMMK\" dMMMMMP dMMMMP\" VMMMb");
printf("\n\t\t dMP.aMP dMP\"AMF dMP dMP dMP dP .dMP");
printf("\n\t\t VMMMP\" dMP dMP dMP dMP dMP VMMMP\" v. 0.1 BETA\n\n\n");
/*Menu*/
printf("\t\t\t\t.------------------.\n");
printf("\t\t\t\t| 1 - Gioca |\n");
printf("\t\t\t\t| 2 - Regolamento |\n");
printf("\t\t\t\t| 3 - Crediti |\n");
printf("\t\t\t\t| 0 - Esci |\n");
printf("\t\t\t\t`------------------'\n\n");
}
void esci()
{
}
void giocare()
{
int gioca(void);/*Prototipo*/
int budget = 100;/*Budget*/
int puntata = 0;/*Puntata*/
int esito = 0;/*Esito della manche*/
printf("\n\tBudget iniziale: %d Euro\n\tVinci a 1000 Euro\n\n", budget );
while(budget>0 && budget<1000){
printf("Budget: %d\nQuanto vuoi puntare: ", budget );
scanf("%d", &puntata);
if(puntata<=budget){
esito=gioca();
}
else{
while(puntata>budget){
printf("\nNon hai a disposizione %d Euro\nQuanto vuoi puntare: ", puntata );
scanf("%d", &puntata);
}
esito=gioca();
}
if(esito == 1){
budget += puntata;
}
else{
budget -= puntata;
}
}
if(budget>=1000){
while(1){
}
}
}
int gioca()
{
int lancio_dadi();/*Prototipo*/
int somma;/*Punteggio dei dadi lanciati*/
int punti;/*Contiene i punti guadagnati*/
enum Status statoGioco;/*Può contenere CONTINUA, VITTORIA, SCONFITTA*/
srand( time( NULL ) );/*Randomizza il genereatore di numeri casuali*/
somma = lancio_dadi();/*Primo lancio dei dadi*/
getch();
switch (somma){
/*Vince al primo lancio*/
case 7:
case 11:
statoGioco = VITTORIA;
break;
/*Perde al primo lancio*/
case 2:
case 3:
case 12:
statoGioco = SCONFITTA;
break;
/*Memorizza il punteggio*/
default:
statoGioco = CONTINUA;
punti = somma;
printf("\nI tuoi punti sono %d\n\n", punti );
break;
}
/*Finchè il gioco non è completato*/
while(statoGioco == CONTINUA){
somma = lancio_dadi();/*Continua a lanciare*/
getch();
/*Determina lo stato del gioco*/
if(somma == punti){
statoGioco = VITTORIA;
}
else{
if(somma == 7){
statoGioco = SCONFITTA;
}/*Fine if*/
}/*Fine else*/
}/*Fine while*/
/*Visualizza messaggio di vittoria o di sconfitta*/
if( statoGioco == VITTORIA ){
getch();
return 1;
}
if( statoGioco == SCONFITTA ){
getch();
return 2;
}
system("pause");
}
int lancio_dadi()
{
int dado1;
int dado2;
int punteggio;
dado1 = 1 + (rand() % 6);
dado2 = 1 + (rand() % 6);
punteggio = dado1 + dado2;
/*Visualizza i risultati di questo lancio*/
printf("Lancio dei dadi: %d + %d = %d\n", dado1 , dado2 , punteggio );
return punteggio;
}
void regolamento()
{
printf("\n\n\t\tRegolamento\n");
printf("\n\tUn giocatore lancia due dadi. Ogni dado ha sei facce.");
printf("\n\tQueste facce contengono 1, 2, 3, 4, 5, 6 puntini.");
printf("\n\tDopo che i dadi si saranno fermati, si calcolerà la");
printf("\n\tsomma dei puntini delle due facce rivolte verso l'alto.");
printf("\n\tNel caso la somma fosse 7 o 11 al primo tiro il");
printf("\n\tgiocatore avrebbe vinto.");
printf("\n\tNel caso che la somma fosse 2, 3 o 12 al primo tiro,");
printf("\n\t(detta \"CRAPS\"), il giocatore avrebbe perso (avrebbe");
printf("\n\tvinto il banco).");
printf("\n\tNel caso la somma fosse 4, 5, 6, 8, 9, 10 al primo tiro,");
printf("\n\tallora quella somma diventerebbe il \"punteggio\" del");
printf("\n\tPer vincere, si deve continuare a lanciare i dadi fino");
printf("\n\ta \"ottenere il vostro punteggio\".");
printf("\n\tIl giocatore perderebbe qualora realizzasse un 7 prima");
printf("\n\tdi ottenere il proprio punteggio.\n\n");
getch();
}
void crediti()
{
printf("\n\n\t\t Realizzato da ShEiKh (Di Ianni Francesco)\n");
printf("\n\t\t\t\tsheikh86@gmail.com\n\n");
getch();
}
|
|