Segitenetek programozás haziban?
A nyelv C.
A labirintus egy fallal körülvett 10×10-es tábla. A labirintust körülvevő falon egy kijárat található. A labirintusban több kincset rejtettek el. A játékos feladata, hogy összeszedje a kincseket és eljusson a kijáratig.
A labirintust a következő formában kell megjeleníteni:
###### ###
#$ # #
#### ### #
# #
# #### ###
# # #$#
# ##$# # #
#@ ### # #
# $# #
##########
Itt a falakat a # jelzi, a járható részeket szóköz, az elrejtett kincseket a $ karakter, a játékost pedig a @. Ha a játékos felvette, a kincs helyére is szóköz kerül.
Ebben a feladatban az alább látható részfeladatok mind egymásra épülnek, vagyis sorban kell megcsinálnod őket. Minden függvény megírásakor írj egy rövid programrészt a főprogramba, amely meghívja a függvényt – így lépésenként ellenőrizni tudod azt, hogy helyesen működik-e.
Hozz létre egy tömböt a labirintus tárolására! A tömb tárolja a labirintus egyes sorait sztringként. Mivel a sztringek maguk is tömbök, ezért ennek a tömbnek két dimenziósnak kell lennie (tömbök tömbje). Figyelj arra, hogy a sztringként tárolt sorok miatt eggyel nagyobbra kell választanod a tömböt vízszintesen (vagyis szélesebbre), hogy a sztringet lezáró nulla is beleférjen.
Inicializáld a tömböt úgy, hogy a fent látható labirintust tartalmazza. Ehhez azt át tudod másolni a forráskódba.
Írj függvényt, amely paraméterként veszi a labirintust tároló tömböt és kirajzolja a labirintust a képernyőre!
Hozz létre alkalmas struktúratípust a labirintusbeli koordináták tárolására! Írj függvényt, amely paraméterként veszi át a labrintust tároló tömböt, és visszaadja a játékos koordinátáit. Ennek visszatérési típusa a korábban definiált struktúra legyen. A függvény keresse meg a játékost a tömbben, és állítsa be a struktúrában a megfelelő pozíciót!
Írj függvényt, amely paraméterként veszi át a labirintust tároló tömböt, és visszaadja a benne található kincsek számát!
Definiálj felsorolt típust, amely alkalmas az irányok (le, fel, jobbra, balra) tárolására!
Írj függvényt, amely paraméterként veszi át a labirintust tároló tömböt valamint egy irányt! A visszatérési típusa logikai legyen, ami akkor vegye fel az IGAZ értéket, ha a játékos elmozdulhat az adott irányba. A játékos akkor nem mehet egy irányba, ha ott fal van.
Gondolj arra, hogy ennek a függvénynek nem kell paraméterként átvennie a játékos helyzetét, hanem azt az egyik előbb megírt függvénnyel meg tudja határozni.
Írj függvényt, amely paraméterként átveszi a labirintust tároló tömböt és egy adott irányt, és lépteti a játékost, ha ez lehetséges! Azt, hogy az adott irányba léphet-e a játékos, az előző pontban elkészített függvény segítségével ellenőrizd! A léptetés azt jelenti, hogy a játékos aktuális pozíciójára egy szóköz, az új pozíciójára pedig egy @ kerül.
A függvény a visszatérési értékében jelezze, ha
az irány rossz, mert ott fal van!
a játékos a kijáratba lépett!
a játékos kincset talált!
a játékos üres mezőre lépett!
A main függvényben írj egy ciklust, amely bekéri a felhasználótól a mozgás irányát és ennek megfelelően lépteti a játékost!
Tartsd számon, hogy a játékos hány kincset talált!
Ha a játékos a kijáraton kiment, akkor nézd meg, hogy megtalált-e minden kincset (a 3. feladatban megírt függvény segítségével)! Ha már nincs több kincs a labirintusban, akkor nyert, ha van, akkor veszített. Írd ki a végeredményt a képernyőre!
Ha nem mehet a kívánt irányba a játékos, akkor ezt írd ki a képernyőre!
Rajzold ki lépésről-lépésre az új táblát!
ELŐRE IS NAGYON SZÉPEN KÖSZÖNÖM !!
Én nem értem a feladat e részét
"A léptetés azt jelenti, hogy a játékos aktuális pozíciójára egy szóköz, az új pozíciójára pedig egy @ kerül."
Én nekem úgy logikus hogy valaminek az új pozíciója mindig az aktuális pozíciója. Ha tippelnem kell akkor szerintem úgy érti a tanár hogy a játékos jelenlegi, aktuális pozícióját jelezzük szóközzel a leendőbeli pozíciót pedig @ al. De szerintem nincs értelme azt jelezni mert a léptetés emberi szemmel nem követhető gyorsasággal megy végbe hacsak nem azt akarja a feladat hogy előre ezzel mutassa melyik az aktuálisan beállított irány amelyre a játékosnak lépni fog egy újabb gomb lenyomására.
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!