Az Ön feladata egy paraméterezett sziget modelljének programozása, amely helytömbből áll (például egy 100x20-as mátrix). A helyszíneket növényekkel és állatokkal fogják benépesíteni. Az állatok képesek:
- növényeket és/vagy más állatokat enni (ha helyükön megfelelő táplálék van),
- költözni (szomszédos helyekre),
- fajta (ha kétféle létezik egy helyen),
- éhen halnak vagy megeszik.
OOP
Az állatsereg létrehozása során a lehető legtöbbet használja az OOP-ot: minden faj egyetlen absztrakt állatosztályból származik, amely tartalmazza azt a viselkedést, amely minden állatra jellemző. Ha bizonyos állatok sajátos jellemzőkkel rendelkeznek a táplálkozás, a szaporodás, a mozgás stb. tekintetében, akkor felül kell írniuk az Állatok osztály módszereit.
A következőket kell tennie:
1. Hozzon létre egy osztályhierarchiát:
-
Ragadozók : Farkas , Boa , Róka , Medve , Sas
-
Növényevők : ló , szarvas , nyúl , egér , kecske , juh , vaddisznó , bivaly , kacsa , hernyó
-
Növények

Az alábbi táblázat azt mutatja, hogy egy állat mekkora valószínűséggel eszik "eledelt", ha ugyanazon a helyen van, mint az "eledel". Nézzük meg azt a helyzetet, amikor „a farkas megeszi a nyulat”. A táblázatban szereplő szám 60. Ez azt jelenti, hogy ha a farkas és a nyúl ugyanazon a helyen vannak, 60% az esély arra, hogy a farkas megeszi a nyulat. Többszálú véletlenszám-generátort kell használnia .
Farkas | Boa | Róka | Medve | Sas | Ló | Szarvas | Nyúl | Egér | Kecske | Juh | Vaddisznó | Bivaly | Kacsa | hernyó | Növények | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Farkas | - | 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 |
Róka | 0 | 0 | - | 0 | 0 | 0 | 0 | 70 | 90 | 0 | 0 | 0 | 0 | 60 | 40 | 0 |
Medve | 0 | 80 | 0 | - | 0 | 40 | 80 | 80 | 90 | 70 | 70 | 50 | 20 | 10 | 0 | 0 |
Sas | 0 | 0 | 10 | 0 | - | 0 | 0 | 90 | 90 | 0 | 0 | 0 | 0 | 80 | 0 | 0 |
Ló | 0 | 0 | 0 | 0 | 0 | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 100 |
Szarvas | 0 | 0 | 0 | 0 | 0 | 0 | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 100 |
Nyúl | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 100 |
Egér | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 0 | 0 | 0 | 0 | 0 | 90 | 100 |
Kecske | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 0 | 0 | 0 | 0 | 0 | 100 |
Juh | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 0 | 0 | 0 | 0 | 100 |
Vaddisznó | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 50 | 0 | 0 | - | 0 | 0 | 90 | 100 |
Bivaly | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 0 | 0 | 100 |
Kacsa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 90 | 100 |
hernyó | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 100 |
Az állatok jellemzői:
Súly állatonként, kg | A fajhoz tartozó állatok maximális száma helyenként | Maximális sebesség (helyek száma) fordulónként | Az állat teljes táplálásához szükséges élelmiszer kilogrammjainak száma | |
---|---|---|---|---|
Farkas | 50 | 30 | 3 | 8 |
Boa | 15 | 30 | 1 | 3 |
Róka | 8 | 30 | 2 | 2 |
Medve | 500 | 5 | 2 | 80 |
Sas | 6 | 20 | 3 | 1 |
Ló | 400 | 20 | 4 | 60 |
Szarvas | 300 | 20 | 4 | 50 |
Nyúl | 2 | 150 | 2 | 0,45 |
Egér | 0,05 | 500 | 1 | 0,01 |
Kecske | 60 | 140 | 3 | 10 |
Juh | 70 | 140 | 3 | 15 |
Vaddisznó | 400 | 50 | 2 | 50 |
Bivaly | 700 | 10 | 3 | 100 |
Kacsa | 1 | 200 | 4 | 0,15 |
hernyó | 0,01 | 1000 | 0 | 0 |
Növények | 1 | 200 | N/A | N/A |
2. Az állatnak rendelkeznie kell étkezési , szaporodási és mozgási irányválasztási módszerekkel .
3. Növényevő és húsevő osztályon megvalósíthatja az evés módszerét. De légy óvatos, a növényevő kacsa hernyókat eszik .
4. Az egyes fajokat képviselő osztályokban az összes módszert módosíthatja az állat tulajdonságainak megfelelően.
5. Legalább 10 növényevő fajt és 5 húsevő fajt kell létrehoznia (az 1. pontban leírtak szerint).
Többszálú
Természetesen lehetséges, hogy a teljes programot egy szálra írjuk, csak ciklusok segítségével. De gyakorlatra van szükségünk a többszálú kezelésben, ezért szálakat és szálkészleteket kell használnia. Egy ütemezett készlet a növények növekedéséhez és az állatokkal kapcsolatos műveletekhez kapcsolódó ismétlődő feladatok futtatásához, valamint egy feladat a rendszerstatisztikák megjelenítéséhez. Alternatív megoldásként megjelenítheti a statisztikákat egy feladatban a növényekkel vagy állatokkal. Az állatakciós feladaton belül egy másik szálkészletet is használhat – egy közönségest. Ön dönti el, hogy mely feladatokat kívánja hozzárendelni ehhez a készlethez.
A feladat kötelező részei:
A feladat választható részei:
|
A beállításokról (ha úgy dönt, hogy hozzáadja őket)
A program indításakor a különböző beállítások kényelmes megváltoztatása érdekében (a sziget mérete, a növények/állatok maximálisan megengedett száma egy helyen, egy adott típusú állat elköltözésének valószínűsége, az utódok száma a különböző fajokban stb. .), ezeket a beállításokat el kell helyeznie valahova, például egy külön osztályba. Lehetővé kell tenni a következő beállítások módosítását:
- sziget mérete
- egy óraciklus időtartama a szimulációban
- az egyes fajok állatainak száma a szimuláció kezdetén
- a szimuláció leállításának feltétele (pl. az összes állat elpusztult)
- az utódok száma az egyes állatfajták esetében
Unicode (ha úgy dönt, hogy pszeudográfiát készít)
Az állatok ábrázolására Unicode karaktereket használhat: 🐃, 🐻, 🐎, 🦌, 🐗, 🐑, 🐐, 🐺, 🐍, 🦊, 🦅, 🐇, 🦁, 🐇, 🦅, 🐇.
GO TO FULL VERSION