Snake játék programozás c-ben?










Kelleni fog egy adatszerkezet a pályának, és - esetleg ezen belül, de lényeg, hogy mindenképpen kell - a kígyónak, a kajának.
A pálya lehet 2D tömb, nem kell túlbonyolítani.
Időkezelés is kelleni fog, igazából a léptetésre fog épülni, szóval ezen és egy darab időegységen kívül nem sok mindent kell csinálni.
Lényeg, hogy minden lépésben le kell kezelni külön a pályával, a kígyóval, meg a kajával történt dolgokat (a kígyó mozgott az adott irányba, továbbléptetjük a testét, megevett egy kaját, akkor megnöveljük a testét plusz lerakunk a pályára egy újabb kaját).
Ezen kívül (amit kígyós játékkal való pötyögés után szerintem mindenki végig tudna gondolni önállóan) milyen induló lökésre számítasz?





Többféle megoldás van. Én így csinálnám, konzolos képernyőn:
Egy tömbben tárolnám a kígyó minden karakterét, ugyanis figyelni kell, ha bármelyik részével ütközik a feje. A tömb legyen akkora, mint a kígyó legnagyobb hossza, és minden eleme legyen egy x,y koordináta. Ezen kívül kell egy aktuális haladási irány (lehet egy előjeles x,y), kígyó hossza, a kaják koordinátái, és a pálya mérete.
Ahogy a kígyó halad, minden lépésnél a tömbjét shift-eled eggyel "hátra", és a fejébe beírod a feje+irány koordinátát, a farka karakterét pedig (shift előtt) letörlöd. Ezután megnézed, hogy
- a feje azonos helyen van-e a testének valamelyik részével,
- valamelyik kajával, (kígyó hossza++)
- elérte-e a pálya szélét (x=1||x=maxX||y=1||y=maxY)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!