C# c语言中的数字猜谜游戏

C# c语言中的数字猜谜游戏,c#,C#,我正在VisualStudio上研究c语言中的二进制搜索。我关于计算机的项目找到用户的猜测数字。因此,我主要使用tihs代码 int min = 0; // minimum number in the array int max = 100; // maximum number in the array int middle = 50; // middle number in the array int counter

我正在VisualStudio上研究c语言中的二进制搜索。我关于计算机的项目找到用户的猜测数字。因此,我主要使用tihs代码

        int min = 0;    // minimum number in the array
        int max = 100;    // maximum number in the array
        int middle = 50;  // middle number in the array
        int counter = 1;
        string name, input;
        int guess_number;

        Console.WriteLine("Hello, this is a game that finding the number of in your mind. If you want to play so let me know you! ");
        name = Console.ReadLine();
        Console.WriteLine("Awesome welcome to the game " + name + " guess a number between " + min + " and " + max + " Please! ");
        Console.WriteLine("Is your guess " + middle + " ?\nIf it's your guess then write (0) please!\nIf it's too high then write (1) please!\nIf it's too low then write (2) please!");
        input = Console.ReadLine();
        guess_number = Convert.ToInt32(input);
        Console.WriteLine(" You select " + guess_number + " so, ");

        do
        {
            counter += 1;

            if (guess_number == 2)
            {
                min = middle + 1;
            }
            else if (guess_number == 1)
            {
                max = middle - 1;
            }
            else if (guess_number != 1 || guess_number != 2 || guess_number != 0)
            {
                Console.WriteLine(" Please write 0, 1 or 2 " + name);
            }
            middle = (min + max) / 2;
            Console.WriteLine("Is your guess " + middle + " ?\nIf it's your guess then write (0) please!\nIf it's too high then write (1) please!\nIf it's too low then write (2) please!");

            Console.WriteLine(counter + " times I tried for finding your number ");
        } while (guess_number != 0);

        Console.ReadKey();

但是,输出总是在用户写入任何内容后重复,原因是什么,是否仍然可以获取数字?

最后一个readKey应该在while内

do
        {
            counter += 1;

            if (guess_number == 2)
            {
                min = middle + 1;
            }
            else if (guess_number == 1)
            {
                max = middle - 1;
            }
            else if (guess_number != 1 || guess_number != 2 || guess_number != 0)
            {
                Console.WriteLine(" Please write 0, 1 or 2 " + name);
            }
            middle = (min + max) / 2;
            Console.WriteLine("Is your guess " + middle + " ?\nIf it's your guess then write (0) please!\nIf it's too high then write (1) please!\nIf it's too low then write (2) please!");

            input = Console.ReadLine();
            guess_number = Convert.ToInt32(input);

            Console.WriteLine(counter + " times I tried for finding your number ");
        } while (guess_number != 0);

最后一个readKey应该在while中

do
        {
            counter += 1;

            if (guess_number == 2)
            {
                min = middle + 1;
            }
            else if (guess_number == 1)
            {
                max = middle - 1;
            }
            else if (guess_number != 1 || guess_number != 2 || guess_number != 0)
            {
                Console.WriteLine(" Please write 0, 1 or 2 " + name);
            }
            middle = (min + max) / 2;
            Console.WriteLine("Is your guess " + middle + " ?\nIf it's your guess then write (0) please!\nIf it's too high then write (1) please!\nIf it's too low then write (2) please!");

            input = Console.ReadLine();
            guess_number = Convert.ToInt32(input);

            Console.WriteLine(counter + " times I tried for finding your number ");
        } while (guess_number != 0);

根据您的描述,我认为您需要让用户输入新值,以在循环结束时猜测_number变量,否则循环将不会从条件guess_number!=0


根据您的描述,我认为您需要让用户输入新值,以在循环结束时猜测_number变量,否则循环将不会从条件guess_number!=0



你能告诉我们你的逻辑吗?我的意思是,我想从用户0,1,2中提取一个数字,然后用计算机通过二进制搜索找到这个数字。这行:'else if guess_number!=1 | |猜猜数字!=2 | |猜猜数字!=“0”可以缩短为:“else if guess!=因为你已经检查了它是一个还是两个。谢谢你,我做到了:你太棒了!哇,谢谢你,波尔,我也修复了那部分:它帮了大忙,你真了不起。你能告诉我们你的逻辑吗?我的意思是,我想从用户0,1,2中提取一个数字,然后用计算机进行二进制搜索。这行:'如果猜到数字,那么就另当别论!=1 | |猜猜数字!=2 | |猜猜数字!=“0”可以缩短为:“else if guess!=因为你已经检查了它是一个还是两个。谢谢你,我做到了:你太棒了!哇,谢谢你,波尔,我也修复了这个部分:它帮了很多忙,你真了不起是的,我试过了,但用户输入一个数字后,它并没有说你选择了2,所以,布拉布拉布拉。。。另外,如果用户写了9,那么它会让人困惑..谢谢你帮助n1989,你太棒了:是的,我试过了,但是在用户输入一个数字之后,它并没有说你选择了2所以,等等。。。另外,如果用户写了9,那么它会让人困惑。谢谢你帮助n1989,你太棒了:我几乎尝试过这个:谢谢你们,伙计们:我花了这么多时间:谢谢你,D-Shih,:你太棒了@没问题,很乐意帮忙=2和2=1.从技术上讲,第二个else if应该使用&而不是| |。但是,由于if和第一个else if,这些条件已经消除,因此=0恰好执行了预期的功能。也就是说,它可能值得通过切换到正确的运算符或简化为=我几乎要试一下这个了:谢谢你们,伙计们:我为此工作了这么多小时:谢谢你们,D-Shih,:你们太棒了@没问题,很乐意帮忙=2和2=1.从技术上讲,第二个else if应该使用&而不是| |。但是,由于if和第一个else if,这些条件已经消除,因此=0恰好执行了预期的功能。也就是说,它可能值得通过切换到正确的运算符或简化为=0