JavaRush /Kurslar /All lectures for UZ purposes /Modul 2 Yakuniy Loyihasi uchun Topşhiriq

Modul 2 Yakuniy Loyihasi uchun Topşhiriq

All lectures for UZ purposes
Daraja, Dars
Mavjud

Senga berilgan vazifa - o‘zgaruvchan parametrlar bilan orol modelini dasturlash, u joylarning massividan iborat bo‘ladi (masalan, 100x20 hujayra). Joylar o‘simliklar va hayvonlar bilan to‘ldiriladi. Hayvonlar quyidagi harakatlarni amalga oshirishi mumkin:

  • o‘simliklar va/yoki boshqa hayvonlarni yeyish (agar ularning joyida mos ovqat bo‘lsa),
  • harakat qilish (qo‘shni joylarga),
  • ko‘payish (agar ularning joyida juftlik bo‘lsa),
  • ochlikdan o‘lish yoki yeb qo‘yilish.

ООП

Hayvonlarning turli-tumanligini yaratishda maksimal darajada OOP-ni ishlatish kerak: barcha turlar bitta abtsrakt Animal klassidan keladi, u barcha hayvonlar uchun umumiy harakatlarni o‘z ichiga oladi. Agar har bir hayvonda oziqlanish, ko‘payish, harakatlanish kabi xususiyatlar bo‘lsa, ularga Animal klassidan metodlarni qayta yozish kerak bo‘ladi.

Nima qilish kerak:

1. Klasslar iyerarxiyasini yarat:

  • Yirtqich: Bo‘ri, Ilan, Tulk, Ayiq, Burgut

  • O‘txo‘rlar: Ot, Bug‘u, Quyon, Sichqon, Echki, Qo‘y, To‘ng‘iz, Bizon, O‘rdak, G‘uncha

  • O‘simliklar

Quyidagi jadvalda hayvonning "ovqat"ni yemoqchi bo‘lish ehtimoli keltirilgan, agar ular bitta hujayrada bo‘lsa. "bo‘ri quyonni yeydi" holatiga qarang. Jadvalda raqam 60. Bu degani, bo‘ri quyonni bitta hujayrada bo‘lsa, 60% ehtimol bilan yeyishi mumkin. Ko‘p ipli randomdan foydalanish kerak.

Bo‘ri Ilan Tulk Ayiq Burgut Ot Bug‘u Quyon Sichqon Echki Qo‘y To‘ng‘iz Bizon O‘rdak G‘uncha O‘simliklar
Bo‘ri - 0 0 0 0 10 15 60 80 60 70 15 10 40 0 0
Ilan 0 - 15 0 0 0 0 20 40 0 0 0 0 10 0 0
Tulk 0 0 - 0 0 0 0 70 90 0 0 0 0 60 40 0
Ayiq 0 80 0 - 0 40 80 80 90 70 70 50 20 10 0 0
Burgut 0 0 10 0 - 0 0 90 90 0 0 0 0 80 0 0
Ot 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 100
Bug‘u 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 100
Quyon 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 100
Sichqon 0 0 0 0 0 0 0 0 - 0 0 0 0 0 90 100
Echki 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 100
Qo‘y 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 100
To‘ng‘iz 0 0 0 0 0 0 0 0 50 0 0 - 0 0 90 100
Bizon 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 100
O‘rdak 0 0 0 0 0 0 0 0 0 0 0 0 0 - 90 100
G‘uncha 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 100

Hayvonlarning xususiyatlari:

Bitta hayvonning vazni, kg Bitta joyda bu turdan hayvonlar sonining maksimal miqdori Ko‘chish tezligi, bitta yurishda maksimal hujayralar soni Hayvon to‘liq to‘yishi uchun zarur oziq-ovqat kilogrammi
Bo‘ri 50 30 3 8
Ilan 15 30 1 3
Tulk 8 30 2 2
Ayiq 500 5 2 80
Burgut 6 20 3 1
Ot 400 20 4 60
Bug‘u 300 20 4 50
Quyon 2 150 2 0,45
Sichqon 0.05 500 1 0.01
Echki 60 140 3 10
Qo‘y 70 140 3 15
To‘ng‘iz 400 50 2 50
Bizon 700 10 3 100
O‘rdak 1 200 4 0,15
G‘uncha 0.01 1000 0 0
O‘simliklar 1 200 N/A N/A

