JavaRush /Курстар /All lectures for KY purposes /Модул 2нин соңку долбоору боюнча тапшырма

Модул 2нин соңку долбоору боюнча тапшырма

All lectures for KY purposes
Деңгээл , Сабак
жеткиликтүү

Сенин ишиң — өзгөрүлмө параметрлери менен аралдын моделин программалоо, ал жерлердин массивинен турат (мисалы, 100х20 уячалар). Жерлер өсүмдүктөр жана жаныбарлар менен толтурулат. Жаныбарлар төмөнкүлөрдү жасай алат:

  • эгер алардын жеринде ылайыктуу тамак болсо, өсүмдүктөрдү жана/же башка жаныбарларды жешет,
  • кыймыл (коңшу жерлерге),
  • көбөйүү (эгер алардын жеринде жуп болсо),
  • ачкадан өлүү же жеп кетилүү.

ООП

Аракет кылып жаткан жаныбарлардын түрүн түзүүдө, мүмкүн болушунча ООП колдонуңуз: бардык түрлөр бир абстракттуу Animal класстан чыгарып жатат, ал бардык жаныбарларга мүнөздүү болгон жүрүм-турумду камтыйт. Эгер конкреттүү жаныбарларда тамактануу, көбөйүү, кыймылдоо ж.б. өзгөчөлүктөрү болсо, анда алар үчүн Animal классынын методдорун кайра аныктоо керек болот.

Эмне кылыш керек:

1. Класстар иерархиясын түзүңүз:

  • Жырткыч: Бөрү, Боору, Түлкү, Аюу, Бүркүт

  • Өсүмдүк менен тамактануучу: Ат, Бугу, Коён, Чычкан, Эчки, Кой, Кабан, Буйвол, Өрдөк, Курт

  • Өсүмдүктөр

Төмөнкү таблицада жаныбар бир "азыкты" жегени менен канча мүмкүнчүлүк бар экендиги көрсөтүлгөн, эгерде алар бир уячага жайгашса. "Бөрү коёндун жегени" деген учурга карап көрөлү. Таблицада 60 саны бар. Бул демек, эгер бөрү коён менен бир уячага жайгашса, 60% мүмкүнчүлүк менен коёндун жегени болот. Көп агымды random колдонуу керек.

Бөрү Боору Түлкү Аюу Бүркүт Ат Бугу Коён Чычкан Эчки Кой Кабан Буйвол Өрдөк Курт Өсүмдүктөр
Бөрү - 0 0 0 0 10 15 60 80 60 70 15 10 40 0 0
Боору 0 - 15 0 0 0 0 20 40 0 0 0 0 10 0 0
Түлкү 0 0 - 0 0 0 0 70 90 0 0 0 0 60 40 0
Аюу 0 80 0 - 0 40 80 80 90 70 70 50 20 10 0 0
Бүркүт 0 0 10 0 - 0 0 90 90 0 0 0 0 80 0 0
Ат 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 100
Бугу 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 100
Коён 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 100
Чычкан 0 0 0 0 0 0 0 0 - 0 0 0 0 0 90 100
Эчки 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 100
Кой 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 100
Кабан 0 0 0 0 0 0 0 0 50 0 0 - 0 0 90 100
Буйвол 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 100
Өрдөк 0 0 0 0 0 0 0 0 0 0 0 0 0 - 90 100
Курт 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 100

Жаныбарлардын өзгөчөлүктөрү:

Бир жаныбардын салмагы, кг Бир уячадагы бул түрдүн максималдуу сандары Кыймылдын максималдуу ылдамдыгы, жүрүш боюнча уячалар Толук жаныктоо үчүн канча килограмм азык керек
Бөрү 50 30 3 8
Боору 15 30 1 3
Түлкү 8 30 2 2
Аюу 500 5 2 80
Бүркүт 6 20 3 1
Ат 400 20 4 60
Бугу 300 20 4 50
Коён 2 150 2 0,45
Чычкан 0.05 500 1 0.01
Эчки 60 140 3 10
Кой 70 140 3 15
Кабан 400 50 2 50
Буйвол 700 10 3 100
Өрдөк 1 200 4 0,15
Курт 0.01 1000 0 0
Өсүмдүктөр 1 200 N/A N/A

