我想使用c#控制台应用程序制作一个真正简单的cookie单击器。 这个想法是,每次您单击 spacebar 时,您都会获得一个cookie(无休止) 但是我的代码不起作用,有人知道我做错了或忘记了什么吗?
这是我的代码:
static void Main(string[] args)
{
int cookie = 0;
Console.WriteLine("Coockie Clicker, druk op spatie om te beginnen...");
Console.ReadKey();
Console.Clear();
while (cookie <1000000)
{
Console.ReadLine();
if(Console.ReadLine() == " ")
{
cookie++;
Console.WriteLine("Cookies ="+cookie);
}
else
{
}
Console.ReadKey();
}
}
我希望什么工作?=每次我按空格键(if(Console.ReadLine()==“”)<---在那里的那一点应该将+1添加到int cookie并执行此操作直到1.000。 000,但显然有些东西不起作用
答案 0 :(得分:3)
希望这就是您想要的。
static void Main(string[] args)
{
int cookie = 0;
Console.WriteLine("Coockie Clicker, druk op spatie om te beginnen...");
Console.Clear();
while (cookie < 1000000)
{
if (Console.ReadKey(true).Key == ConsoleKey.Spacebar)
{
cookie++;
Console.Clear();
Console.WriteLine("Cookies =" + cookie);
}
}
}
答案 1 :(得分:2)
如果您只是想为每个空格键单击提供cookie,则可以使用Console.ReadKey
。有一个过载,它带有一个布尔值,指示您是否要“拦截”按键。当您拦截按键时,该值不会显示给用户。
Console.ReadLine
仅在您按回车键时返回一个值。无论如何,该值都会显示给用户。
这是更新的代码示例:
static void Main(string[] args)
{
int cookie = 0;
Console.WriteLine("Coockie Clicker, druk op spatie om te beginnen...");
Console.ReadKey();
Console.Clear();
while (cookie <1000000)
{
var ch = Console.ReadKey(true);
if(ch.KeyChar == ' ')
{
cookie++;
Console.WriteLine("Cookies ="+cookie);
}
}
}
答案 2 :(得分:1)
首先,如果您想使其永无止境,则应使用
while (true)
代替
while (cookie <1000000)
但是请注意,尽管我怀疑您会获得比int.MaxValue更多的cookie,但是从技术上讲,它可能会溢出。
第二Console.ReadLine()
读取一行,因此最后需要输入Enter键,您应该只使用Console.ReadKey()
第三个是您有一个额外的阅读行:
Console.ReadLine();
if(Console.ReadLine() == " ")
因此,它希望您输入一行(不用,只是等待用户最后单击Enter),然后阅读另一行并将其与" "
if(Console.ReadKey().Key == ConsoleKey.Spacebar)
{
//generate your cookie here
}