刽子手控制台应用程序
本文关键字:应用程序 控制台 刽子手 | 更新日期: 2023-09-27 18:35:50
我目前正在做一个小项目,我正在创建一个刽子手游戏作为控制台应用程序。目前,我遇到了问题,因为我想为要猜测的单词创建一个数组。这个词不是随机的,永远是一样的。在这种情况下,它是"米勒"。我想为"miller"创建一个数组,并有一个循环来显示单词字符数组中的每个字母。当字母猜对时,我想显示正确的字母,如果没有显示特殊字符"*"代替它。因此,例如,单词是"miller",并且首先显示为"******"。当用户猜对一个字母时,一个特殊字符将成为猜对的字母。所以,假设用户猜"我"...然后显示的单词将是"*i****"。假设他接下来猜"l"...然后显示的单词将是"*ill**"。我将如何做到这一点?这是我到目前为止的代码...我已经创建了已经尝试为此创建一个数组。抱歉,如果这看起来微不足道,但我是编程新手,只需要一些指导和帮助。
TLDR;我需要有关此代码的帮助。我正在尝试制作一个包含"miller"的数组,我希望能够在用户猜出正确字母时调用该数组,将特殊字符"*"的显示更改为他猜对的字母。有人告诉我,绕一个 for 循环是最好的路线,但我有点迷茫。帮助?
static void Main(string[] args)
{
char[] guessed = new char[26];
char[] word = "miller".ToCharArray();
char guess;
int score = 0, index = 0;
Console.WriteLine("******");
for (int i = 0; i < 10; i++)
{
Console.Write("Please enter a letter to guess: ");
guess = char.Parse(Console.ReadLine());
if (guess == l1 || guess == l2 || guess == l3 || guess == l4 || guess == l5 || guess == l6)
{
Console.WriteLine("Your guess is correct.");
guessed[index] = guess;
index++;
}
else
{
Console.WriteLine("Your guess is incorrect.");
score++;
}
}
Console.WriteLine("Your score is " + score);
Console.ReadLine();
}
}
}
这是否是你要找的,也许你下次应该更具体......但我试图为您的问题创建一个解决方案。
static void Main(string[] args)
{
char[] guessed = new char[26];
char[] testword = "******".ToCharArray();
char[] word = "miller".ToCharArray();
char[] copy = word;
char guess;
int score = 0, index = 0;
Console.WriteLine(testword);
for (int i = 0; i < 10; i++)
{
Console.Write("Please enter a letter to guess: ");
guess = char.Parse(Console.ReadLine());
bool right = false;
for (int j = 0; j < copy.Length; j++)
{
if (copy[j] == guess)
{
Console.WriteLine("Your guess is correct.");
testword[j] = guess;
guessed[index] = guess;
index++;
right = true;
}
}
if (right != true)
{
Console.WriteLine("Your guess is incorrect.");
score++;
}
else
{
right = false;
}
Console.WriteLine(testword);
}
Console.WriteLine("Your score is " + score);
Console.ReadLine();
}
在你的文件中包括using System.Linq;
,这里是你的 for 循环。
for (int 1 = 0; i < 10; i++)
{
Console.Write("Please enter a letter to guess: ");
char guess = char.Parse(Console.ReadLine());
if(word.Contains(guess))//checks if the word is is the array word
{
//the guess was correct.
Console.WriteLine("Your guess is correct.");
guessed[index] = guess;
index++;
}
else
{
//the guess was wrong.
console.WriteLine("Your guess is incorrect.");
....
}
}
希望这有帮助。
看起来你离那里很近。 我不确定的两件事是 if 语句"guess == l1 ||猜测 == L2" 等...这可以通过以下方式处理:
if(word.Contains(guess))
其次,您将需要另一个 for 循环来浏览正确猜测的字母并放置它们。
for 循环填写字母而不是星号:把它放在 for 的开头(int i = 10...)
for (int j = 0; j < word.Length; j++)
{
if (guessed.Contains(word[j]))
{
Console.Write(word[j]);
}
else
{
Console.Write("*");
}
}