Итак, раньше я задал вопрос о том, как запустить строку через массив символов, чтобы каждая буква была равна отдельному значению символа в массиве.Hangman Game, итерация по массивам с циклом for в C#
Я пробовал использовать цикл foreach, а затем маркировал каждый объект в массиве «Угадай», а затем тестировал каждое значение в соответствии с введенным пользователем значением, но тогда я не мог понять, как выводить в конце цикла если пользователь ввел ложное значение. вместо вывода каждый раз, когда значение было ложным относительно значений массива, поскольку цикл предназначен для выполнения чего-либо для каждого значения.
Так что я застрял. Я думаю, что есть способ сделать это с циклом for, но я все еще вроде noobish. Мне было интересно, может ли кто-нибудь помочь мне.
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!");
}
Не * втиснуть все * в одном sinle методе. Разложите свою реализацию. –