C# 计数器每次下降4而不是1(C)
我是C#的新手,在学习了基础知识后,我决定做一个刽子手游戏。问题是,一个通常在我每次错过一封信时从8减1的计数器会倒4,我不知道为什么C# 计数器每次下降4而不是1(C),c#,C#,我是C#的新手,在学习了基础知识后,我决定做一个刽子手游戏。问题是,一个通常在我每次错过一封信时从8减1的计数器会倒4,我不知道为什么 static void Main(string[] args) { int Chances= 8; bool key = false; int N= 10; char[] Word = { 'P', 'R', 'O', 'G', 'R', 'A', 'M' }; Conso
static void Main(string[] args)
{
int Chances= 8;
bool key = false;
int N= 10;
char[] Word = { 'P', 'R', 'O', 'G', 'R', 'A', 'M' };
Console.WriteLine("The word is:_ _ _ _ _ _ _");
Console.Write("Please input a letter:");
while (key == false)
{
char letter = Convert.ToChar(Console.Read());
N = Numberofletter(letter);
Console.WriteLine(N);
while (N == 0 && Chances > 0)
{
Chances--;
Console.WriteLine("The letter is incorrect you have " + K + " tries Remaining");
letter = Convert.ToChar(Console.Read());
};
if (Chances == 0)
{
Console.WriteLine("Gameover");
return;
}
static int Numberofletter(char letter)
{
int N = 0;
char[] Word = { 'P', 'R', 'O', 'G', 'R', 'A', 'M' };
if (Word[0] == letter)
{ N = 1; }
else if (Word[1] == letter)
{ N = 2; }
else if (Word[2] == letter)
{ N = 3; }
else if (Word[3] == letter)
{ N = 4; }
else if (Word[5] == letter)
{ N = 6; }
else if (Word[6] == letter)
{ N = 7; }
else { N = 0; }
return N;
}
问题出在您的while循环中 进入循环时,N=猜测字母的位置=0。 在循环内部,您要求另一个字母,但从未计算其位置。 因此,即使字母在单词中,您也从未重新分配过N的值。这意味着循环将继续运行并递减
几率
,直到几率<0代码>
简单地加上
N = Numberofletter(letter);
在您阅读下一封信后。我不知道是否还有其他人会遇到与我相同的问题,但我会将我的错误张贴在这里,因此至少我希望不会重蹈覆辙
而不是letter=Convert.ToChar(Console.Read())代码>
您应该使用letter=Convert.ToChar(Console.ReadLine())代码>
我不知道为什么会出现这个问题,但它发生了。随机尝试一下,它成功了。什么是Numberofletter()
?我使用Numberofletter作为一种方法,将用户输入转换为numbersorry,用于我的随机评论和我在这方面非常新的东西……N和K是什么?你能重命名它们以使代码更可读吗?请学习使用调试器并逐步完成代码,调查变量,因为这是一个调试问题。谢谢,我会花更多的时间来解决这个问题