A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre. Egy -es négyzetekből (mezőkből) álló pályán egy robotot irányítunk. A robot a pálya üres mezőin tud mozogni egyenesen fölfelé, lefelé, jobbra és balra. A pályát mind a négy oldalról fal veszi körbe, ugyanakkor a belső négyzetek egy része is akadály, melyeken a robot nem tud áthaladni. A robotot az F, L, J, B nagybetűk sorozatával lehet irányítani, és úgy mozog, hogy a betű hatására elindul az aktuális helyéről a jelzett irányba és addig megy, amíg szabad előtte a pálya, majd megáll az első útjába eső akadály vagy fal mellett. Példaként tekintsük az ábrán látható, értékhez tartozó pályát.
Készítsünk programot i364 néven, amely megoldja a következő feladatokat:
1. | Olvassuk be a palya.txt szöveges állományból a pálya adatait. A szöveges állomány első sorában értéke található, a következő sorában a pályán megtalálható akadályok száma, majd minden ezt követő sorban az akadályok oszlop és sor koordinátái szóközzel elválasztva. |
2. | Rajzoljuk ki a beolvasott pályát karakterekkel úgy, hogy a sarkokat és a belső akadályokat nagy X betűvel, a falakat mindegyik oldalon a sor és oszlop koordináták utolsó számjegyével jelöljük. |
3. | Kérjünk be a felhasználótól egy oszlop és egy sor koordinátát, és adjuk meg, hogy a pályán szabad-e az így megadott mező. A kimenet például a következő: ,,A (3,5) mező szabad.'' |
4. | Válasszunk véletlenszerűen egy szabad mezőt a pályáról, és tároljuk el a koordinátáit a többi programrész megoldásához, és írjuk ki a képernyőre: ,,A robot induló helye a (6,4) mező.'' |
5. | Adjuk meg azoknak a mezőknek a koordinátáit, amelyekre az előbb választott induló mezőről egy lépésben el lehet jutni. A fenti példában a kimenet: ,,Egy lépésben elérhetőek a (6,3), (6,7), (3,4), (10,4) mezők.'' |
6. | Kérjünk be a felhasználótól egy karaktersorozatot, amely a robotnak adott parancsokat jelenti. A szövegből csak az irányokat jelző kis- vagy nagybetűket értelmezzük, a többi karaktert hagyjuk figyelmen kívül. Írjuk a mozgas.txt szöveges állományba a kiinduló helynek és azoknak a pontoknak a koordinátáit, amelyeken megáll a robot a parancssorozat végrehajtása közben. A robot mozgatása a 4. feladatban kisorsolt mezőről induljon. Példaként legyen a bekért karaktersorozat ,,FFjLeBF''. |
7. | Az előbb bekért parancssorozatot javítsuk és egyszerűsítsük úgy, hogy csak a megfelelő irányok nagybetűit tartalmazza, és hagyjunk el belőle minden olyan lépést, amely az adott pályán nem változtatja meg a robot helyét. A kimenet a példában legyen: ,,A javított lépéssorozat: FJLBF''. |
Beküldendő egy tömörített i364.zip állományban a program forráskódja (i364.pas, i364.cpp, ) az .exe és más, a fordító által generált állományok nélkül, valamint a program rövid dokumentációja (i364.txt, i364.pdf, ), amely a fentieken túl megadja, hogy a forrás mely fejlesztői környezetben fordítható. |