随机数猜测游戏C#

随机数猜测游戏C#,c#,C#,我的代码目前有两个问题,我似乎不知道如何解决,它们以前是有效的,但现在根本不起作用 我遇到的问题是,当用户得到正确的答案时,它不会显示询问他们是否希望结束或再次播放的对话。如果我进入对话时,用户没有猜到正确的数字,并且用户选择y(是)继续,它没有,只是挂起 这是我目前所拥有的,因为如果我能弄明白这一点,那么其他的应该会更容易 代码: 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 使用System.Threading.Task

我的代码目前有两个问题,我似乎不知道如何解决,它们以前是有效的,但现在根本不起作用

我遇到的问题是,当用户得到正确的答案时,它不会显示询问他们是否希望结束或再次播放的对话。如果我进入对话时,用户没有猜到正确的数字,并且用户选择y(是)继续,它没有,只是挂起

这是我目前所拥有的,因为如果我能弄明白这一点,那么其他的应该会更容易

代码:

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
名称空间随机数
{
公共课程
{
公共静态void Main(字符串[]args)
{
Random gen=新的Random();
整数;
bool over=false;
字符串用户选择;
int guess=0;
int计数器=0;
当(!结束)
{
过度=正确;
控制台.WriteLine(“1-简单:1-10”);
控制台.WriteLine(“2-中等:1-50”);
控制台写入线(“3-硬:1-100”);
控制台。写下(“请输入你想玩的难度:”);
string str=Console.ReadLine();
开关(str)
{
案例“1”:
WriteLine(“你选择了简单的难度。”);
编号=下一代(1,11);
WriteLine(“我想的是一个介于1-10之间的数字”);
for(guess=Convert.ToInt32(Console.ReadLine());guess!=number;guess=Convert.ToInt32(Console.ReadLine()))
{
如果(猜测<1 | |猜测>10)
{
Console.WriteLine(“请输入1-10之间的数字”);
}
else if(猜测<数字)
{
控制台。写入线(“更高”);
计数器++;
WriteLine(“您还有”+(5-计数器)+“尝试次数”);
}
否则如果(猜测>数字)
{
控制台。写线(“下”);
计数器++;
WriteLine(“您还有”+(5-计数器)+“尝试次数”);
}
其他的
{
WriteLine(“你猜对了!只花了你:“+number+”次尝试。”);
Console.WriteLine(“您想再次播放吗?(y/n)”);
userChoice=Console.ReadLine();
如果(userChoice==“n”)
{
Console.WriteLine(“谢谢玩!”);
环境。退出(0);
}
else if(userChoice==“y”)
{
过度=错误;
}
}
如果(计数器==5)
{
WriteLine(“对不起,你5次尝试都没猜到。”);
Console.WriteLine(“您想再次播放吗?(y/n)”);
userChoice=Console.ReadLine();
如果(userChoice==“n”)
{
Console.WriteLine(“谢谢玩!”);
环境。退出(0);
}
else if(userChoice==“y”)
{
过度=错误;
}
}
}
打破

如果您的猜测是正确的,那么您就没有进入

for (guess = Convert.ToInt32(Console.ReadLine()); guess != number; guess = Convert.ToInt32(Console.ReadLine()))
                                                  ^^^^^^^^^^^^^^^
改进选项:

1.保留for,但将其用作计数器,例如

for (var counter = 0; counter < 5; counter++)
{
    var guess = int.Parse(...);
    ... 
}

如果您的猜测是正确的,您就没有进入

for (guess = Convert.ToInt32(Console.ReadLine()); guess != number; guess = Convert.ToInt32(Console.ReadLine()))
                                                  ^^^^^^^^^^^^^^^
改进选项:

1.保留for,但将其用作计数器,例如

for (var counter = 0; counter < 5; counter++)
{
    var guess = int.Parse(...);
    ... 
}

如果您的猜测是正确的,您就没有进入

for (guess = Convert.ToInt32(Console.ReadLine()); guess != number; guess = Convert.ToInt32(Console.ReadLine()))
                                                  ^^^^^^^^^^^^^^^
改进选项:

1.保留for,但将其用作计数器,例如

for (var counter = 0; counter < 5; counter++)
{
    var guess = int.Parse(...);
    ... 
}

如果您的猜测是正确的,您就没有进入

for (guess = Convert.ToInt32(Console.ReadLine()); guess != number; guess = Convert.ToInt32(Console.ReadLine()))
                                                  ^^^^^^^^^^^^^^^
改进选项:

1.保留for,但将其用作计数器,例如

for (var counter = 0; counter < 5; counter++)
{
    var guess = int.Parse(...);
    ... 
}

不确定这是否是主要问题,但请尝试在设置
over=false
后添加
continue
语句,并使用
return
而不是
环境。退出(0);

不确定这是否是主要问题,但请尝试在设置
over=false
后添加
continue
语句,并使用
return
而不是
环境。退出(0);

不确定这是否是主要问题,但请尝试在设置
over=false
后添加
continue
语句,并使用
return
而不是
环境。退出(0)

不确定这是否是主要问题,但请尝试在设置
over=false
后添加
continue
语句,并使用
return
而不是
Environment.Exit(0);

根据