C# 我如何修正我的列表,让它一次检查一个字母?
我正在学习c#basics,我需要创建一个拼写测试/绞刑架,用户将在其中输入单词,如果它与秘密单词匹配,将按字母进行检查。我已经创建了一个for循环来检查单词,但是出现了一个错误,说它只能在字母上,因为它当然是字符?有办法解决这个问题吗C# 我如何修正我的列表,让它一次检查一个字母?,c#,string,char,listbox,C#,String,Char,Listbox,我正在学习c#basics,我需要创建一个拼写测试/绞刑架,用户将在其中输入单词,如果它与秘密单词匹配,将按字母进行检查。我已经创建了一个for循环来检查单词,但是出现了一个错误,说它只能在字母上,因为它当然是字符?有办法解决这个问题吗 public frmMain() { InitializeComponent(); string[] listwords = new string[10]; listwords[
public frmMain()
{
InitializeComponent();
string[] listwords = new string[10];
listwords[0] = "jungle";
listwords[1] = "forest";
listwords[2] = "horse";
listwords[3] = "beetle";
listwords[4] = "nature";
listwords[5] = "monkey";
listwords[6] = "autumn";
listwords[7] = "spring";
listwords[8] = "flower";
listwords[9] = "birds";
Random randGen = new Random();
var idx = randGen.Next(0, 9);
string guessWord = listwords[idx];
char[] guess = new char[guessWord.Length];
Console.Write("please enter your guess : ");
for (int i = 0; i < guessWord.Length; i++)
guess[i] = '*';
while (true)
{
char userGuess = char.Parse(txtGuess.Text);
for (int i = 0; i < guessWord.Length; i++)
{
if (userGuess == guessWord[i])
guess[i] = userGuess;
}
}
}
public frmMain()
{
初始化组件();
string[]listwords=新字符串[10];
listwords[0]=“丛林”;
listwords[1]=“森林”;
listwords[2]=“马”;
listwords[3]=“甲虫”;
listwords[4]=“自然”;
listwords[5]=“猴子”;
listwords[6]=“秋天”;
listwords[7]=“spring”;
listwords[8]=“花”;
listwords[9]=“鸟”;
Random randGen=新的Random();
var idx=randGen.Next(0,9);
字符串猜测词=列表词[idx];
char[]guess=新字符[guessWord.Length];
控制台。写下(“请输入您的猜测:”);
for(int i=0;i
一些提示:
//all this
char[] guess = new char[guessWord.Length];
for (int i = 0; i < guessWord.Length; i++)
guess[i] = '*';
//can be replaced with
char[] guess = new string('*', guessWord.Length).ToCharArray();
字符串可以像数组一样进行索引<代码>“你好世界”[3]是字符l
。在文本末尾添加一个*
,并获取第一个字符[0]
,这是相对健壮的;它的长度将始终至少为1,如果用户没有输入任何内容,则该操作为no op(将*替换为*)
您在构造函数中的while循环中的代码应该放在按钮单击处理程序中。在表单中添加一个按钮,双击它并将代码放入其中。构造函数中没有无限循环
您的
string guessWord
和char[]guess
应该是类级属性/字段,以便在单击按钮之间记住它们的状态什么是txtGuess
?您将控制台应用程序与WinForms应用程序混淆了。在窗体的构造函数中不能有while(true)
循环。GUI甚至不会出现。在做其他事情之前先解决这个问题。或者制作一个控制台应用程序。
//this fails if .Text is not a string of length 1
char userGuess = char.Parse(txtGuess.Text);
//consider this:
char userGuess = (txtGuess.Text + '*')[0];