Tugas sampeyan yaiku kanggo program model pulo parameter sing dumadi saka macem-macem lokasi (contone, matriks 100x20). Lokasi kasebut bakal diisi tanduran lan kewan. Kewan bisa:

  • mangan tetuwuhan lan/utawa kewan liyane (yen panggonane nduweni panganan sing cocok),
  • pindhah menyang panggonan tetanggan,
  • jenis (yen ana rong jinis ing sawijining lokasi),
  • mati keluwen utawa dipangan.

OOP

Nalika nggawe host kewan, sampeyan kudu nggunakake OOP sabisa: kabeh spesies bakal dijupuk saka siji kelas Animal abstrak, kang bakal ngemot prilaku sing umum kanggo kabeh kewan. Yen kewan tartamtu duwe fitur tartamtu ing babagan dipakani, reproduksi, gerakan, lan liya-liyane, mula kudu ngilangi metode kelas Kewan.

Mangkene sing kudu ditindakake:

1. Nggawe hirarki kelas:

  • Karnivora : Wolf , Boa , Fox , Bear , Eagle

  • Herbivora : Jaran , Kancil , Kelinci , Tikus , Wedhus , Wedhus , Celeng , Kebo , Bebek , Uler

  • Tanduran

Tabel ing ngisor iki nuduhake sepira kamungkinan kewan mangan "panganan" yen ana ing panggonan sing padha karo "panganan" kasebut. Coba deleng kahanan "asu ajag mangan terwelu". Nomer ing meja punika 60. Iki tegese yen asu ajag lan terwelu ing lokasi padha, ana 60% kasempatan sing asu ajag bakal mangan terwelu. Sampeyan kudu nggunakake generator nomer acak multithreaded .

asu ajag Boa Fox Bear Elang Jaran Kancil terwelu Tikus wedhus wedhus celeng kebo bebek Uler Tanduran
asu ajag - 0 0 0 0 10 15 60 80 60 70 15 10 40 0 0
Boa 0 - 15 0 0 0 0 20 40 0 0 0 0 10 0 0
Fox 0 0 - 0 0 0 0 70 90 0 0 0 0 60 40 0
Bear 0 80 0 - 0 40 80 80 90 70 70 50 20 10 0 0
Elang 0 0 10 0 - 0 0 90 90 0 0 0 0 80 0 0
Jaran 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 100
Kancil 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 100
terwelu 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 100
Tikus 0 0 0 0 0 0 0 0 - 0 0 0 0 0 90 100
wedhus 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 100
wedhus 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 100
celeng 0 0 0 0 0 0 0 0 50 0 0 - 0 0 90 100
kebo 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 100
bebek 0 0 0 0 0 0 0 0 0 0 0 0 0 - 90 100
Uler 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 100

Karakteristik kewan:

Bobot saben kewan, kg Jumlah maksimum kewan spesies iki saben lokasi Kacepetan maksimum (jumlah lokasi) saben giliran Jumlah kilogram panganan sing dibutuhake kanggo panganan kewan kanthi lengkap
asu ajag 50 30 3 8
Boa 15 30 1 3
Fox 8 30 2 2
Bear 500 5 2 80
Elang 6 20 3 1
Jaran 400 20 4 60
Kancil 300 20 4 50
terwelu 2 150 2 0.45
Tikus 0.05 500 1 0.01
wedhus 60 140 3 10
wedhus 70 140 3 15
celeng 400 50 2 50
kebo 700 10 3 100
bebek 1 200 4 0.15
Uler 0.01 1000 0 0
Tanduran 1 200 N/A N/A

2. Kewan kudu duwe cara kanggo mangan , breeding , lan milih arah kanggo gerakan .

3. Sampeyan bisa ngetrapake cara mangan ing kelas herbivora lan karnivora. Nanging ati-ati, bebek herbivora mangan uler .

4. Ing kelas tartamtu sing makili spesies tartamtu, sampeyan bisa ngowahi kabeh cara sing cocog karo karakteristik kewan.

5. Sampeyan kudu nggawe paling 10 spesies herbivora lan 5 spesies karnivora (diterangake ing Item 1).

Multithreading

Mesthi wae, sampeyan bisa nulis kabeh program ing siji utas kanthi mung puteran. Nanging kita kudu latihan nggarap multithreading, dadi sampeyan kudu nggunakake benang lan kolam benang. Salah blumbang dijadwal kanggo mbukak tugas ambalan kanggo wutah tanduran lan tumindak kewan, lan tugas kanggo nampilake statistik sistem. Utawa, sampeyan bisa nampilake statistik ing tugas karo tetanduran utawa kéwan. Ing njero tugas aksi kewan, sampeyan bisa nggunakake blumbang benang liyane - sing biasa. Sampeyan mutusake apa tugas sing kudu diwenehake menyang blumbang iki.

Bagian wajib saka tugas:

  • Hierarki kewan (OOP)
  • Kelakuan kewan
  • Multithreading
  • Statistik babagan negara pulo ing saben pengulangan (ditampilake ing konsol)

Bagian opsional saka tugas:

  • Tampilake paramèter ing sak panggonan supaya gampang ngatur simulasi
  • Graphics tinimbang statistik console. Sampeyan bisa nggunakake salah siji pseudographics ing console, utawa JavaFX, Swing ...
  • Tambah faktor liyane sing bisa mengaruhi simulasi:
    • luwih akeh jinis kewan
    • macem-macem jinis tanduran
    • prilaku khusus kanggo klompok kewan (contone, asu ajag mburu lan pindhah minangka paket tinimbang kapisah)
    • terrain lemah, kalebu kali sing impedes gerakane kéwan tartamtu

Babagan setelan (yen sampeyan arep nambahake)

Kanggo nggawe trep kanggo ngganti macem-macem setelan nalika miwiti program (ukuran pulo, jumlah maksimum sing diijini tanduran / kewan ing sawijining lokasi, kemungkinan jinis kewan tartamtu bakal pindhah, jumlah turunane ing macem-macem spesies, etc. .), Sampeyan kudu sijine kabeh setelan iki nang endi wae, contone, ing kelas kapisah. Sampeyan kudu bisa ngganti setelan ing ngisor iki:

  • ukuran pulo
  • durasi siklus jam ing simulasi
  • jumlah kewan saben spesies ing wiwitan simulasi
  • kondisi kanggo mungkasi simulasi (umpamane kabeh kewan wis mati)
  • jumlah anak kanggo saben jinis kewan

Unicode (yen sampeyan arep nggawe pseudographics)

Sampeyan bisa nggunakake karakter Unicode kanggo nggambarake kewan: 🐃, 🐻, 🐎, 🦌, 🐗, 🐑, 🐐, 🐺, 🐍, 🦊, 🦅, 🐇, 🦆, 🐁.