找到单词中的每个字母

时间:2013-12-08 03:24:55

标签: c# winforms

我正在制作一个Hangman项目,要求我将字符“ - ”更改为“a到z”。由于我正在学习如何使用C#进行编码,因此我不知道如何进行编码。 我显然需要使用位置,因为这个单词是重复的字母(例如:C oo kies)

这是我开发的代码,它使我的事情崩溃,而且显然是不完整的。

    private void chkA_Checked(object sender, RoutedEventArgs e)
    {
        if (motRechercher.Contains("a"))
        {
            int indexDemotRechercher = motRechercher.IndexOf("a");
            int k = indexDemotRechercher;
            var StringBuilderOP = new StringBuilder(motRechercher);
            StringBuilderOP.Remove(indexDemotRechercher, indexDemotRechercher);
            StringBuilderOP.Insert(k, "A");
        }}

motRechercher是一个STRING,我可以随处使用,我从27个单词列表中随机选择。如果这很麻烦,那就是一个复选框,我写文本的地方是一个文本框(称为txtMot)。 随意使用其他变量,我会根据自己的理解重新适应。我想要一些解释/例子来帮助我学习。

以下是随机发生器的代码,如果您真的觉得这可以帮助您理解[它的工作原理]:

        private void btnDemarrer_Click(object sender, RoutedEventArgs e)
    {
     Random rdn = new Random();
     int nbreAleatoire = rdn.Next(0, 27); 
     motRechercher = lesMots[nbreAleatoire];
            if (motRechercher.Length > 0)
            {
            String str = new String('-', motRechercher.Length);
            txtMot.Text = str;
            }
    }

问题:如何制作检测重复的内容并将“ - ”更改为“a-z”?

提出问题,如果您认为不清楚,我会尝试回答。

2 个答案:

答案 0 :(得分:2)

这是一个快速示例...我有两个字符串...一个用于用户看不到的隐藏字,另一个用于显示的字符串,使用“ - ”或甚至“_”作为占位符实际的人物。

我有一个简单的函数“IsThereA”,它需要一个字母来猜测单词中的字母。然后我打电话给所有的信件,包括一些随机的信件。该函数返回boolean,因此您可以在每次失败时绘制hangman。

在“IsThereA”方法中,我一次看到一个字符用于猜测字母。如果找到,我使用子字符串而不是“ - ”替换它。因此,一旦更新,您可以使用“WordUserCanSee”属性,但需要。

此版本不区分大小写,但您可以根据需要进行调整。

public class Hangman
{
    string HangmanWord = "cookies";
    string WordUserCanSee = "-------";

    public Hangman()
    {
        IsThereA("o");
        IsThereA("f");
        IsThereA("k");
        IsThereA("w");
        IsThereA("i");
        IsThereA("c");
        IsThereA("s");
        IsThereA("e");
    }


    public bool IsThereA(string guessLetter)
    {
        bool anyMatch = false;
        for (int i = 0; i < HangmanWord.Length; i++)
        {
            if (HangmanWord.Substring(i, 1).Equals(guessLetter))
            {
                anyMatch = true;
                WordUserCanSee = WordUserCanSee.Substring(0, i) + guessLetter + WordUserCanSee.Substring(i + 1);
            }
        }

        return anyMatch;
    }
}

答案 1 :(得分:1)

motRechercher = motRechercher.Replace("-", "a-z");