Сенин ишиң — өзгөрүлмө параметрлери менен аралдын моделин программалоо, ал жерлердин массивинен турат (мисалы, 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 пул — өсүмдүктөрдү өстүрүү тапшырмасын, жаныбарлардын жашоо циклин жана системанын статистикасын чыгаруучу тапшырмаларды пландоо үчүн колдонулат. Биринен бирөөсүн чыгарып же аларды бирге ишкерликте статистиканы чыгарса болот. Жаныбарлардын жашоо циклинде дагы бир кадимки агым пуласы колдонулушу мүмкүн. Бул пулыга кандай тапшырмаларды берүүнү өзүңүз тандаңыз.
Тапшырманын милдеттүү бөлүгү:
Тапшырманын ыктыярдуу бөлүгү:
|
Параметрлер тууралуу (эгер чечим кыла турган болсоң)
Программаны ишке киргизүүдө анын ар түрдүү параметрлерин өзгөртүү үчүн ыңгайлуу болушу керек (аралдын өлчөмү, бир уячадагы өсүмдүктөр/жаныбарлардын максималдуу сандары, ар кандай жаныбарлардын жылыш мүмкүнчүлүктөрү, ар кандай түрлөрдүн көбөйүү саны ж.б.) бул параметрлерди бир жерге топтоо керек, мисалы, өзүнчө класска. Төмөнкү параметрлерди өзгөртүү мүмкүнчүлүгү болушу керек:
- аралдын өлчөмү
- симуляциянын такташтыруу убактысы
- симуляциянын башында ар түрдүн жаныбарларынын саны
- симуляциянын токтотуу шарты (мисалы, бардык жаныбарлар өлсө)
- ар түрдүн жаныбарларында балдар саны
Юникод (эгер псевдографиканы кылгыңыз келсе)
Жаныбарларды сүрөттөө үчүн юникод символдорун колдонсоңуз болот: 🐃, 🐻, 🐎, 🦌, 🐗, 🐑, 🐐, 🐺, 🐍, 🦊, 🦅, 🐇, 🦆, 🐁, 🐛.
Долбоор топ менен өткөндө текшерилет
Долбоордун кароосу
GO TO FULL VERSION