2. Hayvonda metodlar bo‘lishi kerak: pokuş, ko‘payish, harakat yo‘nalishini tanlash.

3. O‘txo‘r va yirtqich klasslarda pokuş metodini amalga oshirish mumkin. Lekin bir narsani e'tiborga ol, o‘txo‘r o‘rdak, g‘unchani yeydi.

4. Har bir turdagi alohida klasslarda barcha metodlarni hayvonning xususiyatlariga moslashtirish mumkin.

5. Kamida 10 turdagi o‘txo‘r va 5 turdagi yirtqich hayvonlar yaratilishi kerak (p. 1da tavsiflangan).

Ko‘p ipliklilik

Albatta, butun dastur bitta ipda yozilishi mumkin, faqat tsikllardan foydalanib. Lekin biz ko‘p ipliklilik bilan ishlashni amaliyotda sinab ko‘rishimiz kerak, shuning uchun albatta iplar va ipli poollardan foydalanish kerak. Bitta scheduled pool - o‘simliklarning o‘sishi vazifasini, hayvonlarning hayotiy sikli vazifasini va tizim bo‘yicha statistikani chiqarish vazifasini jadval bo‘yicha ishga tushirish uchun. Variant sifatida, statistikani o‘simliklar yoki hayvonlar bilan birgalikda bitta vazifa qilib chiqarish mumkin. Hayvonlarning hayotiy sikli vazifasi ichida yana bitta oddiy ip poolini ishlatish mumkin. Bu poolga qaysi vazifalarni berish - o‘zing hal qil.

Majburiy qism:

  • Hayvonlar iyerarxiyasi (OOП)
  • Hayvonlarning xatti-harakatlari
  • Ko‘p ipliklilik
  • Orol holati bo‘yicha har bir harakatda statistika (konsolda)

Majburiy bo‘lmagan qism:

  • Simulyatsiyani boshqarish uchun parametrlarni bir joyda chiqarish
  • Konsol statistikasidan grafik. Bu konsolda psevdografika yoki JavaFX, Swing... bo‘lishi mumkin
  • Simulyatsiyaga ta'sir qilishi mumkin bo‘lgan boshqa omillar qo‘shing:
    • ko‘proq hayvon turlari
    • har xil o‘simlik turlari
    • hayvonlar guruhiga maxsus harakatlar qo‘shish (masalan, bo‘rilar o‘zi emas, balki to‘da bo‘lib ov qilishadi va harakat qilishadi)
    • yer topografiyasi, shu jumladan ba'zi hayvonlar harakatini to‘sadigan daryo

Parametrlar haqida (agar qilishga qaror qilsang)

Dastur ishga tushirilganda har xil parametrlarni (orol hajmi, bitta hujayrada maksimal ruxsat berilgan o‘simliklar/hayvonlar soni, hayvonlarning harakati ehtimoli, har xil turlarning tug‘ilish soni va hk.) o‘zgartirish oson bo‘lishi uchun, barcha bu parametrlarni boshqa joyga, masalan, alohida klassga chiqarish kerak. Quyidagi parametrlarni o‘zgartirish imkoniyati bo‘lishi kerak:

  • orol hajmi
  • simulyatsiya yurishi davomiyligi
  • simulyatsiya boshlang‘ichida har bir turdagi hayvonlar soni
  • simulyatsiyani to‘xtatish sharti (masalan, barcha hayvonlar o‘ldi)
  • har bir turdagi hayvonlarning tug‘ilishi soni

Unicode (agar psevdografika qilishga qaror qilsang)

Hayvonlarni tasvirlash uchun Unicode belgilaridan foydalanishingiz mumkin: 🐃, 🐻, 🐎, 🦌, 🐗, 🐑, 🐐, 🐺, 🐍, 🦊, 🦅, 🐇, 🦆, 🐁, 🐛.

Loyiha guruh tomonidan uning o‘tishi davomida tekshiriladi


Loyiha haqida umumiy ma'lumot

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION