Készíts olyan rendszert, amely egy tengeri- és légikikötőt képes ábrázolni az alábbiak szerint. Minden osztály a kikoto csomagban legyen. A Foprogram osztály tartalmazza a main metódust. Készítsen el egy kikötő példányt úgy, hogy a kikötő adatait egy fájlból olvassa be, amelynek a nevét egy parancssori paraméter adja meg. A fájl szerkezete a leírás végén található meg. A beolvasás után a kikötő rajzolódjon ki egy 900x600 méretű ablakba. (Még látványosabb, ha a járművek mozgásai és az átszállások animáltak. A beadandó így is elkészíthető.) A Kikoto osztály írja le a kikötőben található járműveket. A kikötő legyen képes kirajzolni önmagát és a rajta található járműveket. A kikötő kinézete a következő. A 'b' betűkkel jelölt részeken lehet átszállni járművekbe. ------------------------------------------------ | | | levegő (a légi járművek helye) | | | | | | | | bbbbbbbbbbbbbbbbbbbbbbbb | |----------------------------------------------| | bbbbbbbbbbbb|bbbbbbbbbbb | | | | | tenger | szárazföld | | (a vízi járművek helye) | (...) | | | | ------------------------------------------------ A járművekben emberek ülnek, őket az Ember osztály írja le. Az embereket lehessen kirajzolni; azt, hogy melyik pozícióra kerülnek, a járművek adják meg. Az emberek legyenek megkülönböztethetőek, pl. arcszín, szemszín, fejforma alapján. A járműveket a Jarmu absztrakt osztály írja le. A járművek alkalmasak lehetnek vízi, légi, illetve szárazföldi forgalomra, illetve ezek közül kettőre, vagy akár mindháromra is. A járműhöz legyen megadva, hány férőhelyet tartalmaz. A járműnek legyen sebessége, ami megadja, hány egységet mozog egy lépésben. A járműnek legyen pozíciója (x és y, egész szám), ami megadja, hogy hol található. A (0,0) pozíció legyen a levegő/tenger/szárazföld találkozási pontja, a (-1,-1) legyen a tengerben, az (1,-1) a szárazföldön, (x, 1) pedig a levegőben. Egy pozíción egyszerre két jármű nem tartózkodhat. Az átszálló rész essen (-4, 4) és (4, -4) közé. A járműnek legyen kirajzoló művelete, ami ebben az osztályban ne legyen megvalósítva, a leszármazottaiban viszont igen. A jármű osztálynak legyen legalább hat leszármazottja (osztályok), ezek közül legalább kettő legyen alkalmas légi, legalább kettő vízi és legalább kettő szárazföldi közlekedésre. A kirajzolás műveletét nem kell túlbonyolítani, de legyenek felismerhetőek a járművek. A kirajzolásnál a benne ülő embereket is ki kell rajzolni a megfelelő helyekre. A kikötőt leíró fájl szerkezete legyen az alábbi. Minden embernek és járműnek legyen egy sorszáma, amivel hivatkozunk rájuk. A fájlban soronként találhatóak az utasítások, amelyek az alábbiak lehetnek: ember Az azonosító egy egész szám, megadja, melyik emberről van szó. Az azonosító értéke nem lehet 0. A programban feltételezzük, hogy a bemenetek helyes adatokat írnak le, pl. két különböző embernek nem egyezik meg az azonosítója. Feltételezhető, hogy maximum 20 ember lesz a rendszerben. A további adatok a szemszínt, hajszínt stb. írják le, ezeknek a program elkészítése során kell rögzíteni, és az Ember osztály kódjában megjegyzésekkel leírni. A járműfajta lehet pl. autó, repülő stb., a Jarmu osztály minden leszármazottjához egy. Feltételezhető, hogy maximum 20 jármű lesz a rendszerben. Az azonosító egy egész szám, megadja, melyik járműről van szó. A megadja, hogy melyik azonosítójú emberek ülnek a járműben. Ez a rész egymás után darab adatot tartalmaz, amelyek mindegyike vagy érvényes ember-azonosító, vagy pedig 0, ami azt jelenti, hogy nincsen ember az adott ülésen. Az egyéb adatok rész tartalmának (pl. a jármű színe) szerkezetét írd le a Jarmu osztályban. mozog A megnevezett jármű a megadott irányba mozog annyi lépést, amekkora a sebessége. A jármű nem ütközhet neki másik járműnek, és nem hajthat olyan területre, amelyen nem képes közlekedni. A járművek maradjanak a kirajzolható képernyőterületen. Az irány a fel, le, jobbra, balra értékeket elkódoló szám. atszall A megnevezett ember átszáll a megnevezett járműre. Ez csak akkor történik meg, ha az ember éppen olyan járművön utazik, amelyik az átszálló részen tartózkodik, és a céljármű is az átszálló részen tartózkodik. -------------------------------------------------------------------------------- Beadni a különböző osztályokat tartalmazó .java fájlokat kell, illetve két vagy több példa bemenet fájlt, az egyes fájlokat vízszintes vonalakkal elválasztva (olyannal, mint ami ezt a bekezdést választja el a feladat leírásától).