Ich erstelle ein Henker-Spiel für die Schule. Die zu erratenen Wörter werden aus einer Datendatei gezogen, das Programm wählt das letzte Wort aus der Datei als das für das Spiel zu verwendende Wort, 'words' ist die Variable, die ich dafür verwendet habe, wie das Spiel geht , der Benutzer errät einen Buchstaben und wenn der Buchstabe in dem Wort ist, ist es korrekt und wenn nicht, ist es inkorrekt und das Programm zeigt progressiv eine "Tafel" oder ein Bild des Henkers an.mit str.find() zu sehen, ob ein bestimmter Buchstabe in einem Wort ist
ich str.find()
erraten, um zu sehen verwendet, wenn der Buchstabe im Wort ist, wird der Code wie folgt:
while (wrongGuess < 7){
cout << "\nGuess a letter in the word: " << endl;
cin >> guess;
if (words.find(guess)==true){
cout << "Correct! " << guess << " is FOUND in the word " << word << endl;
continue;}
else
{cout << guess << " is NOT FOUND in the word " << endl;
wrongGuess++;
if(wrongGuess == 1)
cout << board2;
else if(wrongGuess == 2)
cout << board3;
else if(wrongGuess == 3)
cout << board4;
else if(wrongGuess == 4)
cout << board5;
else if(wrongGuess == 5)
cout << board6;
else if(wrongGuess == 6)
cout << board7 << "\nSorry Game Over";
}
Das Wort, das programming
ist, verwendet wird.
Mein Problem ist manchmal, wenn ich einen richtigen Brief eingeben (wie r
) es sagt mir, ich habe Recht, andere Male gebe ich einen anderen richtigen Brief (p
) und das Programm sagt mir, dass ich falsch liege.
Was habe ich falsch?
'words.find (Vermutung) == true' - aber string :: kehrt Position zu finden, nicht ein wahr/falsch ... –
beachten Sie auch die "Zeichenfolge, die die STL-Container" Schnittstelle (mit std :: find) anstelle der Elementfunktion; Diese Schnittstelle ist konsistenter mit dem Rest der Sprache als die Aufeinanderfolge von Elementfunktionen –