从文件读取时的C#Test Box操作

时间:2017-01-07 21:54:47

标签: c# textbox file-handling

我正在尝试编写一个简单的游戏,我的程序会从字典中随机选择一个单词并将其存储在文本框/标签中? (当然不是这个部分)。然后我有另一个文本框,用户输入他的猜测。

现在我想给用户一些hint.F或示例单词: '游戏'看起来像是_一个_'或者' g _ _ e'。我不喜欢角色的放置方式。

我编写了所有以前的代码,包括随机文件处理方法,所有计时器和计数器等。我只是坚持这一部分。

该程序经历以下代码: var lines = File.ReadAllLines(@"LOCATION");
textBox3.Text = lines[new Random().Next(lines.Length)];

从文件中选择一个随机单词。然而,整个单词正在文本框3中显示,而不是像我希望的那样。关于如何进行的想法我完全失去了。我在网上找不到类似的东西。

干杯, [R

2 个答案:

答案 0 :(得分:1)

根据单词的长度从文件中选择一个随机单词后,决定要隐藏多少个单词,然后随机替换这些单词。

这样的事情 -

    public string GetPartialWord(string word)
    {
        if(string.IsNullOrEmpty(word))
        {
            return string.Empty;
        }
        char[] partialWord = word.ToCharArray();
        int numberOfCharsToHide = word.Length / 2;
        Random randomNumberGenerator = new Random();
        HashSet<int> maskedIndices = new HashSet<int>();
        for(int i=0;i<numberOfCharsToHide;i++)
        {
            int rIndex = randomNumberGenerator.Next(0, word.Length);
            while(!maskedIndices.Add(rIndex))
            {
                rIndex = randomNumberGenerator.Next(0, word.Length);
            }
            partialWord[rIndex] = '_';
        }
        return new string(partialWord);
    }

答案 1 :(得分:1)

下面的代码将替换至少一半带下划线的字符。代码接受一个单词并一直生成随机数,直到它用下划线替换了至少一半的字符。

public string ConvertToGuessWord(string word)
{
    var guessWord = word;
    int lastRandom = 0;
    do
    {
        Random rand = new Random();

        int thisRandom = 0;
        do
        {
            thisRandom = rand.Next(0, guessWord.Length);
        } while (lastRandom == thisRandom);

        guessWord = guessWord.Replace(guessWord[thisRandom], '_');

        lastRandom = thisRandom;
    } while (guessWord.Count(x => x == '_') < (word.Length / 2));

    return guessWord;
}