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![]()