venerdì 29 novembre 2013

Gioco del dado (con INPUT da utente) esempio in while e do/while

Programma che simula il lancio di un dado, viene chiesto all'utente su quale numero voglia puntare dopo di che il programma genera un numero pseudo casuale da 1 a 6, lo confronta con quello inserito dall'utente e verifica se l'utente ha vinto o se ha perso. Alla fine di ogni partita un menu permette all'utente di rigiocare una partita o uscire dal programma; quando l'utente decide di uscire dal programma viene visualizzato quante partite sono state giocate dall'utente e quante ne ha vinte o perse.

Esempio con menu in ciclo WHILE

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int scelta;
int dado;
int contatore=0;
int vittorie=0;
int sconfitte=0;
int menu=1;

using namespace std;

int main()
{
    while(menu==1)   //mentre variabile menu ha valore 1 esegui il ciclo
    {
         printf("\nScegli il numero su cui puntare");
         scanf("%d",&scelta);
         if((scelta>0) && (scelta<7))   //se il numero inserito dall'utente è compreso tra 1 e 6 esegui
         {
              contatore++;   //variabile contatore
              srand(time(0));   //generazione del seme tramite orologio computer
              dado=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado
              dado++;   //incremento la variabile dado così da avere un valore da 1 a 6
              printf("\nAl lancio del dado e' uscito il numero %d",dado);
              if(scelta==dado)   //se il numero scelto dall'utente è uguale a quello generato casualmente esegui
                   {
                   printf("\n\tHai vinto");
                   vittorie++;   //contatore vittorie   
                   }
              else   //altrimenti esegui
                   printf("\n\tHai perso");
                   sconfitte++;   //contatore sconfitte
              printf("\n\n1)Riprova a giocare \n2)Esci \n");   //menu di gioco
              scanf("%d",&menu);   
         }   //altrimenti se numero inserito dall'utente non compreso tra 1 e 6 esegui
         else
             printf("\n\tInserire un numero da 1 a 6");
    }
    printf("\nHai giocato %d partite\thai vinto %d volte\thai perso %d volte",contatore,vittorie,sconfitte);
}

_________________________________________________________________________________

Esempio con menu in ciclo DO / WHILE

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int scelta;
int dado;
int contatore=0;
int vittorie=0;
int sconfitte=0;
int menu=1;

using namespace std;

int main()
{
    do   //esegui mentre post condizione while si verifica
    {
         printf("\nScegli il numero su cui puntare");
         scanf("%d",&scelta);
         if((scelta>0) && (scelta<7))   //se il numero inserito dall'utente è compreso tra 1 e 6 esegui
         {
              contatore++;   //variabile contatore
              srand(time(0));   //generazione del seme tramite orologio computer
              dado=rand()%6;   //genero un valore casuale tra 0 e 5 e lo salvo nella variabile dado
              dado++;   //incremento la variabile dado così da avere un valore da 1 a 6
              printf("\nAl lancio del dado e' uscito il numero %d",dado);
              if(scelta==dado)   //se il numero scelto dall'utente è uguale a quello generato casualmente esegui
                   {
                   printf("\n\tHai vinto");
                   vittorie++;   //contatore vittorie   
                   }
              else   //altrimenti esegui
                   printf("\n\tHai perso");
                   sconfitte++;   //contatore sconfitte
              printf("\n\n1)Riprova a giocare \n2)Esci \n");   //menu di gioco
              scanf("%d",&menu);   
         }   //altrimenti se numero inserito dall'utente non compreso tra 1 e 6 esegui
         else
             printf("\n\tInserire un numero da 1 a 6");
    }while(menu==1); //mentre variabile menu ha valore 1 esegui il ciclo
    printf("\nHai giocato %d partite\thai vinto %d volte\thai perso %d volte",contatore,vittorie,sconfitte);
}

_________________________________________________________________________________




Nessun commento:

Posta un commento