我的完整阵列没有显示

my full array isn't being displayed

我应该创建一个从文本文件中随机选择单词的游戏。然后这个词被加扰并显示给用户。然后用户必须尝试猜测原始单词。完成后,他们按“检查答案”并显示它们是否正确。这是我第一次在 C# 中做任何事情(我已经习惯了 Java),所以如果适用,我将不胜感激基本解释。我已经编写了大部分程序,但是当显示打乱的单词时,它不会显示整个打乱的单词,只有大约 3 个字母,有时每个单词显示相同的 3 个字母。我查看了我的代码,但找不到问题所在。我做了一些快速测试,我知道文件正在被读入,并且 origWords[] 数组中确实存储了一个完整的单词。这使我相信问题出在 jumbleWords() 方法中。感谢所有帮助。

编辑:我将代码缩减到我认为有问题的地方。

private string jumbleWords(String origWord)
{
    // converts word to char array
    char [] charArray = origWord.ToCharArray();  
    // creates bool array with length of charArray
    bool [] letterCheck = new bool [charArray.Length];    
    for (int i = 0; i < letterCheck.Length; i++)
    { 
        letterCheck[i] = false;
    }

    Random letterAssign = new Random();
    string jumble = null;

    for (int index = 0; index < charArray.Length; index++)  //jumbling     of word
    {
        // picks random letter (number position of array)        
        int letterChosen = letterAssign.Next(charArray.Length);   
        if (letterCheck[letterChosen] == false) //check if letter has been used    
        {
            jumble += charArray[letterChosen];  //adds letter to jumble string
            // changes bool array position to true so it can't be used again        
            letterCheck[letterChosen] = true;   
        }
    }
    return jumble;
} 

当您检查某个字母是否已被使用时,如果被使用,您只需继续到下一个位置。相反,您需要重试,直到收到未使用过的字母。最简单的方法就是减少循环变量,以便它再次尝试插槽。

此外,您选择单词的逻辑没有检查是否已选择单词 - 您每次只是从整个文件中随机选择一个,所以您经常会得到相同的单词一遍又一遍地。