J'essaie de faire un jeu simple dans la console avec C ++. Tout s'est parfaité, mais je ne peux pas simplement obtenir la "pêche" de Bool. Il retourne juste 0 après la première session de "pêche". Voici mon code
fishing = false; if (fishing == false) { system("cls"); cout << "Do you wish to fish again?" << endl; cout << "Current Amount of fish: "; cout << fish << endl; cin >> hellyea; if (hellyea == 1) fishing = true; } while (fishing == true) { // the "waiting to catch a fish" part // randomly selecting type of fishes system("cls"); srand(time(NULL)); auto fishtype = rand() % 3; if (fishtype == 0) { system("cls"); cout << "You just got an: " << "Common Carp!" << endl; fish++; cout << "Your Fish Amount: "; SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_INTENSITY); cout << fish << endl; SetConsoleTextAttribute(hConsole, saved_colors); Sleep(2000); } if (fishtype == 1) { system("cls"); cout << "Argh! You just found: " << "A bag Of Trash!" << endl; cout << "You lose 1 fish :(" << endl; fish = fish - 1; if (fish == -1) fish++; cout << "Your Fish Amount: "; SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_INTENSITY); cout << fish << endl; SetConsoleTextAttribute(hConsole, saved_colors); Sleep(2000); } if (fishtype == 2) { system("cls"); cout << "You just got an: " << "Gold Fish! Congrats!"; fish++; cout << "Your Fish Amount: "; SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_INTENSITY); cout << fish << endl; SetConsoleTextAttribute(hConsole, saved_colors); Sleep(2000); } fishing = false; }
3 Réponses :
Parce que vous l'avez dit:
fishing = false;
à la fin de votre tandis que vous faites Pêche = FALSE code> et boucle extrémités parce que
Pêche == true code> retour 0
fishing = false;
if (fishing == false) {
system("cls");
cout << "Do you wish to fish again?" << endl;
cout << "Current Amount of fish: ";
cout << fish << endl;
cin >> hellyea;
if (hellyea == 1)
fishing = true;
}
while (fishing == true) {
// the "waiting to catch a fish" part
// randomly selecting type of fishes
system("cls");
srand(time(NULL));
auto iSecret = rand() % 3;
if (iSecret == 0) {
system("cls");
cout << "You just got an: " << "Common Carp!" << endl;
fish++;
cout << "Your Fish Amount: ";
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << fish << endl;
SetConsoleTextAttribute(hConsole, saved_colors);
Sleep(2000);
}
if (iSecret == 1) {
system("cls");
cout << "Argh! You just found: " << "A bag Of Trash!" << endl;
cout << "You lose 1 fish :(" << endl;
fish = fish - 1;
if (fish == -1)
fish++;
cout << "Your Fish Amount: ";
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << fish << endl;
SetConsoleTextAttribute(hConsole, saved_colors);
Sleep(2000);
}
if (iSecret == 2) {
system("cls");
cout << "You just got an: " << "Gold Fish! Congrats!";
fish++;
cout << "Your Fish Amount: ";
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << fish << endl;
SetConsoleTextAttribute(hConsole, saved_colors);
Sleep(2000);
}
}
Vous n'avez pas besoin de définir une variable sur true code> quand c'est
vrai code> déjà.
Pourquoi sur Terre avez-vous renommé FishType CODE>, qui est un nom de variable parfaitement descriptif, à
isecret code>, qui sonne comme une mauvaise application iPhone et ne vous dit rien?
Vous pouvez ouvrir vos yeux et vérifier que Stephan a renommé que la variable. Je n'ai jamais changé de noms de variables à certains que je veux s'ils existent déjà.
Si vous voulez continuer à pêcher après avoir attrapé un poisson Vous devrez mettre le "Voulez-vous pêcher à nouveau?" à l'intérieur d'une boucle séparée pour / tandis que la question est demandé à nouveau après avoir attrapé un poisson. p>