Simulation Engine & Game AI · 7–8-sinf · 5-hafta

FUT Match Engine: Ehtimoliylik Matematikasi, State Machine va Taktik Duel

Sport dvigatellari siklining eng cho'qqisi: 22-darsda tuzilgan taktik tarkiblarni 90 daqiqalik jonli veb-simulyatsiyada to'qnashtiramiz! Expected Goals (xG) matematikasi, kimyo ustunligi koeffitsiyenti va ehtimoliylikka asoslangan voqealar oqimi.

⏱️ 90 Daqiqalik O'yin Tsikli 🎲 Ehtimoliylik Simulyatsiyasi 📊 Expected Goals (xG) 🏆 10 Ballik Match Protokoli
Muhandislik Bosqichi

Statik Tarkibdan Jonli Dinamikaga: Nega Futbol Simulyatori Kerak?

21–22-darslar (Statik Ma'lumotlar):
  • OVR reyting formulasi va 4-3-3 kimyo grafini qurdik.
  • Lekin raqamlar harakatsiz edi — o'yinchilar shunchaki maydonda turardi.
23-dars (Jonli Simulyatsiya Dvigateli):
  • O'yinning har daqiqasida ehtimoliylik algoritmi ishga tushadi.
  • Yuqori kimyo to'p nazorati va zarbalar aniqligini oshiradi.
  • Jamoalar real-vaqtda xavfli hujumlar, seyvlar va gollar hosil qiladi.

💡 Kiber-o'yinlar sanoatida bunday ehtimoliylik dvigatellari Football Manager va EA FC ning asosiy yuragi hisoblanadi!

Ehtimoliylik Matematikasi

Vaznli Tasodifiylik: Nega Har Bir Zarba Gol Bo'lavermaydi?

🎲 Tasodifiy Son (0 dan 1 gacha)

Kompyuter 0.00 dan 0.99 gacha tasodifiy son beradi. 25% ehtimollikdagi hujum uchun shart:

const roll = Math.random(); if (roll < 0.25) { // 25% ehtimol bilan xavfli hujum! }

⚖️ OVR va Kimyo Ustunligi Bonusi

Kuchliroq jamoa matematik bonus oladi. Agar sizning OVR 90, raqibniki 80 bo'lsa, omad eshigi kengayadi!

const advantage = (myOvr - oppOvr) * 0.02; // roll < (0.50 + advantage) if (roll < 0.70) { // To'p bizda qoladi! }

📐 Bu dasturlashda Stoxastik Simulyatsiya deyiladi: natija qat'iy yozilgan emas, balki vaznli ehtimolliklar orqali har safar betakror kechadi!

Kimyo Bonusi

31/33 Kimyo O'yinda Qanday Qilib Real Ustunlik Beradi?

🟢 Yuqori Kimyo (28–33)

+4 OVR jamoaviy bonus!
Pas aniqligi 90% ga yetadi.
To'p yo'qotish xavfi minimal.

🟡 O'rtacha Kimyo (18–27)

+1..2 OVR kichik bonus.
Oddiy o'yin sur'ati.
Jamoa o'z darajasida o'ynaydi.

🔴 Past Kimyo (< 15)

-3 OVR jazo!
Tushunmovchiliklar, noaniq paslar.
Himoyadagi qo'pol xatolar.

// Kimyo ustunligi koeffitsiyenti: const chemDiff = myTeam.chem - oppTeam.chem; const chemBonus = chemDiff * 0.015; // +10 chem farki → +15% hujum ehtimoli!
O'yin Tsikli & State Machine

Match State Machine: Hushtakdan Yakuniy Golgacha

1-holat

KICKOFF

0-daqiqa. Hisob nollanadi, to'p maydon markazida.

2-holat

BUILDUP

Markazda to'p nazorati uchun kurash va paslar.

3-holat

CHANCE

Jarima maydonchasiga yorib kirish. xG hisobi!

4-holat

GOAL / SAVE

Zarba! Yoki darvoza to'ri titraydi, yoki seyv.

🔄 Brauzer 5x tezlikda har soniyada 5 virtual daqiqani qayta ishlaydi: setInterval(simulateMinute, 36)!

Futbol Analitikasi

Expected Goals (xG): Qanday Qilib Xavfli Vaziyatlar O'lchanadi?

🎯 xG Nima (0.00 dan 0.99 gacha)?

Zarbaning gol bilan yakunlanish ehtimolligi. Penalti xG = 0.79 (79% gol), 35 metrdan zarba esa xG = 0.02 (2%).

// Jarima maydonchasi ichidan zarba: const chanceXg = 0.15 + Math.random() * 0.45; stats.xgHome += chanceXg;

📊 xG vs Haqiqiy Hisob

Jamoa xG = 3.20 to'plab, raqib posbonining qahramonligi tufayli 0:1 yutqazishi mumkin. Ammo uzoq masofada xG yuqori jamoa doim chempion bo'ladi!

// O'yinda g'alaba qozonish uchun: if (stats.xgHome >= 1.80) { // Kvest 4 bajarildi (+2 ball)! }
Hodisalar Oqimi

Matnli Sharh Dvigateli: Shablonlar va Dinamik Matn

📝 O'zgaruvchili Shablonlar

Sharhlar jonli va turfa xil bo'lishi uchun {player} va {team} o'zgaruvchilari ishlatiladi.

const template = "GOOOOL! ⚽ {player} to'rni titratdi!"; const text = template.replace( "{player}", "Mbappé" );

⚡ DOM orqali Lentaga Qo'shish

Har bir yangi gol yoki xavfli vaziyat insertBefore orqali lentaning eng tepasiga tushadi.

list.insertBefore(item, list.firstChild); stats.events.push({ min, text, isGoal });
2D Radar Maydoni

2D Radar Maydoni: To'p Animatsiyasi va Xavfli Hudud Jilosi

⚽ To'p Harakati

To'p koordinatalari har bir hodisada CSS transition orqali silliq suriladi: left: X%; top: Y%.

🔥 Xavfli Hudud Jilosi

Darvoza oldida hujum sodir bo'lganda jarima maydonchasi atrofida qizil/ko'k xavfli jilo yonadi.

⚡ Tezlikni Boshqarish

1x, 2x, 5x tugmalari simulyatsiya vaqtini tezlashtiradi, Instant esa soniyada 90 daqiqani hisoblaydi.

Simulyator Tanishtiruvi

FUT Match Engine: Simulyator Interfeysi va Panellari

Tablo

⏱️ Jonli Hisob Tablosi

O'yin daqiqasi (00'–90'), joriy hisob va jamoalar bayroqlari.

Statistika

📊 Jonli Statistika Barlari

To'p nazorati %, aniq zarbalar soni, xG va paslar aniqligi barlari.

Kvestlar

🏆 6 ta Kvest (10 Ball)

Jonli baholash: start, 90 daqiqa, kimyo ustunligi, xG 1.8+, g'alaba va JSON eksporti!

11 Daqiqalik Amaliy Sprint

Missiya: AI Raqibini Mag'lub Etish va xG Bo'yicha Ustun Kelish!

📋 Bosqichma-bosqich ko'rsatma:

  1. Brauzerda simulator/index.html dasturini oching.
  2. Kimyo bonusi faol ekanini tekshiring (+4 OVR).
  3. Tezlikni tanlang (2x yoki 5x) va Boshlash tugmasini bosing.
  4. Sharhlar oqimini kuzating va xG ko'rsatkichini 1.80+ ga yetkazing.
  5. 90 daqiqani g'alaba bilan yakunlang va Match Bayonnomasini JSON qilib yuklang!
11:00
Xatolar Tahlili

O'yin Simulyatorlarini Yaratishda Tipik Xatolar

⚠️ 1. Zombi Intervallar

Agar Qaytarish yoki Start bosilganda eski clearInterval to'xtatilmasa, o'nlab parallel o'yinlar boshlanib, vaqt aqldan ozadi!

⚠️ 2. Noto'g'ri xG Balansi

Bitta zarbaga 1.0 dan katta xG berish matematik xato (ehtimollik 100% dan katta bo'lishi mumkin emas).

⚠️ 3. 90-daqiqada To'xtamaslik

Agar matchMinute >= 90 tekshiruvi qo'yilmasa, o'yin 250 daqiqagacha davom etib, hisob 50-30 bo'lib ketadi!

Xulosa va Baholash

Dars Xulosasi va 10 Ballik Baholash Mezoni

📊 Baholash Mezoni (10 ball):

  • 1 ball: O'yinni boshlash (Hakamning start hushtagi).
  • 2 ball: Uchrashuvning to'liq 90 daqiqasini o'tkazish.
  • 2 ball: Kimyo bo'yicha ustunlikni (Chemistry Boost) ta'minlash.
  • 2 ball: Kuchli hujum: xG ko'rsatkichini 1.80+ ga yetkazish.
  • 2 ball: O'yinda AI raqib ustidan g'alaba qozonish.
  • 1 ball: Rasmiy match bayonnomasini JSON qilib yuklash.

🏠 Uyga Vazifa:

Har xil qiyinlikdagi 3 ta raqibga qarshi mini-turnir o'tkazing. O'yinchilarning kimyosi va xG ko'rsatkichlari g'alabaga qanday ta'sir qilganini tahlil qiling. Final o'yini JSON bayonnomasini LMS tizimiga yuklang!

Target International School • IT & CyberSecurity