J'écris un jeu de pendu. J'ai une logique qui échoue, à la fois avec moi-même et ma logique de jeu. Char deviner (la lettre que la personne a devinée) n'est pas ajouté dans la fente de mémoire correcte du vecteur guessArray. Supposons que ce mot est un mot entré par l'utilisateur.Quelle est la similarité entre un vecteur std :: et un tableau brut en C++?
Je suppose que cela fonctionnerait si guessArray était un tableau brut. Y at-il une raison pour laquelle cela ne fonctionne pas avec un vecteur?
//assume that attempts is num of attempts left
void coutWord(int attempts, std::string word, char guess)
{
std::vector<char> guessArray(word.length());
//this is supposed to add the guess to the correct area of guessArray;
//It's not.
for (int i = 0; i < word.length(); i++) {
if (guess == word[i]) {
guessArray[i] = guess;
std::cout << " " << guessArray[i] << " ";
continue;
}
std::cout << " _ ";
}
std::cout << std::endl << std::endl;
}
EDIT: Mon objectif avec ce code est de tous les espaces cout unguessed et les espaces devinés dans la même boucle. J'ai juste besoin de "me souvenir" des suppositions précédentes pour obtenir une sortie correcte. Compte tenu de mot = "compote de pommes":
Input: a
a _ _ _ _ _ a _ _ _
Input: p
a p p _ _ _ a _ _ _
etc.
Cela semble être du code assez bogué, indépendamment du fait que guessArray soit un vecteur ou un tableau brut. Pour être en mesure de répondre à votre question, vous devez dire ce que vous ESSAYEZ de faire ici. EG, si le mot était "Triangulate", et devinez "g", que devrait être la sortie? –
Donc devrais-je passer le vecteur comme un autre argument? – jkeys
En fonction de votre fonction, vous devrez également parcourir toutes les suppositions précédentes, car vous ne sauvegardez pas guessArray entre les appels. Vous voudrez probablement le passer comme un autre argument, oui. –