我正在尝试用C#创建一个刽子手游戏,但我必须注意很多事情。我需要使用StreamReader
,我必须将用户的记录保存在一个文件中(用户的名字,他们试图赢得游戏的次数等),我必须制作一个用户的菜单可以选择一个新的单词主题,或只是重置当前的游戏。
所以到目前为止我所拥有的是“加密”。单词的字母用短划线写出,我可以要求用户选择一个名字,然后选择一个主题。
但是,当用户找到一封信时,我怎么能让程序知道呢?
我希望它是这样的:
Word:-----(apple),如果用户键入p,则会出现一个新行,但这次显示“-pp--”。我该怎么做?
其中当前状态的代码:
static void wordLength()
{
StreamReader sr = new StreamReader(@"C:\Users\hardi\Desktop\Programozás\gyumolcsok.txt", Encoding.GetEncoding("iso-8859-2"));
string szo = Convert.ToString(sr.ReadLine());
{
for (int i = 0; i < szo.Length; i++)
{
Console.Write("_");
}
}
}
static void userName()
{
Console.Clear();
Console.WriteLine("What's your name? ");
string user = Console.ReadLine();
}
static void category()
{
Console.Clear();
Console.WriteLine("Choose a number to specify the topic: ");
Console.WriteLine("1: Fruit \n2: Animals");
int caseSwitch = Convert.ToInt32(Console.ReadLine());
switch (caseSwitch)
{
case 1:
Console.WriteLine("Category: Fruit");
StreamReader sr = new StreamReader(@"C:\Users\hardi\Desktop\Programozás\gyumolcsok.txt", Encoding.GetEncoding("iso-8859-2"));
break;
case 2:
Console.WriteLine("Category: Animals");
StreamReader sr1 = new StreamReader(@"C:\Users\hardi\Desktop\Programozás\allatok.txt", Encoding.GetEncoding("iso-8859-2"));
break;
default:
Console.WriteLine("The given number is not an option.");
return;
}
}
static void Main(string[] args)
{
userName();
category();
wordLength();
Console.ReadKey();
}
}
}
答案 0 :(得分:0)
您可以这样做的一种方法是将单词视为char数组,并将用户在另一个char数组中进行的猜测存储起来。然后,对于单词中的每个字符,如果它存在于“guessedLetters”数组中,则显示它,否则显示“ - ”字符。
例如,此方法接受用户猜测的单词和字符列表,并且仅显示正确猜到的字符:
private static string GetMaskedWord(string word, List<char> lettersGuessed)
{
if (word == null) return word;
if (lettersGuessed == null) return new string('-', word.Length);
return string.Join("", word.Select(c => lettersGuessed.Contains(c) ? c : '-'));
}
使用示例:
private static void Main()
{
string word = "apple";
// This stores the guessed characters, currently only a 'p'
var guessedLetters = new List<char> {'p'};
Console.WriteLine(GetMaskedWord(word, guessedLetters));
GetKeyFromUser("\nDone! Press any key to exit...");
}
<强>输出强>