Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- A feladat neve: Rush Hour / Parkolójáték
- A feladat leírása(saját):
- A parkolójáték egy egészen egyszerű logika mentén működő játék.
- Ez a program ennek a játéknak egy egyszerűbb változatát hivatott megvalósítani.
- A saját autónk 'P' betűvel van megjelölve, az üres helyek ponttal,
- míg a többi autó az angol ábécé más nagybetűivel vannak ellátva.
- Az autóknak kiterjedésük van (pl. a x 1 vagy 1 x b,
- ahol a és b pozitív egész számok), így a mozgatásuk nem kezelhető pontszerűként.
- Az autók a fekvésüknek megfelelően mozgathatóak csak, azaz nincs forgatás:
- - vízszintes fekvésű autók csak balra / jobbra mozgathatóak;
- - függőleges fekvésű autók csak fel / le mozgathatóak.
- (Mintha sínen mozogna mind.)
- Alapértelmezetten rendelkezésre áll egy javadoc dokumentációs mappa
- vagy tömörített fájl,
- valamint egy .jar kiterjesztésű állomány, ami tartalmaz egy lebutított shell-t.
- Értelemszerűen a .jar állományt hozzá kell adni a készülő projekthez
- (igen,újat kell létrehozni és ahhoz társítani),
- és a főprogramnak a 'shell.Main'-t kell kiválasztani.
- Mivel a listában nem fog automatikusan megjelenni,
- így kézzel kell ezt bevinni. Figyelni kell arra is,
- hogy mivel a shell-ben található dolgok csomagvédettek
- (protected kulcsszóval ellátottak), ezért az új .java kiterjesztésű állományokat
- egy 'shell' nevezetű csomagban tároljuk a láthatóság biztosítása érdekében.
- Az sem megkerülendő, hogy a betöltéshez szükség lesz egy külön .java állományra,
- ami csak ezzel foglalkozik.
- (C#-os megvalósítás esetén van egy extra .dll állomány.)
- A feladat az lenne, hogy a shell-hez adjon hozzá parancsokat,
- és bizonyos funkciókat adminisztráljon a futás alatt.
- A következőket kell nyomon követni:
- - le kell tárolni a parkolót (parkolótáblát), ami a játékteret képezi;
- - le kell tárolni azokat az autókat, amelyeket később mozgatni lehet;
- - le kell tárolni a kijáratot mint a tábla egyik mezőjét;
- - továbbá folyamatosan figyelni kell azt is,hogy mikor értünk végállapotba:
- - győzelemnek számít az, ha az autónk bármelyik része a kijárati mezőn van.
- Az alkalmazott adatszerkezetek és változók
- mennyiségében és típusában nincs megkötés.
- További kiegészítés, hogy a beolvasandó állományoknak
- a projekt mappájában kell elhelyezkedniük a beolvasáshoz (nem pedig az src-ben).
- A feladatban a következő parancsokat kell beleépíteni a shell-be:
- 1. 'print'
- Kiírja a játék aktuális állapotát, ami magában foglalja a játékteret,
- valamint azt is, hogy végállapotba értünk-e.
- Mivel a későbbi parancsok is igénybe fogják venni a kiíratást,
- ezért célszerű egy külön metódust írni rá, és ezt meghívni ide is.
- A használat kivételei:
- - ha a parancsnak bármilyen paramétere szerepel;
- - nincs éppenséggel futó játék (szakszóval nincs inicializálva).
- 2. 'load sample.txt'
- Egy új játékot / játszmát hoz létre egy meglévő fájl alapján.
- A fájl a következőket tartalmazza:
- - az első sor első két száma a játéktér méretét adja meg
- (sor-oszlop sorrendben);
- - az első sor második két száma a kijárat helyzetét határozza meg
- (sor-oszlop sorrendben);
- - a maradék sorok pedig az aktuális játékteret reprezentálják.
- A használat kivételei:
- - nem egy darab paraméterrel rendelkezik a parancs;
- - az adott szöveges fájl nem létezik.
- 3. 'north N'
- Egy adott betűvel rendelkező autót mozgat északi irányba / felfele.
- A mozgatás után egy kiíratás történik.
- A használat kivételei:
- - nem egy darab paraméterrel rendelkezik a parancs;
- - a paraméter nem egy betű
- (elviekben a kis- és nagybetű között nincs eltérés,
- (de a játék nagybetűket használ);
- - nincs még elkezdett játék
- (azaz az első játék előtt nem használható a parancs);
- - nincs ilyen betűvel rendelkező autó a játéktéren;
- - a mozgatással kikerülne a játéktérről
- (azaz indexalulcsordulás lépne fel);
- - nem az autó fekvésének megfelelő a mozgatás (nem függőleges);
- - a mozgatás célja / helyzete nem egy üres mező;
- - ha már véget ért a játék.
- 4. 'south N'
- Egy adott betűvel rendelkező autót mozgat déli irányba / lefele.
- A mozgatás után egy kiíratás történik.
- A használat kivételei:
- - nem egy darab paraméterrel rendelkezik a parancs;
- - a paraméter nem egy betű;
- - nincs még elkezdett játék;
- - nincs ilyen betűvel rendelkező autó a játéktéren;
- - a mozgatással kikerülne a játéktérről
- (azaz indextúlcsordulás lépne fel);
- - nem az autó fekvésének megfelelő a mozgatás (nem függőleges);
- - a mozgatás célja / helyzete nem egy üres mező;
- - ha már véget ért a játék.
- 5. 'west N'
- Egy adott betűvel rendelkező autót mozgat nyugati irányba / balra.
- A mozgatás után egy kiíratás történik.
- A használat kivételei:
- - nem egy darab paraméterrel rendelkezik a parancs;
- - a paraméter nem egy betű;
- - nincs még elkezdett játék;
- - nincs ilyen betűvel rendelkező autó a játéktéren;
- - a mozgatással kikerülne a játéktérről
- (azaz indexalulcsordulás lépne fel);
- - nem az autó fekvésének megfelelő a mozgatás (nem vízszintes);
- - a mozgatás célja / helyzete nem egy üres mező;
- - ha már véget ért a játék.
- 6. 'east N'
- Egy adott betűvel rendelkező autót mozgat keleti irányba / jobbra.
- A mozgatás után egy kiíratás történik.
- A használat kivételei:
- - nem egy darab paraméterrel rendelkezik a parancs;
- - a paraméter nem egy betű;
- - nincs még elkezdett játék;
- - nincs ilyen betűvel rendelkező autó a játéktéren;
- - a mozgatással kikerülne a játéktérről
- (azaz indextúlcsordulás lépne fel);
- - nem az autó fekvésének megfelelő a mozgatás (nem vízszintes);
- - a mozgatás célja / helyzete nem egy üres mező;
- - ha már véget ért a játék.
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement