commit for day 1
This commit is contained in:
81
module-c/module-c-uz.md
Normal file
81
module-c/module-c-uz.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# 🎮 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.json` fayli 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`)**:
|
||||
1. So'ralgan qiyinchilik darajasiga (`level`) mos keladigan so'zlarni tasodifiy tarzda chiqarish.
|
||||
2. **Takrorlanishning oldini olish**: Hozirgi o'yin ekranida mavjud bo'lgan so'zlar API so'rovida qayta takrorlanmasligi kerak.
|
||||
* **Ranking API**: Rekordlar `POST` so'rovlari orqali MBda saqlanishi va `GET` so'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 |
|
||||
Reference in New Issue
Block a user