• Source
    1. #include<stdio.h>
    2. #include<stdlib.h>
    3. #include<time.h>
    4. int main(){
    5. int nd;//numero di dadi
    6.  
    7. int maxi=0;// numero dadi *6 = valore massimo che possono assumere i dadi
    8. int d = 0;//dado
    9. int n =0;//numero inserito da utente
    10. int nc=0;//numero generato dal computer
    11. int i=0;//contatore do..while principale per rigiocare se vale 1 il ciclo si ripete
    12.  
    13. printf("GIOCO DEI DADI: Giocatore1 vs. PC (VERSIONE 1.2)\n\n ");
    14. srand(time(NULL));
    15. do{ //loop generale...alla fine del ciclo verra chiesto di rigiocare..con i==1 si ripete con 0 esce
    16.  
    17. printf("\n\nCon quanti dadi vuoi giocare?: ");
    18. scanf("%d",&nd); //l'utente sceglie con quanti dadi può giocare NB: il numero di dadi corrisponde al valore minimo dei dadi
    19. maxi=nd*6; //moltiplicando per 6 otengo il valore massimo che possono assumere i dadi
    20. printf("Hai scelto di giocare con %d dadi, numeri consentiti da %d a %d",nd,nd,maxi);
    21. printf("\n\nInserisci numero: ");
    22. scanf("%d",&n);
    23. if(n>maxi||n<nd){ //se il numero inserito dall'utente non rientra del range di valori possibili
    24. do{ //continua a chiedergli un altro valore finche non ne inserisce uno diverso
    25. printf("\nScelta non consentita\n Inserisci un valore tra %d e %d \n",nd,maxi);
    26. scanf("%d",&n);
    27. }while(n>maxi||n<nd);
    28. }
    29. nc=(rand()%maxi)+1;//il resto va da 0 a divisore-1, qundi gli aggiungo 1 per farlo andare da 1 a divisore(max)
    30.  
    31. if(nc<nd){ //se il valore del numero generato per la giocata "PC" è minore del valore minimo assegno il valore minimo
    32. nc+=nd;
    33. }
    34. d=(rand()%maxi)+1;
    35. if(d<nd){//se il valore del dado generato è minore del valore minimo assegno il valore minimo
    36. d+=nd;
    37. }
    38.  
    39. if(n==d){ // controlla se il numero inserito dall'utente è uguale al dado
    40.  
    41. if(nc==d){ // numero utente e numero del computer sono uguali al dado
    42. printf("\n PAREGGIO!!!\n\n Il numero inserito e': %d\n\n Il numero inserito dal PC e': %d\n\n valore dado: %d",n,nc,d);
    43. }
    44. else{ //solo il numero inserito dall'utente è uguale al dado
    45. printf("\n HAI VINTO!!!\n\n Il numero inserito e': %d\n\n Il numero inserito dal PC e': %d\n\n Valore dado: %d",n,nc,d);
    46. }
    47. }
    48. else{ // numero inserito dall'utente è diverso dal dado
    49. if(nc==d){ //numero pc uguale a dado
    50. printf("\n HA VINTO IL PC\n\n Il numero inserito e': %d\n\n Il numero inserito dal PC e': %d\n\n Valore dado: %d",n,nc,d);
    51. }
    52. else{//numero utente e numero pc diversi da dado
    53. printf("\n NESSUN VINCITORE\n\n Il numero inserito e': %d\n\n Il numero inserito dal PC e': %d\n\n Valore dado: %d",n,nc,d);
    54. }
    55. }
    56. printf("\n\n\nVuoi rigiocare?\n 1 = Si\n 0 = No \n");
    57. scanf("%d",&i);
    58. if(i!=0&&i!=1){ //se inserisce una scelta diversa dalle consentite (1 e 0)
    59. printf("\n Scelta non consentita");
    60. while(i!=0&&i!=1){ //continua a ripetersi finche non inserisce una scelta valida
    61. printf("\n\n\nVuoi rigiocare?\n 1 = Si\n 0 = No \n");
    62. scanf("%d",&i);
    63. }
    64. }
    65.  
    66. }while(i==1);
    67. system("pause");
    68. }
    69.