c# - c#中的猜数字游戏
问题描述
我正在开发关于 c# 中二进制搜索的 Visual Studio。我的项目关于计算机找到用户的猜测号码。所以,我主要使用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();
但是,用户写任何东西后输出总是重复,为什么会这样,有没有办法得到数字?
解决方案
根据您的描述,我认为您需要让用户guess_number
在循环结束时向变量输入新值,否则循环不会从条件结束guess_number != 0
。
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 ");
input = Console.ReadLine(); // let user key in new value.
guess_number = Convert.ToInt32(input);
} while (guess_number != 0);
推荐阅读
- clearcase - 用于获取目录中文件版本的清除工具命令(清除大小写)
- r - 如何在 Shiny R 中创建 highcharter 事件函数以创建“下拉函数”
- android - 我在生成发布 apk 时遇到问题我收到 AAPT 错误
- unity3d - 如何为我的 Mac OS 解决 Unity Shader Graph 2018.2 中的问题
- angular - 我无法理解语法:(
组件引用实例) - php - Codeigniter 加入命中
- angular - 为什么 .map 运算符在没有 .pipe (Angular + Angularfire2/auth) 的情况下无法工作?
- math.net - 拟合多项式显示函数
- json - 如何在 React Js 中使用我的 api 进行登录验证
- compiler-errors - 我收到使用 Cmake 的编译错误;编译器使用-clang;错误:使用未声明的标识符“sscanf_l”