Vibecoding · 15-dars · 5–6-sinflar
Fan: Vibecoding · O'yin yaratish Kohorta: 5–6-sinf (10–12 yosh) Hafta: 4 (1-soat)

Dushman AI: Patrul, Ko'rish Radiusi va Ta'qib

O'tgan darsda trassada tikan va lazer bor edi — lekin ular qimirlamaydi, o'ylamaydi. Bugun biz trassaga tirik dushman qo'yamiz: u patrul qiladi, qahramonni ko'radi va ortidan quvadi. Dushmanning "miyasi" — bu sehr emas, bu uchta oddiy qoida, va siz ularni bugun o'zingiz sozlaysiz.

Nega o'yin zerikarli?

Tikan qimirlamaydi. Dushman — o'ylaydi.

🪨 Tikan (o'tgan dars)

Bir joyda turadi. Siz yo'lni yodlab olasiz va 3-urinishda muammosiz o'tasiz. Qiziqish 2 daqiqada tugaydi.

🔁 Lazer (o'tgan dars)

Harakatlanadi, lekin doim bir xil. Ritmni poylash kerak. Bu allaqachon qiziqroq, ammo lazer sizni ko'rmaydi.

🤖 Dushman AI (bugun)

Sizga qarab o'zgaradi. Yashirinsangiz — qidiradi. Yugursangiz — quvadi. Har o'yin boshqacha chiqadi. Mana shuning uchun Mario, Roblox va Among Us zerikarli emas.

Dushmanning miyasi

Dushmanda 3 ta kayfiyat bor — boshqa hech narsa yo'q

1 · 😴 PATRUL

Dushman qahramonni ko'rmayapti. U o'z yo'lida sokin yuradi: chapga, o'ngga, chapga... Ustida belgi yo'q.

2 · ❓ SEZDI

Qahramon ko'rish radiusiga kirdi! Dushman to'xtaydi va 0.5 soniya o'ylaydi. Ustida sariq ? chiqadi. Bu sizga qochish uchun berilgan fursat.

3 · ❗ TA'QIB

Dushman qizil ! bilan qahramon tomon yuguradi. Tezligi oshadi. Tegib ketsa — 1 jon ketadi (o'tgan darsdagi HP tizimi).

💡 Kattalar buni qanday ataydi?

Bu uchta kayfiyatning almashuvi — holat mashinasi (state machine). Xuddi shu narsa svetoforni ham boshqaradi: qizil → sariq → yashil. Dunyodagi deyarli barcha o'yin dushmanlari shu tamoyilda ishlaydi.

Patrul qanday ishlaydi

Patrul — bu ikki ustun orasidagi yurish

Kompyuterga aytiladigan gap

  • Dushmanning chap chegarasi va o'ng chegarasi bor.
  • Har kadrda u qarab turgan tomonga bir qadam siljiydi.
  • Chegaraga yetdimi? — tomonni teskarisiga almashtir.
  • Tamom. Patrul shu — uch qator qoida, sehr yo'q.

Kodda qanday ko'rinadi

// dushman.yon: 1 = o'ngga, -1 = chapga
dushman.x = dushman.x + dushman.yon * dushman.tezlik;

if (dushman.x > dushman.ongChegara) {
  dushman.yon = -1;   // burildi
}
if (dushman.x < dushman.chapChegara) {
  dushman.yon = 1;    // yana burildi
}

🎛 Stendda sinab ko'ring

Patrul kengligi slayderi — chegaralar orasidagi masofa. Tor qilsangiz dushman bir joyda tebranadi, keng qilsangiz butun xonani aylanadi.

Ko'rish radiusi

Dushman qanday "ko'radi"? Ikkita savol bilan.

Savol 1: yaqinmi?

Kompyuter dushman bilan qahramon orasidagi masofani o'lchaydi. Agar masofa ko'rish radiusidan kichik bo'lsa — birinchi shart bajarildi. Bu xuddi sizning atrofingizdagi ko'rinmas doira.

Savol 2: shu tomondami?

Dushmanning orqa ko'zi yo'q! U faqat o'zi qarab turgan tomonni ko'radi. Agar qahramon orqada bo'lsa — dushman uni sezmaydi. Mana shuning uchun o'yinlarda dushman orqasidan o'tish mumkin.

Ikkala shart birga bajarilsa — SEZDI

masofa = |qahramon.x - dushman.x|;
oldindami = (qahramon.x - dushman.x) * dushman.yon > 0;

if (masofa < korishRadiusi && oldindami) {
  dushman.kayfiyat = 'SEZDI';   // ❓ sariq belgi
}
Devor to'sadi

Devor orqasida turgan qahramon ko'rinmaydi

Nega bu muhim?

Agar dushman devor orqali ham ko'raversa, o'yinchi hech qayerga yashirina olmaydi — va o'yin adolatsiz bo'lib qoladi. Yashirinish imkoni — o'yinni qiziqarli qiladigan asosiy narsa.

Kompyuter buni qanday tekshiradi?

U dushmanning ko'zidan qahramongacha ko'rinmas nur (ray) tortadi. Agar nur yo'lda biror devorga urilsa — demak ko'rinmaydi. Bu usul Line of Sight (ko'rish chizig'i) deb ataladi.

🎮 Stendda: "Devorni yoqish" tugmasi

Tugmani bosing va maydon o'rtasida ustun paydo bo'ladi. Ustun orqasiga turib ko'ring — dushmanning sariq konusi devorda kesiladi va siz ko'rinmay qolasiz. Keyin tugmani o'chiring va farqni his qiling.

Ta'qib

Ta'qib — bu bitta savol: "u chapdami yoki o'ngdami?"

Butun ta'qib mantig'i

if (qahramon.x > dushman.x) {
  dushman.yon = 1;    // o'ngga yugur
} else {
  dushman.yon = -1;   // chapga yugur
}

dushman.x += dushman.yon * dushman.taqibTezligi;

Ajablanarli haqiqat

Ha, shundoq xolos. Dunyodagi eng mashhur o'yin dushmanlarining ko'pi aynan shu to'rt qator bilan quvadi. Murakkab "sun'iy intellekt" emas — oddiy taqqoslash. Aqlli ko'rinish esa ko'rish radiusi va kechikish hisobiga paydo bo'ladi.

Xotira va unutish

Dushman qahramonni yo'qotsa nima qiladi?

❌ Yomon variant

Darhol unutadi va patrulga qaytadi. O'yinchi bir qadam orqaga tisarilib, dushmanni cheksiz aldayveradi. Zerikarli.

❌ Yana yomon variant

Hech qachon unutmaydi va o'yin oxirigacha quvadi. O'yinchi hech qachon dam ololmaydi. Asabiylashtiradi.

✅ To'g'ri variant

3 soniya eslab turadi. Qahramon ko'rinmay qolganda dushman yana 3 soniya o'sha tomonga yuradi, keyin "hm, yo'qoldi" deb patrulga qaytadi. Mana bu tirik tuyuladi.

🎛 "Xotira" slayderi

0 soniya → aqlsiz dushman. 10 soniya → shafqatsiz dushman. Eng qiziqarli qiymatni o'zingiz toping va varaqaga yozib qo'ying.

O'yin dizayni qoidasi

Yaxshi dushman — kuchli emas, adolatli dushman

3 ta oltin qoida

  • Dushman qahramondan sekinroq bo'lsin. Aks holda qochishning iloji yo'q va o'yinchi taslim bo'ladi.
  • Ogohlantirish belgisi shart. ❓ va ❗ — o'yinchiga "tayyorlan!" degan signal. Belgisiz hujum aldov hisoblanadi.
  • Reaksiya kechikishi 0.5 soniya. Dushman sizni ko'rgan zahoti otilmaydi — bir lahza o'ylaydi. Shu lahza o'yinni halol qiladi.

Sinovda tekshiring

Stendda Dushman tezligi slayderini qahramon tezligidan yuqoriga ko'taring va 30 soniya o'ynab ko'ring. His qilasiz: o'yin darhol yoqimsiz bo'lib qoladi. Keyin pastga tushiring — qiziqish qaytadi. Mana shu o'yin dizayneri ishi.

Laboratoriya · 11 daqiqa

4 ta sinov: game/index.html ni oching

1-sinov · Orqadan o'tish

Dushman teskari tomonga qaragan paytni poylang va orqasidan sekin o'ting. Muvaffaqiyat bo'lsa — varaqaga ✔ qo'ying.

2-sinov · Devor ortida

"Devor" tugmasini yoqing. Ustun ortida turib, dushmanning konusi qanday kesilishini kuzating. Radiusni o'lchab yozing.

3-sinov · Xotira sinovi

Dushmanni ta'qibga qo'zg'ating, keyin yashirining. Necha soniyadan keyin u patrulga qaytdi? Sekundomer bilan o'lchang.

4-sinov · Adolat sozlamasi

Uchta slayderni shunday sozlangki, o'yin qiyin, lekin halol bo'lsin. Uchta raqamni varaqaga ko'chiring — bu sizning shaxsiy retseptingiz.

Tayyor promptlar

AI dan dushmaningizni yaxshilashni so'rang

Nusxa oling va ChatGPT/Claude ga tashlang

1) У меня 2D-игра на JavaScript. Враг патрулирует
   между двумя точками. Подскажи, какую скорость
   врага поставить, если скорость героя = 4,
   чтобы игра была сложной, но честной?

2) Добавь врагу состояние "ПОДОЗРЕНИЕ": он
   останавливается на 0.5 сек и показывает знак ?
   перед тем, как начать погоню.

3) Объясни простыми словами, что такое
   Line of Sight в играх, для ученика 6 класса.

⚠️ Muhim qoida

  • AI bergan raqamni ko'r-ko'rona ishonmang — slayderga qo'yib, o'zingiz o'ynab tekshiring.
  • AI o'yinni siz uchun o'ynab bermaydi. Qiziqarlimi yoki yo'qmi — buni faqat inson hal qiladi.
  • Javobni tushunmadingizmi? "Объясни проще, я в 6 классе" deb yozing.
Uy vazifasi va baholash

Uy vazifasi: o'z dushmaningizni loyihalang (10 ball)

Nima qilish kerak

  • Varaqadagi jadvalni to'ldiring: 4 sinovning natijalari.
  • O'z dushmaningizni chizing va 3 kayfiyatini yozing: patrulda nima qiladi, sezganda nima qiladi, quvganda nima qiladi.
  • Uchta slayder qiymatini yozing va nega shunday tanlaganingizni bir gap bilan tushuntiring.

Baholash mezoni

  • 4 sinov jadvali to'ldirilgan — 4 ball
  • Dushman chizmasi va 3 kayfiyati — 3 ball
  • Slayder qiymatlari va izoh — 2 ball
  • Ozodalik va tartib — 1 ball
Target International SchoolTarget International School Введение 1 / 1 0–3