![](/img/trans.png)
[英]How to have a c# console application wait (synchronously) for user input (ReadKey/ReadLine) for a duration?
[英]C# Console - how to set up a countdown timer limtit to user input with readline
我正在尝试在 C# 控制台应用程序中编写一个非常简单的数学游戏。 该程序将向用户提出一个简单的数学问题。 用户必须通过键入答案进行响应,然后按回车键。 我用了代码
userinput = Convert.ToInt32(Console.Readline());
代码来做到这一点。 但是,我需要用户在问题被问到后的三秒内给userinput变量赋值。 所以,我必须在问题被问到后立即开始倒计时。 如果用户在三秒内没有输入答案并按回车键,程序将显示消息“本题超时”并立即显示下一个问题。 如果用户可以在三秒内键入答案并按回车键,程序应立即停止倒计时并评估用户的答案。 如果你能帮助我,我会很高兴。 非常感谢你提前。
注意:我阅读了类似的线程,但它们基于 readykey 类型的用户输入。 我需要一个 readline 类型的输入。
一些伪代码:
ask the problem;
start the timer;
if (the user types the answer and presses enter within three seconds)
{
evaluate the answer;
go to the next question;
}
else
{
prompt timeout;
go to the next question;
}
倒数计时器是为任何游戏或活动增添额外挑战和刺激的好方法。 在本文中,我们将为您提供有关如何在 C# 控制台中使用 readline 设置用户输入倒数计时器限制的分步指南。
第一步是导入 C# 控制台命名空间。 这将使您能够访问设置倒数计时器所需的 readline 和 Console 类。 为此,只需将以下代码放入您的项目中:
使用系统;
接下来,您需要创建一个用于设置计时器限制的方法。 在此示例中,我们将使用循环从用户指定的值倒数到零。 为此,声明一个名为“limit”的新变量 integer 并将其设置为 ReadLine() 方法的结果。 此方法将提示用户输入他们想要用作计时器限制的值:
int limit = int.Parse(Console.ReadLine());
现在,您需要设置倒计时循环。 该循环将继续运行,直到达到零。 在循环内,您可以使用 Console.WriteLine() 方法打印出当前留给用户的时间。 每次迭代后,您需要将 limit 变量的值减一:
while (limit > 0)
{
Console.WriteLine("Time left: " + limit);
limit--;
}
最后,您需要添加一些代码以在计时器归零时打印出一条消息。 这可以通过再次使用 Console.WriteLine() 方法来完成,这次使用一条消息通知用户他们的时间已用完:
if (limit == 0)
{
Console.WriteLine("Time's up!");
}
这样,您就成功地在 C# 控制台中使用 readline 为用户输入创建了倒数计时器限制。 这个简单的脚本可用于为您创建的任何游戏或活动添加一些额外的挑战和刺激。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.