Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: help c++

  1. #1
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    help c++

    raga dovete aiutarmi assolutamente: sto facendo un prog con c++ che consiste in un gioco dove scegliere livelo di difficoltà e altre cose, e poi indovinare un numero casuale generato dal computer nel rispeto di determinati tentativi....ma adesso vi poasto un attimo il prog svolta fino ad ora e poi vi dico dov'è il problema



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

    int risposta, val, vall, risposta_num1, risposta_num1_1, scelta_1, conta_risp_1, tentativi_1;
    int main(){
    conta_risp_1=0;
    srand (time (NULL) );
    cout<<"\n\n\nQUESTO E' UN GIOCO CHE CONSISTE NELL'INDOVINARE UN NUMERO COMPRESO TRA UN CERTO INTERVALLO DI VALORI (1-10 ; 1-100 ; 1-1000),CHE CAMBIA IN BASE AL LIVELLO DI DIFFICOLTA' SCELTO E VIENE GENERATO\nIN MODO ESCLUSIVAMENTE CASUALE. \nBUONA FORTUNA...";
    cout<<"\n\n\nQUALE LIVELLO DI DIFFICOLTA' SCEGLI (1,2,3) ? ";
    do{
    do{
    cin>>risposta;
    if (risposta==1){
    cout<<"\n\nLIVELLO 1:\nIl livello di difficolta' scelto e' il livello 1, il livello semplice.\nAdesso verra' generato un valore compreso tra 1 e 10 e voi dovrete indovinarlo,\nma prima dovete scegliere se avere un numero di tentativi predefinito oppure un numero di tentativi da voi scelto.";
    cout<<"\nDunque scegli i tentativi preimpostati o li vuoi definire tu?? ";
    cout<<"\n(Per preimpostati premi 1, per scelti premi 0) ";
    cin>>scelta_1;
    if (scelta_1==1){
    cout<<"\nHai scelto i tentativi preimpostati, essi saranno cinque, piu' che sufficienti\nper questo livello, non trovi ??\nOk adesso il numero verra' generato ";
    int val= (rand() % 10) +1;
    cout<<val;
    cout<<"\n\nIl numero e' stato generato, adesso inserisci\nquello che tu credi sia il suo valore... ";
    do{
    cin>>risposta_num1;
    conta_risp_1++;
    if (conta_risp_1==5)
    cout<<"\nCinque tentativi sono stati da te effettuati, senza alcun successo!!!\n\nSe vuoi riniziare questo livello premi 1\naltrimenti premi 2 o 3 per altri livelli ";
    else
    if (risposta_num1==val)
    cout<<"\nComplimenti!!! Hai indovinato il numero,adesso passa al livello succssessivo!";
    else
    if (risposta_num1<val)
    cout<<"\nSbagliato!!! Il numero inserito e' minore di quello generato\nridigita il numero che secondo te e' stato generato ";
    else
    if (risposta_num1>val)
    cout<<"\nSbagliato!!! Il numero inserito e' maggiore di quello generato\nridigita il numero che secondo te e' stato generato ";
    } while ((risposta_num1!=val)&&(conta_risp_1!=5));
    }
    }
    } while ((conta_risp_1==5)&&(risposta_num1==val));
    if(scelta_1==0){
    cout<<"\nHai scelto che sarai tu a definire il numero di tentativi\nAdesso inserisci il numero di tentativi da effettuare ";
    cin>>tentativi_1;
    conta_risp_1=0;
    if ((tentativi_1<=0)||(tentativi_1>10))
    cout<<"\nATTENZIONE!! Devi inserire un numero di tentativi tale che questi siano positivi maggiori di zero\ne massimo che siano dieci, non di più, dopotutto il valore da indovinare e' compreso solo tra 1 e 10. ";
    int vall= (rand() % 10) +1;
    cout<<vall;
    cout<<"\n\nIl numero e' stato generato, adesso inserisci\nquello che tu credi sia il suo valore... ";
    do{
    cin>>risposta_num1_1;
    conta_risp_1++;
    if (conta_risp_1==tentativi_1)
    cout<<"\nHai effettuato tutti i tentativi a tua disposizione, senza alcun successo!!!\n\nSe vuoi riniziare questo livello premi 1\naltrimenti premi 2 o 3 per altri livelli ";
    else
    if (risposta_num1_1==vall)
    cout<<"\nComplimenti!!! Hai indovinato il numero,adesso passa al livello succssessivo!";
    else
    if (risposta_num1<vall)
    cout<<"\nSbagliato!!! Il numero inserito e' minore di quello generato\nridigita il numero che secondo te e' stato generato ";
    else
    if (risposta_num1>vall)
    cout<<"\nSbagliato!!! Il numero inserito e' maggiore di quello generato\nridigita il numero che secondo te e' stato generato ";
    } while ((risposta_num1!=vall)&&(conta_risp_1!=tentativi_1 ));
    }
    }while ((conta_risp_1==tentativi_1) && (risposta_num1==vall));
    getch();
    return 0;
    }



    scusate l'eccessiva lunghezza..cmq il problema è che scelti i livelli predefiniti, una volta effettuati tutti i tentativi a disposizione, ho impostato il ciclo (o lameno credo di averlo fatto bene) in modo tale da poter, una volta effettuati tutti i tentativi o indovinato il numero, ritornare alla parte in cui possiamo scegliere il livello di difficoltà da effettuare....il problema è che immesso il valore del livello che volgiamo fare (in questo caso sempre il primo sceglieremo perchè il prog nn è finito) è come se il prog nn esegui di nuovo il livello uno tutto d'accapo ma va oltre tutte le nostre istuzioni e fa chiudere la schermata del dos, chiudendo il prog.......come devo fare quindi per risolvere sto problema???? nn è che potete magari postare anche come si dovrebbe scrivere,magari modificando il mio post??????

    spero che mi aiutate,ci conto

  2. #2

    Visto il problema..

    Ciao! visto il tuo problema e visto che avevo già fatto un programmino che facesse qualcosa del genere ho modificato il mio ed il tuo e ho creato un nuovo programma che risolve il tuo problema. Ho utilizzato i sottoprogrammi per spezzettare i vari passaggi, l'unica cosa forse da modificare sono le stringhe di iterazione con l'utente divertiti :sexpulp: :metallica

    #include <iostream.h>

    void inizioGioco ();
    void sceltaLivello (int &risposta);
    void livelloBase (int &val);
    void livelloMedio (int &val);
    void livelloAvanzato (int &val);
    int tentativo ();
    void gioca (int &val);

    void main () {
    int val, tentativi;
    int seme = time(NULL);
    srand(seme);
    int risposta = 0;
    inizioGioco ();
    sceltaLivello(risposta);
    if (risposta == 1) {
    livelloBase(val);
    } else if (risposta == 2) {
    livelloMedio(val);
    } else {
    livelloAvanzato(val);
    }
    gioca (val);
    }


    void inizioGioco (){
    cout << "\n\n\nQUESTO E' UN GIOCO CHE CONSISTE NELL'INDOVINARE UN NUMERO COMPRESO TRA UN CERTO INTERVALLO DI VALORI (1-10 ; 1-100 ; 1-1000),CHE CAMBIA IN BASE AL LIVELLO DI DIFFICOLTA' SCELTO E VIENE GENERATO\nIN MODO ESCLUSIVAMENTE CASUALE. \nBUONA FORTUNA...";
    cout << "\n\n\nQUALE LIVELLO DI DIFFICOLTA' SCEGLI (1,2,3) ? ";
    return;
    }

    void sceltaLivello (int &risposta) {
    cin >> risposta;
    while ((risposta != 1) && (risposta != 2) && (risposta != 3)) {
    cout << "\n\n\nQUALE LIVELLO DI DIFFICOLTA' SCEGLI (1,2,3) ? ";
    cin >> risposta;
    }
    return;
    }

    void livelloBase(int &val) {
    cout << "\n\nLIVELLO 1:\nIl livello di difficolta' scelto e' il livello 1, il livello semplice.Adesso verra' generato un valore compreso tra 1 e 10 e dovrai indovinarlo,\nma prima dovrai scegliere se avere un numero di tentativi predefinito oppure un numero di tentativi da te scelto.";
    cout<<"\nDunque scegli i tentativi preimpostati o li vuoi definire tu?? ";
    cout<<"\n(Per preimpostati premi 1, per scelti premi 0) ";
    val = (rand() % 10) +1;
    }

    void livelloMedio (int &val) {
    cout << "\n\nLIVELLO 2:\nIl livello di difficolta' scelto e' il livello 2, il livello medio.\nAdesso verra' generato un valore compreso tra 1 e 100 e dovrai indovinarlo,\nma prima dovrai scegliere se avere un numero di tentativi predefinito oppure un numero di tentativi da te scelto.";
    cout<<"\nDunque scegli i tentativi preimpostati o li vuoi definire tu?? ";
    cout<<"\n(Per preimpostati premi 1, per scelti premi 0) ";
    val = (rand() % 100) +1;
    }

    void livelloAvanzato (int &val) {
    cout << "\n\nLIVELLO 3:\nIl livello di difficolta' scelto e' il livello 3, il livello avanzato.\nAdesso verra' generato un valore compreso tra 1 e 1000 e dovrai indovinarlo,\nma prima dovrai scegliere se avere un numero di tentativi predefinito oppure un numero di tentativi da te scelto.";
    cout<<"\nDunque scegli i tentativi preimpostati o li vuoi definire tu?? ";
    cout<<"\n(Per preimpostati premi 1, per scelti premi 0) ";
    val = (rand() % 1000) +1;
    }

    int tentativo () {
    int tentativi = 5;
    int scelta = 1;
    cin >> scelta;
    while ((scelta != 0) && (scelta != 1)) {
    cout << "\nDunque scegli i tentativi preimpostati o li vuoi definire tu?? ";
    cout << "\n(Per preimpostati premi 1, per scelti premi 0) ";
    cin >> scelta;
    }
    if (scelta == 1){
    cout << "\nHai scelto i tentativi preimpostati, essi saranno cinque,\nOk adesso il numero verra' generato ";
    } else {
    cout << "Quanti tentativi vuoi effettuare? ";
    cin >> tentativi;
    cout << "\nHai scelto " << tentativi << " tentativi.\nOk adesso il numero verra' generato ";
    }
    return tentativi;
    }

    void gioca (int &val) {
    int tentativi = tentativo ();
    int n;
    bool flag = true;
    cout<<"\n\nIl numero e' stato generato, adesso inserisci\nquello che tu credi sia il suo valore (Se vuoi uscire dal gioco premi 0): ";
    cin >> n;
    if (n == 0) {
    flag = false;
    cout << "Ciaooo!";
    }
    while ((n != val) && (tentativi > 0) && (flag == true)) {
    if (n > val) {
    cout << " Prova con un numero piu' basso: ";
    cout << "Ti restano ancora " << tentativi << " tentativi.";
    } else {
    cout << " Prova con un numero piu' alto: ";
    cout << "Ti restano ancora " << tentativi << " tentativi.";
    }
    cin >> n;
    if (n == 0) {
    cout << "Ciaooo!";
    flag = false;
    }
    tentativi--;
    }
    if (n == val) {
    cout << "\a*** Complimenti Hai Vinto !!!***\n";
    cout << "Ti restavano ancora " << tentativi << " tentativi.";
    } else if (tentativi == 0) {
    cout << "\a...Peccato Hai Perso !!!...\n";
    }
    return;
    }

  3. #3
    Utente di HTML.it L'avatar di Iena87
    Registrato dal
    Dec 2003
    Messaggi
    429

    scusami........

    Innanzitutto grazie!!

    Cmq mi sà che per cvapire meglio la cosa mi conviene fare prima il programma elementare, dove scelto il livello di difficoltà si fa il gioco e poi termina il programma, poi dopo ci facio tutte le aggiunte del caso, come ritorni all'inizio del programma e quant'altro.
    Ma la cosa che ti volevo chiedere è se è corretta una forma del genere come io ho scritto:


    do{
    do{
    .......
    .......
    do{



    insomma se mattere in questo modo i cilci è giusto poichè eseguendo il programma mi sono accorto di molte imperfezioni dovute appunto ai cilci dove venivo rimandato in altre parti del programma e via dicendo...quindi si può fare così o no????
    cmq dal programma tuo a dir la verità ci capisco poco poichè utilizzi una strutturazione che io nn conosco proprio,esempio tutti sti void che da quanto ne ho potuto dedurre dal tuo programma serve a intestare parti diverse del programma per un ordine migliore, nn ho capito bene la funzione bool flag, e tutta questa parte:

    void main () {
    int val, tentativi;
    int seme = time(NULL);
    srand(seme);
    int risposta = 0;
    inizioGioco ();
    sceltaLivello(risposta);
    if (risposta == 1) {
    livelloBase(val);
    } else if (risposta == 2) {
    livelloMedio(val);
    } else {
    livelloAvanzato(val);
    }
    gioca (val);
    }


    ma sarebbe una specie di inyestazione iniziale del programa??
    e poi perchè metti già le alternative per la scelta del livello se ancora questo nn è stato scelto???

    Scusa se le mie domande ti sembrano sceme, ma sono ancora agli inizi, per cui necessito assolutamente delle tue risposte e se è possibile mi dai il link a qualche guida che spieghi ad esempio questa struttura,l'uso del bool flag ecc???? nn dirmi html.it se no mi ammazzano quelli della redazione

    grazie in anticipèo di tutto

  4. #4

    Reply

    Hai provato a ricopiarti il mio codice, a compilarlo e ad eseguire il programma? Cmq per come l'ho impostato il programma non fa altro che: " scelto il livello di difficoltà si fa il gioco e poi termina il programma", lo si può anche modificare in modo da gestire con un menù i ritorni indietro ecc..
    per quanto riguarda il do non saprei dirti molto, è da pochi mesi che uso il C++ e per il momento non ho ancora usato quest'istruzione.
    Ci sono tanti void perchè ognuno di questi rappresenta un sottoprogramma, in pratica i programmi in C++ iniziano tutti con un void main, giusto? se per ogni problema che si deve svolgere si crea un sottoprogramma che effettua l'operazione desiderata si ha la possibilità di organizzare il codice in modo che sia facilmente manutenibile, ordinato e non necessita di elevati livelli di annidamento delle istruzioni che ne rendono difficile la comprensione e difficile la programmazione.
    La parte che mi segnali, il void main dichiara e inizializza alcune variabili e poi richiama i vari sottoprogrammi creati, ogni volta che un sottoprogramma viene richiamato il void main si interrompe ed inizia l'esecuzione dei sottoprogrammi, alla fine del sottoprogramma si ritorna al void main così che nel nostro caso specifico dopo che l'utente tramite i sottoprogrammi ha fatto determinate scelte il void main richiamerà uno o l'altro livello di difficoltà.
    L'uso della variabile bool è semplice, è una variabile che può assumere due valori, o vero o flaso, io l'ho utilizzata come variabile di controllo che fa sì che al verificarsi o meno di un dato evento questa modifichi o meno il suo valore, nel caso del mio programma, il valore della variabile bool che ho chiamato flag (ma che avrei potuto chiamare in qualsiasi altro modo) fa si che l'utente nel caso in cui prema il tasto zero il ciclo while si interrompa e termini la partita, spero di esser stato chiaro.
    Se vuoi seguire un corso di programmazione procedurale in c++ puoi consultare le dispense universitarie del mio corso di laurea sul sito: http://www.difa.unibas.it/users/gmec...materiale.html

    Ciaooo :sexpulp:

  5. #5
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Il tuo modo di programmare non è correttissimo...
    usi molti cicli ma non commenti le operazioni, non usi le tabulazioni e non dividi il codice in funzioni.

    Questo diminuisce altamente la leggibilità (cmq ora do un'occhiata al codice... )

  6. #6

    Vediamo...

    Uso l'indentazione del codice, il problema è che sul forum non sò come postare il codice in modo che mantenga le spaziature, se guardi bene ci sono sia procedure che funzioni poi per i cicli ammetto che la soluzione al sottoprogramma gioca poteva essere più elegante e spezzettata in altri sottoprogrammi.. ma ho cercato di dare una mano alla nostra amica, quanto tempo avrei dovuto impiegare per fare tutto precisamente? :tongue:

  7. #7
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012

    Re: Vediamo...

    Originariamente inviato da andypower
    Uso l'indentazione del codice, il problema è che sul forum non sò come postare il codice in modo che mantenga le spaziature, se guardi bene ci sono sia procedure che funzioni poi per i cicli ammetto che la soluzione al sottoprogramma gioca poteva essere più elegante e spezzettata in altri sottoprogrammi.. ma ho cercato di dare una mano alla nostra amica, quanto tempo avrei dovuto impiegare per fare tutto precisamente? :tongue:
    Guarda che intendevo a lena87!! :tongue:

  8. #8
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012

    La mia versione...

    Dopo tanto lavoro, la mia versione del giochino!

    Ecco a voi il codice:

    Codice PHP:
    #include <stdio.h> 
    #include <conio.h> 
    #include <iostream.h> 
    #include <time.h> 
    #include <stdlib.h> 
    #include <ctype.h>

     
    //*********************
    //    Prototipi funzioni
    //*********************

    void descrivi_programma();
    int livello(int max);
    int richiedi_tentativi(int max);
    int casuale(int min,int max);
    int log2(int n);

    //*********************

    int main(){ 

        
    char n_livello;
        
    int risultato;
        
    char continua;

        
    //Inizializza il generatore di numeri casuali
        
    srand (time (NULL) ); 
        
        
    //Ciclo esterno del programma
        
    do {
            
    cout<<"\n\n\nQUALE LIVELLO DI DIFFICOLTA' SCEGLI (1,2,3) ? "<<endl
            
    cout << "\tLivello1: indovina un numero tra 0 e 10" << endl;
            
    cout << "\tLivello2: indovina un numero tra 0 e 100" << endl;
            
    cout << "\tLivello3: indovina un numero tra 0 e 1000" << endl;
            
            do {
                
    cin >> n_livello;
                    
    //Sottrae il codice ASCII di '0' per ottenere il numero di livello
                
    n_livello -= '0';

                if (
    n_livello ||  n_livello 3)
                    
    cout << "Numero di livello non valido. Inserire il livello:" << endl;

            
    //Ripete finchè il livello non è tra 1 e 3
            
    } while (n_livello || n_livello 3);


            switch(
    n_livello) {
                case 
    1:
                    
    risultato livello(10);
                    break;
                case 
    2:
                    
    risultato livello(100);
                    break;
                case 
    3:
                    
    risultato livello(1000);
                    break;
            }

            
            
    //Chiede se giocare di nuovo
            
    do {
                
    cout << "Si desidera giocare di nuovo? (s/n)" << endl;
                
    continua getch();
                
    continua toupper(continua);
            } while ( (
    continua != 'S') && (continua!='N'));

            if (
    continua=='N')
                
    //Termina il programma
                
    break;
        } while(
    continua == 'S');

        
    cout << "Grazie per aver provato questo programma." << endl;
        
    getch();
        return 
    0;
    }

        


    void descrivi_programma()
    {
            
    cout<<"\n\n\nQUESTO E' UN GIOCO CHE CONSISTE NELL'INDOVINARE UN NUMERO"  <<
                
    "COMPRESO TRA UN CERTO INTERVALLO DI VALORI (1-10 ; 1-100 ; 1-1000),"<<
                
    "CHE CAMBIA IN BASE AL LIVELLO DI DIFFICOLTA' SCELTO E VIENE GENERATO\n"<<
                
    "IN MODO ESCLUSIVAMENTE CASUALE. \n"<<
                
    "BUONA FORTUNA..."
    }

    int livello(int max)
    {
        
    int n_tentativi;

        
    cout << "Spiegazione del gioco:\n\n" << 
            
    "verra' generato un numero casuale tra 1 e " << max << "." << endl <<
            
    "ed avrai alcuni tentativi per indovinarlo." << endl << endl <<
            
    "Utilizzare i tentativi predefiniti oppure sceglierne il numero?" << endl <<
            
    "Premere \"p\" per utilizzare i tentativi predefinii o premere \"s\" per deciderne il numero." << endl <<
            
    "Scelta: ";
    ;

        
    char pred_o_scelti;

        do {
        
    // Richiede la pressione di un tasto
            
    cin >> pred_o_scelti;
            
    pred_o_scelti toupper(pred_o_scelti);
        
    // Il ciclo continua finchè non viene scelto "p" oppure "s"
        
    } while( (pred_o_scelti != 'P') && (pred_o_scelti!='S'));
        

        if(
    pred_o_scelti == 'S'
        {
            
    n_tentativi richiedi_tentativi(max);
        }
        else {
            
    n_tentativi log2(max) ;
            
    cout << "Tentativi predefiniti: " << n_tentativi << endl;
        }

        
    //Genera il numero casuale
        
    int n_magico;
        
    n_magico casuale(0,max);

        
    int n_utente,tentativi_usati 0;

        do {
            
    tentativi_usati++;
            
    cout << "Tentativo " << tentativi_usati << " di " << n_tentativi << endl;
            
    cout << "Inserire un numero: " << endl;
            
    //Chiede di inserire il numero
            
    cin >> n_utente;
            
    //Mette un invio
            
    cout << endl;
            
    // Incrementa i tentativi usati
            

            
    if(n_utente == n_magico) {
                
    cout << "Complimenti! In " << tentativi_usati << " tentativi hai indovinato il numero!" << endl;
                
    // Esce dal ciclo
                
    break;
            }
            else if(
    n_utente n_magico)
                
    cout << "Il numero che hai inserito è troppo piccolo!" << endl;
            else if(
    n_utente n_magico)
                
    cout << "Il numero che hai inserito è troppo grande!" << endl;
            
            
    //Un altro invio
            
    cout << endl;
        } while (
    tentativi_usati <= n_tentativi);

        if (
    n_utente == n_magico)
        {
            
    cout << "Potresti tentare con un livello più difficile..." << endl;
            
    //Indovinato
            
    return 1;
        }
        else
        {
            
    cout << "I tentativi esauriti e non hai indovinato il numero, " << endl <<
                
    "che era " << n_magico << "!" << endl << 
                
    "Mi dispiace!" << endl << endl;
            return 
    0;
        }
    }




    int richiedi_tentativi(int max)
    {
        
    int t;

        
    //Chiede il numero di tentativi
        
    do {
            
    cout << "Inserire il numero di tentativi: ";
            
    cin >> t;
        
    //Convalida il numero di tentativi
            
    if (max) {
                
    cout << "Il numero di tentativi deve essere minore di " << max <<
                    
    ", visto che il numero da indovinare è compreso tra 0 e " << max <<"." << endl;
            } 
            else if (
    0) {
                
    cout << "Il numero di tentativi deve essere un numero positivo..." << endl;
            }
            else if (
    == 0) {
                
    cout << "Non puoi avere 0 tentativi!" << endl;
            }
            else
                break;
        
    //Ripete l'input finchè n_tentativi non è compreso tra 1 e max.
        
    } while (<= || max);

        return 
    t;
    }

    //Restituisce un numero casuale tra min e max
    int casuale(int min,int max)
    {
        
        return (
    rand() % (max min))+ min 1;
    }

    //Restituisce il logaritmo in base 2 approssimato
    int log2(int n)
    {
        
    int i=0;
        do {
            
    /= 2;
            
    i++;
        } while(
    n);
        return 
    i;

    :metallica :metallica :metallica :metallica :sexpulp:

  9. #9

    Re: Vediamo...

    Originariamente inviato da andypower
    Uso l'indentazione del codice, il problema è che sul forum non sò come postare il codice in modo che mantenga le spaziature, se guardi bene ci sono sia procedure che funzioni poi per i cicli ammetto che la soluzione al sottoprogramma gioca poteva essere più elegante e spezzettata in altri sottoprogrammi.. ma ho cercato di dare una mano alla nostra amica, quanto tempo avrei dovuto impiegare per fare tutto precisamente? :tongue:
    Pulsante magico # e tutte le indentazioni verranno rispettate...

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  10. #10

    Prova pulsante magico!

    Prova pulsante magico...:

    Codice PHP:
    #include <iostream.h>

    void inizioGioco ();
    void sceltaLivello (int &risposta);
    void livelloBase (int &val);
    void livelloMedio (int &val);
    void livelloAvanzato (int &val);
    int tentativo ();
    void gioca (int &val);

    void main () {
        
    int valtentativi;
        
    int seme time(NULL);
        
    srand(seme);
        
    int risposta 0;
        
    inizioGioco ();
        
    sceltaLivello(risposta);
        if (
    risposta == 1) {
            
    livelloBase(val);
        } else if (
    risposta == 2) {
            
    livelloMedio(val);
        } else {
            
    livelloAvanzato(val);
        }
        
    gioca (val);
    }
            
            
    void inizioGioco (){
        
    cout << "\n\n\nQUESTO E' UN GIOCO CHE CONSISTE NELL'INDOVINARE UN NUMERO COMPRESO TRA UN CERTO INTERVALLO DI VALORI (1-10 ; 1-100 ; 1-1000),CHE CAMBIA IN BASE AL LIVELLO DI DIFFICOLTA' SCELTO E VIENE GENERATO\nIN MODO ESCLUSIVAMENTE CASUALE. \nBUONA FORTUNA...";
        
    cout << "\n\n\nQUALE LIVELLO DI DIFFICOLTA' SCEGLI (1,2,3) ? "
        return;
    }

    void sceltaLivello (int &risposta) {
        
    cin >> risposta
        while ((
    risposta != 1) && (risposta != 2) && (risposta != 3)) {
            
    cout << "\n\n\nQUALE LIVELLO DI DIFFICOLTA' SCEGLI (1,2,3) ? "
            
    cin >> risposta
        }
        return;
    }

    void livelloBase(int &val) {
        
    cout << "\n\nLIVELLO 1:\nIl livello di difficolta' scelto e' il livello 1, il livello semplice.Adesso verra' generato un valore compreso tra 1 e 10 e dovrai indovinarlo,\nma prima dovrai scegliere se avere un numero di tentativi predefinito oppure un numero di tentativi da te scelto.";
        
    cout<<"\nDunque scegli i tentativi preimpostati o li vuoi definire tu?? ";
        
    cout<<"\n(Per preimpostati premi 1, per scelti premi 0) ";
        
    val = (rand() % 10) +1;
    }

    void livelloMedio (int &val) {
        
    cout << "\n\nLIVELLO 2:\nIl livello di difficolta' scelto e' il livello 2, il livello medio.\nAdesso verra' generato un valore compreso tra 1 e 100 e dovrai indovinarlo,\nma prima dovrai scegliere se avere un numero di tentativi predefinito oppure un numero di tentativi da te scelto.";
        
    cout<<"\nDunque scegli i tentativi preimpostati o li vuoi definire tu?? ";
        
    cout<<"\n(Per preimpostati premi 1, per scelti premi 0) ";
        
    val = (rand() % 100) +1;
    }

    void livelloAvanzato (int &val) {
        
    cout << "\n\nLIVELLO 3:\nIl livello di difficolta' scelto e' il livello 3, il livello avanzato.\nAdesso verra' generato un valore compreso tra 1 e 1000 e dovrai indovinarlo,\nma prima dovrai scegliere se avere un numero di tentativi predefinito oppure un numero di tentativi da te scelto.";
        
    cout<<"\nDunque scegli i tentativi preimpostati o li vuoi definire tu?? ";
        
    cout<<"\n(Per preimpostati premi 1, per scelti premi 0) ";
        
    val = (rand() % 1000) +1;
    }

    int tentativo () {
        
    int tentativi 5;
        
    int scelta 1;
        
    cin >> scelta;
        while ((
    scelta != 0) && (scelta != 1)) {
            
    cout << "\nDunque scegli i tentativi preimpostati o li vuoi definire tu?? ";
            
    cout << "\n(Per preimpostati premi 1, per scelti premi 0) ";
            
    cin >> scelta;
        }
        if (
    scelta == 1){
        
    cout << "\nHai scelto i tentativi preimpostati, essi saranno cinque,\nOk adesso il numero verra' generato ";
        } else {
            
    cout << "Quanti tentativi vuoi effettuare? ";
            
    cin >> tentativi;
            
    cout << "\nHai scelto " << tentativi << " tentativi.\nOk adesso il numero verra' generato ";
        }
        return 
    tentativi;
    }
        
    void gioca (int &val) {
        
    int tentativi tentativo ();
        
    int n;
        
    bool flag true;
        
    cout<<"\n\nIl numero e' stato generato, adesso inserisci\nquello che tu credi sia il suo valore (Se vuoi uscire dal gioco premi 0): ";
        
    cin >> n;
        if (
    == 0) {
            
    flag false;
        
    cout << "Ciaooo!";
        }
        while ((
    != val) && (tentativi 0) && (flag == true)) {
        if (
    val) {
                
    cout << " Prova con un numero piu' basso: ";
                
    cout << "Ti restano ancora " << tentativi << " tentativi.";
        } else {
                
    cout << " Prova con un numero piu' alto: ";
                
    cout << "Ti restano ancora " << tentativi << " tentativi.";
        }
        
    cin >> n;
        if (
    == 0) {
                
    cout << "Ciaooo!";
                
    flag false;
        }
        
    tentativi--;
        }
        if (
    == val) {
        
    cout << "\a*** Complimenti Hai Vinto !!!***\n";
        
    cout << "Ti restavano ancora " << tentativi << " tentativi.";
        } else if (
    tentativi == 0) {
            
    cout << "\a...Peccato Hai Perso !!!...\n";
        }
        return;


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.