C# 在C中用for循环迭代数组的Hangman游戏#
所以,早些时候我发布了一个问题,询问如何在字符数组中运行字符串,使每个字母等于数组中一个单独的字符值 我尝试使用foreach循环,然后将数组中的每个对象标记为“Guess”,然后根据用户输入的值测试每个值,但是如果用户输入了一个假值,我就不知道如何在循环结束时输出。而不是每次值对数组值为false时都输出,因为循环的目的是为每个值做一些事情 所以我有点被卡住了。我认为有一种方法可以通过for循环来实现,但我还是有点不懂装懂。我想知道是否有人能帮我C# 在C中用for循环迭代数组的Hangman游戏#,c#,arrays,loops,for-loop,foreach,C#,Arrays,Loops,For Loop,Foreach,所以,早些时候我发布了一个问题,询问如何在字符数组中运行字符串,使每个字母等于数组中一个单独的字符值 我尝试使用foreach循环,然后将数组中的每个对象标记为“Guess”,然后根据用户输入的值测试每个值,但是如果用户输入了一个假值,我就不知道如何在循环结束时输出。而不是每次值对数组值为false时都输出,因为循环的目的是为每个值做一些事情 所以我有点被卡住了。我认为有一种方法可以通过for循环来实现,但我还是有点不懂装懂。我想知道是否有人能帮我 char letter;
char letter;
int score = 0;
string hangWord;
//input inputs
Console.WriteLine("Welcome to the hangman game!");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Player 1 please enter a word.");
hangWord = Convert.ToString(Console.ReadLine());
char[] hangCharacters = hangWord.ToCharArray();
char[] asteriskWord = hangWord.ToCharArray();
string displayWord;
foreach (char guess in asteriskWord)
{
asteriskWord[guess] = '*';
}
while (score < 5)
{
Console.WriteLine("Enter a letter please");
Console.WriteLine();
foreach (char guess in hangCharacters)
{ //How do I write a loop that tests all values and if none are correct
//displays "You guessed incorrectly"?
letter = Convert.ToChar(Console.ReadLine());
if( guess == letter)
{
Console.WriteLine("You guessed correctly!");
Console.WriteLine
//Also I don't know how to change the correct value in the asteriskWord[] so that it displays
//only the character that was guessed in asteriskWord[]
}
}
}
Console.WriteLine("Your score is " + score);
if (displayWord == hangWord)
Console.WriteLine("You Win! Thank you for playing!");
else
{
Console.WriteLine("Thank you for playing! Try again!");
}
char字母;
智力得分=0;
串字;
//输入
控制台.WriteLine(“欢迎来到刽子手游戏!”);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine(“播放器1请输入一个单词”);
hangWord=Convert.ToString(Console.ReadLine());
char[]hangCharacters=hangWord.ToCharArray();
char[]asteriskWord=hangWord.ToCharArray();
字符串显示字;
foreach(星号中的字符猜测)
{
星号[猜测]='*';
}
而(得分<5分)
{
Console.WriteLine(“请输入一封信”);
Console.WriteLine();
foreach(字符中的字符猜测)
{//如何编写一个循环来测试所有值,如果没有一个值是正确的
//显示“您猜错了”?
字母=Convert.ToChar(Console.ReadLine());
如果(猜测==字母)
{
WriteLine(“你猜对了!”);
控制台写入线
//此外,我不知道如何更改星号[]中的正确值以使其显示
//只有在星号[]中猜到的字符
}
}
}
Console.WriteLine(“你的分数是”+分数);
if(displayWord==hangWord)
控制台。WriteLine(“你赢了!谢谢你玩!”);
其他的
{
Console.WriteLine(“谢谢您玩!再试一次!”);
}
在foreach将bool标志设为false之前,仅当字母匹配时才在foreach内部设为true,否则将保持false。迭代后测试条件,并根据标志状态显示消息。您可以稍微更改一下逻辑,看看猜测是否在挂起字符中。此时,您只检查用户输入的字母是否是当前迭代的字母
letter = Convert.ToChar(Console.ReadLine());
if(hangCharacters.Any(c => c == letter))
Console.WriteLine("You guessed correctly!");
else
Console.WriteLine("You guessed incorrectly!");
要使用以上内容,您需要包括
System.Linq
谢谢,这很有意义!我会支持你的评论,但我还是个笨蛋。我还需要4个重复lol,但我会记住你的。不要把所有的东西都塞进一个单音法。分解您的实现。