计数器一次下降4,而不是一个(C#)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计数器一次下降4,而不是一个(C#)相关的知识,希望对你有一定的参考价值。
我是C#的新手,在学习了基础知识之后,我决定要制作一个Hangman游戏。问题在于,通常每当我错过一个字母时,计数器就从8减1,而我却不知道为什么。
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赋值。这意味着循环将继续运行并递减chances
直到chances < 0;
简单添加
N = Numberofletter(letter);
阅读下一封信后。
另一答案
我不知道是否有人会遇到与我相同的问题,但是我会在这里张贴我的错误,因此至少我希望不会重复出现。
而不是letter=Convert.ToChar(Console.Read());
您应该使用letter=Convert.ToChar(Console.ReadLine());
我不知道为什么会出问题,但是发生了,请随机尝试一下,然后就可以了
以上是关于计数器一次下降4,而不是一个(C#)的主要内容,如果未能解决你的问题,请参考以下文章