私はハングマンゲームに取り組んでいますが、デバッグで毎回guessIndexが数字を生成しているにもかかわらず、words配列から単語を選びません。私はデバッグして、私は100%が数字を作成することを知っていますが、currentWordはまだnullです。誰でもこれを解決するのに役立つことができますC#無作為にWordが選択できない
namespace Guess_The_Word
{
public partial class Form1 : Form
{
private int wrongGuesses = 0;
private int userGuesses;
private string secretWord = String.Empty;
private string[] words;
private string currentWord = string.Empty;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
LoadWords();
setUpWords();
}
private void guessBtn_Click(object sender, EventArgs e)
{
wrongGuesses++;
if (wrongGuesses <= 0)
{
MessageBox.Show("You have lost! The currect word was {0}", currentWord);
}
}
private void LoadWords()
{
string path = (@"C:\commonwords.txt"); // Save the variable path with the path to the txt file
string[] readText = File.ReadAllLines(path);
words = new string[readText.Length];
}
private void setUpWords()
{
wrongGuesses = 0;
int guessIndex = (new Random()).Next(words.Length);
currentWord = words[guessIndex];
userGuesses = currentWord.Length;
}
private void ResetGame()
{
//.Show("You have {0} guesses for this word, guess three in a row to win!");
}
private void resetGamebtn_Click(object sender, EventArgs e)
{
LoadWords();
}
}
}
私は System.NullReferenceExceptionを取得:「オブジェクト参照がオブジェクトのインスタンスに設定されていません。」このライン
words = new string[readText.Length];
readText.Length
長のnull
文字列の配列を作成します。ライン58
新しい乱数が必要になるたびに、新しいランダムインスタンスを作成しないでください。新しい乱数値が必要な場合は、単一の 'Random'インスタンスを作成して再利用する必要があります。 – Michael
Line 58 ...ここに梁番号がないので特別に知っていると便利です... – rene