2017-02-09 11 views
0

Я пытаюсь создать простую игру clickclickclick для консоли в C# с Visual Studio. Единственное, что еще не работает, - это то, как консоль может подсчитывать нажатия любой кнопки на клавиатуре. Проблема с существующим кодом заключается в том, что оператор остается верным даже после отпускания кнопки.C# clickclickclick консольная игра - правильное отображение кнопки

using System; 
using System.Diagnostics; 
public class clickclickclickgame 
{ 
    public static void Main() 
    { 
     Stopwatch timer = new Stopwatch(); 
     int amountofpresses = 0; 
     timer.Start(); 
     while (timer.ElapsedMilliseconds < 2000) 
     { 
      if (Console.KeyAvailable == true) // this is where my question is about. 
      { 
       timer.Restart(); 
       amountofpresses++; 
      } 
     timer.Stop(); 
     Console.WriteLine(amountofpresses); 
    } 
} 
+1

вы должны «прочитать» ключ ... – rene

+0

@Damion Gans Прочтите мой ответ, я объясню некоторые вещи и у вас есть решение для вас. – EpicKip

ответ

0

Заменить его:

 int i = 0; 
     Stopwatch sw = new Stopwatch(); 
     sw.Start(); 
     while(true) 
     { 
      Console.ReadKey(true);//True makes it so you don't see the key in Console 
      if(sw.ElapsedMilliseconds < 2000) 
      { 
       i++; 
       sw.Restart(); 
      } 
      else 
      { 
       sw.Stop(); 
       break; 
      } 
     } 
     Console.WriteLine("Pressed amount: " + i); 
     Console.ReadKey(); 

Это работает, как вы wan't единственная проблема в том, что проверяет состояние после ReadKey колдунья означает, что если я игра закончена, я должен нажать еще раз для мой рекорд. btw 2000 мс составляет 2 секунды, довольно высокая для этой игры :)
Чтобы помочь вам на пути к увеличению сложности id, скажите make 2000 переменную и вычитайте оценку * 2 (просто пример) при каждом нажатии клавиши. Таким образом, становится все труднее и труднее.

+0

Прошу прощения за поздний ответ, но это действительно помогает! Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^