用Hangman C++中的字母替换占位符

Replacing place holders with letter in Hangman C++

本文关键字:替换 占位符 Hangman C++      更新时间:2023-10-16

现在我正在用C++制作一款Hangman游戏。我目前的问题是,我有一个字符串,它将替换文件中随机选择的单词,并将其替换为"*"。不幸的是,我的代码没有用正确的字母/单词替换它们,我已经用断点检查了单词是什么。请暂时忽略HANGMAN绘图,除非你已经指出如何在这个程序中执行它。如有任何帮助,我们将不胜感激。我的文本文件中包含以下单词:苹果橙色汽车卡车自行车猫狗蛇岩石短袜蓝色红色彩色

我的代码如下:

int wordFill(char guess, string theWordSecret, string&guessWord) //function for determing if you guess a letter contained
{
    int i;
    int hits = 0; //letter hits within the word
    int many = theWordSecret.length();
    for (i = 0; i < hits; i++)
    {
        if (guess == guessWord[i])
            return 0;
        if (guess == theWordSecret[i])
        {
            guessWord[i] == guess;
            hits++;
        }
    }
    return hits;
}

对于wordFill函数内部的启动器,For循环应该说

for (i = 0; i < many; i++)

代替

for (i = 0; i < hits; i++)

要替换神秘中的星号,如果用户猜测正确的字母,请添加以下代码

for (int replace = 0; replace < mystery.length(); replace++)
{
    if (theWord[replace] == letter)
    {
        mystery[replace] = letter;
    }
}

这应该(暂时)解决你所有的问题。

正如Rafi所指出的,您正在比较i < hits,它当然相当于i < 0

还要注意你的代码行:

guessWord[i] == guess;

不是赋值:它是比较-小心==而不是=