So… am facut un joc gen Akinator (akinator.com). Ideea e ca am doua probleme cu el:
-
Nu stiu cum sa-l fac sa se repete la infinit jocul (adica dupa ce Akinator ghiceste cine e) sa inceapa iar. Am incercat cu do while… nu a iesit bine, dupa ce completam prima tura, era spammata consola cu toate intrebarile de-odata (cred ca v-ati prins).
-
La final, cand Akinator nu ghiceste, acesta te intreaba cum il cheama pe prietenul tau… ideea e ca nu poti introduce numele, deoarece consola se termina de executat.
/**
* Akinator, C++ version @ Tudor Micu
*/
#include <iostream>
using namespace std;
int main() {
const int max_Friends = 500;
const int friend_Gender = 0;
const int friend_Age = 1;
const int friend_Months = 2;
const int friend_Nationality = 3;
const int friend_Dead = 4;
int saveTemporaryData[6];
int friend_Data[max_Friends][5];
char friend_Name[max_Friends][124];
cout << "Akinator, C++ version @ Tudor Micu." << "\n" << "Can Akinator guess your friends?" << "\n\n"
<< "You need to know: You need to fill first Akinator's data about your friends, before test him.";
cout << "\n\n" << "Akinator says: First question. What's your friend gender?" << "\n" << "1) Male, 2) Female" << "\n\n";
cin >> saveTemporaryData[friend_Gender];
switch(saveTemporaryData[friend_Gender]) {
case 1: saveTemporaryData[friend_Gender] = 1; break;
case 2: saveTemporaryData[friend_Gender] = 2; break;
default: {
cout << "\n" << "Akinator says: Invalid option. I'm repeating question. What's your friend gender?" << "\n"
<< "1) Male, 2) Female" << "\n\n";
cin >> saveTemporaryData[friend_Gender];
}
}
cout << "\n" << "Akinator says: Okey, next question. How old is your friend?" << "\n\n";
cin >> saveTemporaryData[friend_Age];
switch(saveTemporaryData[friend_Age]) {
case 0: {
cout << "\n" <<"Akinator says: Okey, your friend is a baby. How much months have your friend?" << "\n\n";
cin >> saveTemporaryData[friend_Months];
break;
}
default: break;
}
cout << "\n" << "Akinator says: Okey, next question. Your friend is Romanian?" << "\n" << "1) Yes, 2) No"
<< "\n\n";
cin >> saveTemporaryData[friend_Nationality];
switch(saveTemporaryData[friend_Nationality]) {
case 1: saveTemporaryData[friend_Nationality] = 1; break;
case 2: saveTemporaryData[friend_Nationality] = 2; break;
default: {
cout << "\n" << "Akinator says: Invalid option. I'm repeating question. Your friend is Romanian?" << "\n"
<< "1) Yes, 2) No" << "\n\n";
cin >> saveTemporaryData[friend_Nationality];
}
}
cout << "\n" << "Akinator says: Okey, next question. Your friend is dead?" << "\n" << "1) Yes, 2) No"
<< "\n\n";
cin >> saveTemporaryData[friend_Dead];
switch(saveTemporaryData[friend_Dead]) {
case 1: saveTemporaryData[friend_Dead] = 1; break;
case 2: saveTemporaryData[friend_Dead] = 2; break;
default: {
cout << "\n" << "Akinator says: Invalid option. I'm repeating question. Your friend is dead?" << "\n"
<< "1) Yes, 2) No" << "\n\n";
cin >> saveTemporaryData[friend_Dead];
}
}
for( int i = 0; i <= max_Friends; i++ ) {
if(saveTemporaryData[friend_Gender] == friend_Data[i][friend_Gender]) {
if(saveTemporaryData[friend_Age] == friend_Data[i][friend_Age]) {
if(saveTemporaryData[friend_Months] == friend_Data[i][friend_Months]) {
if(saveTemporaryData[friend_Nationality] == friend_Data[i][friend_Nationality]) {
if(saveTemporaryData[friend_Dead] == friend_Data[i][friend_Dead]) {
cout << "Akinator says: I think you are talking about " << friend_Name << ".";
break;
}
else {
cout << "\n" << "Akinator says: I can't guess who is your friend.. can you help me by typing his name below." << "\n\n";
cin.get(friend_Name[i], 124);
break;
}
}
else {
cout << "\n" << "Akinator says: I can't guess who is your friend.. can you help me by typing his name below." << "\n\n";
cin.get(friend_Name[i], 124);
break;
}
}
else {
cout << "\n" << "Akinator says: I can't guess who is your friend.. can you help me by typing his name below." << "\n\n";
cin.get(friend_Name[i], 124);
break;
}
}
else {
cout << "\n" << "Akinator says: I can't guess who is your friend.. can you help me by typing his name below." << "\n\n";
cin.get(friend_Name[i], 124);
break;
}
}
else {
cout << "\n" << "Akinator says: I can't guess who is your friend.. can you help me by typing his name below." << "\n\n";
cin.get(friend_Name[i], 124);
break;
}
}
return 0;
}
Multumesc anticipat!