C# 计数器每次下降4而不是1(C)

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

我是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' };
        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是什么?你能重命名它们以使代码更可读吗?请学习使用调试器并逐步完成代码,调查变量,因为这是一个调试问题。谢谢,我会花更多的时间来解决这个问题