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

时间:2014-11-06 01:30:15

标签: c++ visual-studio-2013

目前我正在用C ++制作一个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;
}

2 个答案:

答案 0 :(得分:1)

对于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;
    }
}

这应该解决你所有的问题(现在)。

答案 1 :(得分:1)

正如拉菲指出你正在比较i < hits当然等同于i < 0

另请注意您的代码行:

guessWord[i] == guess;

不是作业:它是比较 - 谨防==而不是=