Hogyan írnátok olyan programot ami megkeresi és kirajzolja a labirintusban kifelé vezető útját?
BackTrack ezt fogom használni.
De nem értem,hogy hogyan lehet követni a fehér vonalat?
Nem értem,hogyan fogok előrébb jutni az algoritmusban.
Itt csak a pozíciók változtatásáról van szó?
Akkor vagy függőleges le föl vagy vízszintes jobb bal mozgást lehet végezni.
De hogyan csináljam meg azt,hogyha a labirintusban mindenféle kanyarok vannak?A programnak meg kell tudni állapítani hogy hány fokban görbül a kanyar ahhoz hogy követni tudja a fehér utat nem?
Hát onnan tudja,hogy az még nem acél.
De engem az érdekel,hogy hogyan oldják meg azt a programozók,hogy az algoritmus keressen.
Ha én volnék a labirintusban akkor én sétálnék benne mennék az egyik helyről a másikba.
A program esetében mi az ami sétál ott és megy az egyik helyről a másikba mi van ott?
Nem, van egy "játékos", aki keres, a program őt személyesíti meg, ezek után már csak meg kell adni a szabályokat, amik alapján menjen, pl. mindig jobbra induljon, és ha nincs már út előtte, akkor menjen vissza amíg nem talál olyan utat ahol nem járt
(Ezt lehet pl. jelölni úgy, hogy 0 a játékos, 1 a cél, 2 az út és 3 ahol már járt és 4 a fal, vagyis simán tudsz már szabályt adni neki)
Előző vagyok:
A labirintust meg egy mátrixban tárolod, ahol az [x,y] koordináták alapján már csak meg kell nézd a játékos mellett lévő cellákat.
Ha nekem kellene ezt megcsinálni ezzel a képpel, akkor én biztos hogy úgy indulnék neki hogy felosztanám "négyzethálósra", azaz ez egy x*y méretű tömb lenne.
Egy mezőben azt kell tárolni, hogy merre lehet menni az adott mezőből, fel,le,balra,jobbra. Ezt meg tudod állapítani, hogy merre nincs "fal" az adott négyzethez képest.
Ezután lenne egy aktuális menetirány változó, amiben benne van, hogy éppen merre mész.
Ha lépsz egy mezőt, mindig megnézed, hogy merre lehet továbbmenni(ide nem veszed bele azt amerről jöttél) és ha több mint 1 van, akkor ezt mint elágazást eltárolod a BackTrack algoritmusodhoz.
Ezután pedig ha zsákutcába jutottál mindig visszamész ez előző elágazáshoz és a következő utat választod.
Tehát a program onnan tudja hogy épp hol tart, hogy az x*y-os tömbben épp melyik az aktuálisan vizsgált mező.
"Egy mezőben azt kell tárolni, hogy merre lehet menni az adott mezőből, fel,le,balra,jobbra. Ezt meg tudod állapítani, hogy merre nincs "fal" az adott négyzethez képest."
A négyzetekkel már hogyan tudnád megállapítani?
Mit fognak tárolni a négyzetek,hogyha bekockázod azt a térképet?Nem értem.
Kapcsolódó 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!