Salve a tutti, scopiazzando un po' da internet ed aggiustando un po' il codice sono riuscito a far partire tranquillamente questo programma, il problema è che non si chiude quando premo invio dopo aver indovinato la parola, invece se sbaglio funziona tutto bene. Potete aiutarmi? Si tratta del gioco dell'impiccato.
Edit: ho dimenticato di scrivere che è un programma in C++ (per voi sarà ovvio, ma per quelli come me non lo è!) e che lo compilo con Visual C++ 2010 express della Microsoft.
#include <iostream>
using namespace std;
char input[1000];
int size=-1;
char lettura;
bool indovinati[1000]={0};
int tentativi=6;
bool presente(char input[], char lettura, int size, bool ind[]);
int main()
{
cout<<"Inserisci la parola seguita dal carattere '*'"<<endl;
cin>>lettura;
while(lettura != '*')
{
size++;
input[size]=lettura;
cin>>lettura;
}
if(size==-1)
return 0;
for(int i=0; i<=size; i++)
cout<<" - ";
cout<<endl;
cout<<"Inserisci una lettera"<<endl;
cin>>lettura;
while(tentativi != 0)
{
if(presente(input,lettura,size,indovinati))
{
for(int i=0; i<=size; i++)
{
if(indovinati[i])
cout<<input[i]<<" ";
else
cout<<" - ";
}
cout<<endl;
}
else
{
tentativi--;
cout<<"Lettera non presente nella parola! Tentativi rimamenti= "<<tentativi<<endl<< "\n";
}
bool b=true;
for(int i=0; i<=size; i++)
{
if(!indovinati[i])
{
i=size+1;
b=false;
}
}
if(b)
{
}
cin>>lettura;
cout<<"Hai indovinato la parola!"<<endl<< "\n";
system ("pause");
}
cout<<"Hai perso!"<<endl<< "\n";
system ("pause");
}
bool presente(char input[], char lettura, int size, bool ind[])
{
bool done=false;
for(int i=0; i<=size; i++)
if(input[i]==lettura)
{
ind[i]=true;
done=true;
}
return done;
}