![](/img/trans.png)
[英]Hangman game: error if the quessword contains a letter more than once
[英]My hangman game displays more dashes “-” than supposed to
我是编程新手,目前正在通过创建一个刽子手游戏来挑战自己,我编写了一些代码,它需要一个单词,将它分成一个 char 数组,接受一个答案并显示答案。问题是每次for 循环在 main 中运行,更多的破折号“-”不断出现。
提前感谢人们的回答,快乐的编码:)
using System; using System.Collections.Generic; using System.Text; namespace Hangman { class Funk { public char[] Word = new char[20]; public char[] GuessedLetters = new char[20]; public string HiddenWord = "-"; public string GetHiddenWord() { for (int i = 1; i < Word.Length; i++) { HiddenWord += "-"; } return HiddenWord; } public bool IsAnswerCorrect() { if ( 10 == 10) { return true; } else { return false; } } public void SetGuessedLetters(char answer, int value) { GuessedLetters[value] = answer; } public Funk(string word) { Word = word.ToCharArray(); } } }
using System; namespace Hangman { class Program { static void Main(string[] args) { //Get word and set word //Write Word as hidden //take letter as guess //Hangman mechaniks bool GameOver = false; int NumberOfGuesses = 6; Console.WriteLine("Enter Word"); string name = Console.ReadLine(); Console.Clear(); Funk funk = new Funk(name); while (GameOver == false) { for (int i = 0; i < funk.Word.Length; i++) { Console.WriteLine(funk.GetHiddenWord()); Console.WriteLine("Guess away, you have " + NumberOfGuesses + " guesses left"); Console.WriteLine("Answers:" + funk.GuessedLetters[0] + funk.GuessedLetters[1] + funk.GuessedLetters[2] + funk.GuessedLetters[3] + funk.GuessedLetters[4] + funk.GuessedLetters[5] + funk.GuessedLetters[6] + funk.GuessedLetters[7]); char answer = Console.ReadKey().KeyChar; funk.SetGuessedLetters(answer, i); Console.Clear(); } } } } }
把初始化HiddenWord = "-";
在GetHiddenWord()
方法中:
public string GetHiddenWord()
{
HiddenWord = "-"; // init every time here
for (int i = 1; i < Word.Length; i++) {
HiddenWord += "-";
}
return HiddenWord;
}
实际上,如果您不重新将HiddenWord
重新初始化为空,您 append 就会出现更多破折号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.