Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Craps - craps.c

craps.c

Caricato da:
Scarica il programma completo

  1. #include <stdio.h>
  2.  
  3. /*Menu principale*/
  4. void intestazione(void);
  5. /*Gioca*/
  6. void giocare(void);
  7. /*Costanti di enumerazione ke rappresentano lo stato del gioco*/
  8. enum Status { CONTINUA, VITTORIA, SCONFITTA };
  9. /*Regolamento*/
  10. void regolamento(void);
  11. /*Crediti*/
  12. void crediti(void);
  13. /*Esci*/
  14. void esci(void);
  15.  
  16. int main()
  17. {
  18.    int i;
  19.    void (*menu[4])(void) = {esci, giocare, regolamento, crediti};
  20.    intestazione();
  21.    scanf("%d", &i);
  22.    while(i<0 || i>3){
  23.       intestazione();
  24.       scanf("%d", &i);
  25.    }
  26.    menu[i]();
  27.    if(i != 0) main();
  28.    return 0;
  29. }
  30.  
  31. /*Intestazione*/
  32. void intestazione()
  33. {
  34.    /*Colore Sfondo bianco e testo nero*/
  35.    system("color F0");
  36.    
  37.    /*Nome gioco*/
  38.    printf("\n\t\t   .aMMMb   dMMMMb  .aMMMb  dMMMMb  .dMMMb");
  39.    printf("\n\t\t  dMP\"VMP  dMP.dMP dMP\"dMP dMP.dMP dMP\" VP");
  40.    printf("\n\t\t dMP      dMMMMK\" dMMMMMP dMMMMP\"  VMMMb");
  41.    printf("\n\t\t dMP.aMP dMP\"AMF dMP dMP dMP     dP .dMP");
  42.    printf("\n\t\t VMMMP\" dMP dMP dMP dMP dMP      VMMMP\"  v. 0.1 BETA\n\n\n");
  43.    
  44.    /*Menu*/
  45. printf("\t\t\t\t        MENU\n");
  46. printf("\t\t\t\t.------------------.\n");
  47. printf("\t\t\t\t|  1 - Gioca       |\n");
  48. printf("\t\t\t\t|  2 - Regolamento |\n");
  49. printf("\t\t\t\t|  3 - Crediti     |\n");
  50. printf("\t\t\t\t|  0 - Esci        |\n");
  51. printf("\t\t\t\t`------------------'\n\n");
  52. printf("\t\t\t\t     Scegli: ");
  53. }
  54.  
  55. void esci()
  56. {
  57.    printf("\a");
  58. }
  59.  
  60. void giocare()
  61. {
  62.    int gioca(void);/*Prototipo*/
  63.    
  64.    int budget = 100;/*Budget*/
  65.    int puntata = 0;/*Puntata*/
  66.    int esito = 0;/*Esito della manche*/
  67.    
  68.    printf("\n\tBudget iniziale: %d Euro\n\tVinci a 1000 Euro\n\n", budget);
  69.    
  70.    while(budget>0 && budget<1000){
  71.       printf("Budget: %d\nQuanto vuoi puntare: ", budget);
  72.       scanf("%d", &puntata);
  73.       if(puntata<=budget){
  74.          esito=gioca();
  75.       }
  76.       else{
  77.          while(puntata>budget){
  78.             printf("\nNon hai a disposizione %d Euro\nQuanto vuoi puntare: ", puntata);
  79.             scanf("%d", &puntata);
  80.          }
  81.          esito=gioca();
  82.       }
  83.       if(esito == 1){
  84.          budget += puntata;
  85.       }
  86.       else{
  87.          budget -= puntata;
  88.       }
  89.    }
  90.    if(budget>=1000){
  91.       while(1){
  92.          printf("Hai vinto");
  93.       }
  94.    }
  95. }
  96.  
  97. int gioca()
  98. {
  99.    int lancio_dadi();/*Prototipo*/
  100.    
  101.    int somma;/*Punteggio dei dadi lanciati*/
  102.    int punti;/*Contiene i punti guadagnati*/
  103.    
  104.    enum Status statoGioco;/*Può contenere CONTINUA, VITTORIA, SCONFITTA*/
  105.    
  106.    srand( time( NULL ) );/*Randomizza il genereatore di numeri casuali*/
  107.    
  108.    somma = lancio_dadi();/*Primo lancio dei dadi*/
  109.    getch();
  110.    
  111.    switch (somma){
  112.      
  113.       /*Vince al primo lancio*/
  114.       case 7:
  115.       case 11:
  116.          statoGioco = VITTORIA;
  117.          break;
  118.          
  119.       /*Perde al primo lancio*/
  120.       case 2:
  121.       case 3:
  122.       case 12:
  123.          statoGioco = SCONFITTA;
  124.          break;
  125.      
  126.       /*Memorizza il punteggio*/
  127.       default:
  128.          statoGioco = CONTINUA;
  129.          punti = somma;
  130.          printf("\nI tuoi punti sono %d\n\n", punti);
  131.          break;
  132.    }
  133.    /*Finchè il gioco non è completato*/
  134.    while(statoGioco == CONTINUA){
  135.       somma = lancio_dadi();/*Continua a lanciare*/
  136.       getch();
  137.      
  138.       /*Determina lo stato del gioco*/
  139.       if(somma == punti){
  140.          statoGioco = VITTORIA;
  141.       }
  142.       else{
  143.          if(somma == 7){
  144.             statoGioco = SCONFITTA;
  145.          }/*Fine if*/
  146.       }/*Fine else*/
  147.    }/*Fine while*/
  148.    
  149.    /*Visualizza messaggio di vittoria o di sconfitta*/
  150.    if( statoGioco == VITTORIA ){
  151.       printf("\nHai vinto\n\n");
  152.       getch();
  153.       return 1;
  154.    }
  155.    if( statoGioco == SCONFITTA ){
  156.       printf("\nHai perso\n\n");
  157.       getch();
  158.       return 2;
  159.    }
  160.    system("pause");
  161. }
  162.  
  163. int lancio_dadi()
  164. {
  165.    int dado1;
  166.    int dado2;
  167.    int punteggio;
  168.    
  169.    dado1 = 1 + (rand() % 6);
  170.    dado2 = 1 + (rand() % 6);
  171.    punteggio = dado1 + dado2;
  172.    
  173.    /*Visualizza i risultati di questo lancio*/
  174.    printf("Lancio dei dadi: %d + %d = %d\n", dado1, dado2, punteggio);
  175.    
  176.    return punteggio;
  177. }
  178.  
  179. void regolamento()
  180. {
  181.    printf("\n\n\t\tRegolamento\n");
  182.    printf("\n\tUn giocatore lancia due dadi. Ogni dado ha sei facce.");
  183.    printf("\n\tQueste facce contengono 1, 2, 3, 4, 5, 6 puntini.");
  184.    printf("\n\tDopo che i dadi si saranno fermati, si calcolerà la");
  185.    printf("\n\tsomma dei puntini delle due facce rivolte verso l'alto.");
  186.    printf("\n\tNel caso la somma fosse 7 o 11 al primo tiro il");
  187.    printf("\n\tgiocatore avrebbe vinto.");
  188.    printf("\n\tNel caso che la somma fosse 2, 3 o 12 al primo tiro,");
  189.    printf("\n\t(detta \"CRAPS\"), il giocatore avrebbe perso (avrebbe");
  190.    printf("\n\tvinto il banco).");
  191.    printf("\n\tNel caso la somma fosse 4, 5, 6, 8, 9, 10 al primo tiro,");
  192.    printf("\n\tallora quella somma diventerebbe il \"punteggio\" del");
  193.    printf("\n\tgiocatore.");
  194.    printf("\n\tPer vincere, si deve continuare a lanciare i dadi fino");
  195.    printf("\n\ta \"ottenere il vostro punteggio\".");
  196.    printf("\n\tIl giocatore perderebbe qualora realizzasse un 7 prima");
  197.    printf("\n\tdi ottenere il proprio punteggio.\n\n");
  198.    getch();
  199. }
  200.  
  201. void crediti()
  202. {
  203.    printf("\n\n\t\t   Realizzato da ShEiKh (Di Ianni Francesco)\n");
  204.    printf("\n\t\t\t\tsheikh86@gmail.com\n\n");
  205.    getch();
  206. }