我是一位新手程序員,現在我一直試圖解決這個問題超過2個小時。我想讓程序做的事情是計算秒數,如果它超過秒數(什麼?),做些事情,例如顯示「遊戲結束」或類似的事情。問題是,這段時間過去了2秒後程序沒有做任何事情。問題可能是什麼?如何計算秒數,然後在條件中使用它們?
編輯:好的這裏是整個背後的信息。用戶必須在2秒內按下與屏幕上顯示的字符相對應的鍵。如果用戶在2秒內沒有按下按鍵或者按錯了按鍵,那麼遊戲必須結束,但它不能像預期的那樣工作。lol
這是目前的整個代碼(是的,我知道轉到後面我會改變它):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;
using System.Threading;
using System.Diagnostics;
class Game
{
static void Main()
{
Start:
Console.CursorVisible = false;
Random rnd = new Random();
int row = rnd.Next(1, 80);
int col = rnd.Next(1, 25);
int chars = rnd.Next(0, 62);
string lettersAndChars = "";
lettersAndChars = lettersAndChars.ToUpper();
Console.SetCursorPosition(row, col);
if (chars <= 10)
{
lettersAndChars += (char)(chars + '0');
}
else
{
lettersAndChars += (char)(chars + 'A');
}
lettersAndChars = lettersAndChars.ToUpper();
Console.WriteLine(lettersAndChars);
DateTime endTime = DateTime.Now.AddSeconds(2);
var keyPress = Console.ReadKey();
string keyPressString = keyPress.KeyChar.ToString();
keyPressString = keyPressString.ToUpper();
if (keyPressString == lettersAndChars && DateTime.Now < endTime)
{
Console.Clear();
goto Start;
}
else if (keyPressString != lettersAndChars || DateTime.Now > endTime)
{
Console.Clear();
Console.WriteLine("Game Over");
}
}
}
使用計時器計算秒數(每1000ms)到一個靜態變量中,然後使用它。 – Ilan321
您只在按下按鈕時檢查傳遞的結束時間。你想在兩秒鐘後採取一些行動,而不是等待輸入? – Chris
@Chris定時器解決方案也可以做到這一點:) – Ilan321