5.6 KiB
5.6 KiB
🎮 Test Project: Module C - CyberTyper 2026
1. Loyiha sharhi (Project Overview)
Ushbu topshiriqning maqsadi ingliz tili bo'yicha yuqori mahsuldorlikka ega arkada o'yinini ishlab chiqishdir. Ishtirokchilar taqdim etilgan words_data.json faylini tahlil qilib, **Ma'lumotlar bazasi (MySQL)**ni loyihalashlari hamda so'zlarni yo'q qilish uchun real vaqt rejimida koordinatalarni kuzatuvchi dinamik front-end dvigatelini API bilan integratsiya qilgan holda yakunlashlari kerak.
2. Texnik tushunchalar (Technical Definitions)
- VFX (Visual Effects): O'yindagi vizual maxsus effektlar. Bu o'q urilishi natijasida so'z harflarining parchalanib ketishi kabi effektlarni anglatadi.
- WPM (Words Per Minute): Daqiqasiga yozilgan so'zlar tezligi ko'rsatkichi. (Hisoblash:
Yozilgan umumiy so'zlar / O'yin vaqti (daqiqada)) - HP (Health Point): O'yinchining hayot darajasi (100% dan boshlanadi). So'zlar o'tkazib yuborilganda u kamayadi va 0% ga yetganda o'yin yakunlanadi.
3. 1-qadam: Backend API va ma'lumotlar bazasi dizayni (Server-side)
Barcha API nuqtalari (endpoints) /module_c/api/ yo'lidan foydalanishi va ma'lumotlarning saqlanishi (persistence) kafolatlanishi kerak.
A. Ma'lumotlar bazasi konfiguratsiyasi (Majburiy)
- Word Table: Taqdim etilgan
words_data.jsonfayli asosida so'z matni, qiyinchilik darajasi va unikal ballarni saqlaydigan jadval yaratishingiz kerak. - Ranking Table: O'yinchi ismlari, yakuniy ballar va maksimal kombolarni saqlash uchun jadval loyihalashingiz kerak. Ushbu ma'lumotlar server qayta ishga tushirilgandan keyin ham saqlanib qolishi shart.
B. API mantiqiy talablari
- So'zlarni yetkazib berish API (
GET /module_c/api/words?level=n):- So'ralgan qiyinchilik darajasiga (
level) mos keladigan so'zlarni tasodifiy tarzda chiqarish. - Takrorlanishning oldini olish: Hozirgi o'yin ekranida mavjud bo'lgan so'zlar API so'rovida qayta takrorlanmasligi kerak.
- So'ralgan qiyinchilik darajasiga (
- Ranking API: Rekordlar
POSTso'rovlari orqali MBda saqlanishi vaGETso'rovlari orqali ballarning kamayish tartibida Global TOP 5 rekordlari qaytarilishi kerak.
4. 2-qadam: O'yin dvigateli va ballar hisobi mantiqi (Front-end Development)
A. Qiyinchilik darajasi sozlamalari (Yaratilish oralig'i va tushish tezligi)
So'zlar ekranning yuqori qismida (y=0) tasodifiy gorizontal pozitsiyalarda yaratiladi va pastga qarab harakatlanadi.
| Qiyinchilik (Daraja) | Yaratilish oralig'i | Tushish tezligi | Ko'paytiruvchi (Multiplier) |
|---|---|---|---|
| Level 1 | Har 2.0s da | Sekin (50px/sek) | 1.0 |
| Level 2 | Har 1.5s da | O'rta (80px/sek) | 1.5 |
| Level 3 | Har 1.0s da | Tez (120px/sek) | 2.0 |
B. Ballarni hisoblashning batafsil formulasi (FinalScore)
FinalScore = BasePoints + (CurrentCombo \times LevelMultiplier)
- $BasePoints$: MBdagi mos kelgan so'zga biriktirilgan unikal ball.
- $CurrentCombo$: Ketma-ket muvaffaqiyatlar soni. (Muvaffaqiyatda 1 ga oshadi; so'z pastki qismga tegsa, darhol 0 ga qaytadi).
- Ko'rsatkich: Hisoblangan ball o'yin ekranining Score qismida real vaqt rejimida yig'ilib borishi kerak.
C. HP tizimi va tiklanish
- Kamayish: So'z pastki chiziqqa tegsa, HP 10% ga kamayadi.
- Tiklanish: Har safar 20 Combo ga erishilganda, yo'qotilgan HPning 5% miqdori bonus sifatida tiklanadi.
5. 3-qadam: UI/UX va sahna spetsifikatsiyalari (Design Implementation)
A. 3-Scene SPA (Single Page Application) tuzilmasi
- Ushbu topshiriq JavaScript yordamida sahifani to'liq yangilamasdan almashadigan SPA tuzilmasida ishlab chiqilishi kerak.
- Scene 1 (Start): O'yinchi ismini kiritish va qiyinchilik darajasini tanlash.
- Scene 2 (Play): Haqiqiy o'yin jarayoni ekrani.
- Scene 3 (Result): Yakuniy ball xulosasi va Global TOP 5 reyting ekrani.
B. Boshlang'ich sahna talablari
- Kiritish elementlari: O'yin nomi (CyberTyper 2026), O'yinchi ismi maydoni (Majburiy), radio-tugmalar yoki tanlash qutisi orqali Qiyinchilikni tanlash (Level 1, 2, 3).
- Start tugmasi: Barcha ma'lumotlar kiritilgandagina faollashadi; uni bosish o'yin ekraniga olib kiradi.
C. O'yin ekranining majburiy komponentlari (Baholash elementlari)
- Score: Real vaqt rejimidagi ballar jadvali.
- Combo: Ketma-ket muvaffaqiyatli urishlar soni.
- WPM: Real vaqtda hisoblangan daqiqalik so'zlar soni.
- HP Gauge: Vizual tarzda o'zgarib turadigan hayot bari.
- Input Field: O'yinchi inglizcha so'zlarni yozishi uchun matn maydoni.
- Falling Words: Yuqoridan tasodifiy joylardan tushayotgan so'zlar.
D. Proyektil (o'q) va Fever effektlari
- O'q va to'qnashuv: Enter tugmasi bosilganda, pastdan maqsadli so'zning real vaqt koordinatalari tomon o'q otiladi. To'qnashuv sodir bo'lganda, harflar parchalanishi VFX hosil bo'ladi va so'z yo'q qilinadi.
- Fever Mode: 20 ta komboga erishish tushish tezligini 5 soniya davomida 50% ga kamaytiradi va neon fon effektini faollashtiradi.
E. Reyting sahnasi (Natija sahifasi)
- Ma'lumotlar bazasidan olingan Global TOP 5 yetakchilar jadvalini ko'rsatadi.
- [New Game] tugmasi: Buni bosish barcha sozlamalarni tiklaydi va ism kiritish ekraniga qaytaradi.
6. Baholash sxemasi xulosasi (Jami 25.00)
| Toifa | Batafsil mezonlar | Ballar |
|---|---|---|
| Design (7.0) | Dinamik proyektil/zarracha effektlari, muhim UI elementlari (HP, Score) ko'rinishi va VFX sifati. | 7.0 |
| Front-end (11.0) | Qiyinchilikka xos mantiq (Interval/Tezlik), takrorlanishsiz so'zlar boshqaruvi va o'q koordinatalarini hisoblash. | 11.0 |
| Back-end (7.0) | MB jadvali dizayni va ma'lumotlar barqarorligi, Global TOP 5 reyting API dizayni. | 7.0 |