我正在尝试创建一个简单的 Hangman 游戏,到目前为止,我已经让它从文本文件中读取所有单词,但我不知道如何使代码适用于每个单词。我有另一个项目,使用 3/4 个单词但重复嵌套的 if 语句。我想让它尽可能短。这是我到目前为止的代码:
using System;
using System.Linq;
class Program
{
static void Main()
{
string[] words = System.IO.File.ReadAllLines(@"C:\Users\ADMIN\Desktop\Letters\Letters.txt");
int LengthOfArray = words.Length;
Random rnd = new Random();
int random = rnd.Next(1, 3);
char[] letters = words[random].ToCharArray();
bool WordIsHidden = true;
char hiddenChar = '_';
char GuessedLetter = hiddenChar;
var retry = true;
while (retry = true)
{
Console.WriteLine(letters);
letters = GuessedLetter.ToString().ToCharArray();
for (int i = 1; i <= LengthOfArray; i++)
{
Console.Write("{0} ", GuessedLetter);
}
Console.WriteLine("Enter a letter!");
char letter = char.Parse(Console.ReadLine());
if (words[random].Contains<char>(letter))
{
WordIsHidden = false;
GuessedLetter = letter;
Console.Write(letters);
}
else
{
if (WordIsHidden == true)
{
Console.Write("You guessed wrong!");
}
}
}
}
}
另外我试图让游戏显示每个字母,用户已经猜到它的对应位置,但现在字母比单词的其余部分高一行,并且不在正确的位置。
编辑:
Here is the result :
cat
___Enter a letter!
a
__
aaaEnter a letter!
t
aa
tttEnter a letter!
如果有人知道这是从哪里来的以及如何解决它,任何帮助将不胜感激。