Haqiqiy kibersportchining reaksiya tezligi qancha? 250 millisekundmi yoki 180 dan tezmi? Bugun biz JavaScript da birinchi to'liq brauzer o'yinimizni yaratamiz: `setTimeout` orqali tasodifiy kechikish yaratishni, `Date.now()` bilan vaqtni millisekundlargacha o'lchashni va falstartlarni ushlashni o'rganamiz.
Maydon qizil. O'yinchi kutmoqda. Tasodifiy 2 dan 5 soniyagacha vaqt o'tadi.
Erta bosilsa = Falstart!Maydon bir zumda yashilga aylanadi! Start vaqti millisekundda belgilanadi.
Imkon qadar tezroq bos!O'yinchi bosdi! Vaqt ayirmasi hisoblanadi va unvon beriladi.
Masalan: 214 ms · Daraja: PROKompyuterlar vaqtni 1970-yil 1-yanvardan hozirgacha o'tgan millisekundlar soni (1 soniya = 1000 ms) orqali hisoblaydi.
const now = Date.now();
console.log(now); // 1774289400123 ms
// 1. Yashil yongandagi vaqt
let startTime = Date.now();
// 2. Foydalanuvchi bosgandagi vaqt
let clickTime = Date.now();
// 3. Reaksiya tezligi ayirmasi:
let reactionTime = clickTime - startTime;
console.log("Sizning tezligingiz: " + reactionTime + " ms");
Berilgan kodni ma'lum millisekunddan keyin ishga tushiradi:
setTimeout(function() {
console.log("3 soniya o'tdi!");
}, 3000);
// 2000 ms dan 5000 ms gacha tasodifiy son
const randomDelay = Math.floor(Math.random() * 3000) + 2000;
console.log("Yashil chiroq " + randomDelay + " ms dan keyin yonadi");
setTimeout(makeGreen, randomDelay);
O'yinchi yashil yonishini kutmasdan, qizil ekranni ketma-ket bosaveradi.
let isGreen = false;
let timerId = null;
gameBox.addEventListener('click', function() {
if (!isGreen) {
// Vaqtidan oldin bosildi!
clearTimeout(timerId); // Kutishni to'xtatish
gameBox.textContent = "⚠️ FALSTART! Shoshilmang!";
gameBox.className = "box-penalty";
} else {
// Yashil yongandan keyin bosildi (To'g'ri!)
calculateScore();
}
});
| Reaksiya Vaqti | Kiber-Daraja | Tavsif va Taqqoslash |
|---|---|---|
| < 180 ms | ⚡ GODLIKE / Кибер-Бог | CS:GO va Valorant jahon chempionlari darajasi |
| 180 – 250 ms | ⭐ PRO-GAMER / Профи | Juda yuqori tezlik, kuchli mashq qilingan diqqat |
| 250 – 350 ms | 👤 HUMAN / Норма | Oddiy insonning o'rtacha normal ko'rsatkichi |
| > 350 ms | 🐢 TURTLE / Медленно | Charchagan yoki xayoli bo'lingan holat |
Reaksiya o'yinlarida millisekund soni qancha kichik bo'lsa, natija shuncha yaxshi hisoblanadi!
let bestScore = Infinity; // Boshida cheksiz katta
function checkRecord(currentScore) {
if (currentScore < bestScore) {
bestScore = currentScore;
recordDisplay.textContent = bestScore + " ms (Yangi Rekord!)";
recordDisplay.style.color = "#00ff88";
}
}
Maydonni qizil qiladi, 'Kuting...' yozadi va tasodifiy taymerni yoqadi.
Maydonni yashil qiladi, 'BOSING!' yozadi va start vaqtini oladi.
Vaqtni hisoblaydi, falstartni tekshiradi va natijani ko'rsatadi.
const greenSound = new Audio('beep.mp3');
const winSound = new Audio('win.mp3');
function triggerGreen() {
gameBox.className = "box-green";
greenSound.play(); // Bir lahzada ovoz yangraydi!
}
Ilmiy isbot: inson tovushli signalga ko'rish signaliga qaraganda 30-40 millisekund tezroq javob beradi! Ovoz qo'shilsa natijalar yaxshilanadi.
Dars papkasidagi o'yinda quyidagi sinovlar bajariladi:
game/index.html ni oching.Kibersportchilar har safar sichqoncha bilan 'Qayta o'ynash' tugmasini bosishni yoqtirmaydi. Probel (Space) tugmasi o'yinni darhol qayta boshlashi kerak!
document.addEventListener('keydown', function(e) {
if (e.code === "Space") {
e.preventDefault(); // Sahifa pastga sakramasligi uchun
startGame();
}
});