2. Жаныбардын төмөнкү функциялары болушу керек: покушать, размножиться, выбрать направление передвижения.

3. Өсүмдүк менен тамактануучу жана жырткыч класстарында eat методун ишке ашыруу мүмкүн. Бирок, көңүл буруңуз, бул өсүмдүк менен тамактануучу өрдөк, ал куртту жейт.

4. Ар кандай белгилүү бир түрдүн класстарында бардык методдорду жаныбардын өзгөчөлүктөрүнө ылайык иштеп чыгуу мүмкүн.

5. Төмөнкүдөй кеминде 10 өсүмдүк менен тамактануучу жана 5 жырткыч түрлөрү түзүлүшү керек (пункт 1де сүрөттөлгөн).

Көп агымдуулук

Албетте, программанын бардыгын бир агымда жазууга болот, тек гана циклдерди колдонуунун арты менен. Бирок, биз көп агымдуулук менен тажрыйбалык иштөөгө муктажбыз, ошондуктан агым жана агым пулдарын колдонуу милдеттүү. Бир scheduled пул — өсүмдүктөрдү өстүрүү тапшырмасын, жаныбарлардын жашоо циклин жана системанын статистикасын чыгаруучу тапшырмаларды пландоо үчүн колдонулат. Биринен бирөөсүн чыгарып же аларды бирге ишкерликте статистиканы чыгарса болот. Жаныбарлардын жашоо циклинде дагы бир кадимки агым пуласы колдонулушу мүмкүн. Бул пулыга кандай тапшырмаларды берүүнү өзүңүз тандаңыз.

Тапшырманын милдеттүү бөлүгү:

  • Жаныбарлардын иерархиясы (ООП)
  • Жаныбарлардын жүрүм-туруму
  • Көп агымдуулук
  • Аралдын ар бир тактында абалы боюнча статистика (консольго)

Тапшырманын ыктыярдуу бөлүгү:

  • Параметрлерди бир жерге бөлүп коюу, “симуляцияны” башкарууга ыңгайлуу болуу үчүн
  • Консольдун ордуна визуализация. Бул консольдогу псевдо-графикалык же JavaFX, Swing сыяктуу болушу мүмкүн
  • Симуляцияга таасир эте алчу башка факторлорду кошуу:
    • жаныбарлардын көп түрлөрү
    • ар кандай өсүмдүктөрдүн түрлөрү
    • жаныбарлардын тобуна ылайык жекелештирилген жүрүм-турум (мисалы, бөрү топ менен аңчылык кылат жана жылат)
    • жердин рельефи, анын ичинде агым, бул айрым жаныбарлардын жылышын тоскоол кылат

Параметрлер тууралуу (эгер чечим кыла турган болсоң)

Программаны ишке киргизүүдө анын ар түрдүү параметрлерин өзгөртүү үчүн ыңгайлуу болушу керек (аралдын өлчөмү, бир уячадагы өсүмдүктөр/жаныбарлардын максималдуу сандары, ар кандай жаныбарлардын жылыш мүмкүнчүлүктөрү, ар кандай түрлөрдүн көбөйүү саны ж.б.) бул параметрлерди бир жерге топтоо керек, мисалы, өзүнчө класска. Төмөнкү параметрлерди өзгөртүү мүмкүнчүлүгү болушу керек:

  • аралдын өлчөмү
  • симуляциянын такташтыруу убактысы
  • симуляциянын башында ар түрдүн жаныбарларынын саны
  • симуляциянын токтотуу шарты (мисалы, бардык жаныбарлар өлсө)
  • ар түрдүн жаныбарларында балдар саны

Юникод (эгер псевдографиканы кылгыңыз келсе)

Жаныбарларды сүрөттөө үчүн юникод символдорун колдонсоңуз болот: 🐃, 🐻, 🐎, 🦌, 🐗, 🐑, 🐐, 🐺, 🐍, 🦊, 🦅, 🐇, 🦆, 🐁, 🐛.

Долбоор топ менен өткөндө текшерилет


Долбоордун кароосу

Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION