Kezdőoldal » Számítástechnika » Programozás » Soko pálya editor?

Soko pálya editor?

Figyelt kérdés
Csináltam egy láda tologatós játékot és most ahhoz szeretnék készíteni egy pálya szerkesztőt is. Meg is tudom csinálni, azzal nincs baj, csak azt nem tudom, hogy lehetne a kész pályákat letesztelni, hogy egyáltalán játszhatók-e? Van erre valami módszer?
2023. ápr. 21. 03:19
 1/1 anonim ***** válasza:

Kell írni egy "solvert" a játékodhoz, ami mindenképpen megtalálja a megoldást, ha létezik. Ha nem túl bonyolult a játékod, akkor ez akár egy egyszerü gráfkeresés is lehet:

A gráf csúcsai a játék pillanatnyi állapota: hol vannak a dobozok, hol áll a karakter, ilyesmik.

A gráf élei inputok az usertöl.


Egy példa:

- tegyük fel, hogy a játékod egy 3x3-as mapon játszódik, ahol van egy játékos karakter, egy doboz, meg egy cél, ahova a dobozt be kell juttatni.


Ekkor a játék pillanatnyi állapota leírható három koordinátapárral:

- Játékos(x,y)

- Doboz (x,y)

- Cél (x,y)


Ebböl az állapotból 4 él vezet(a 4 irány):

Minden él abba a gráfcsúcsba vezet, ami azt az állapotot írja le, amibe a játék kerül, ha az user megnyomja az adott gombot.


A kezdö állapot legyen ez (0,0 a bal felsö sarok, lefelé és jobbra vannak a pozitív koordináták):

- J(0,0), D(1,1), C(2,2)

A gombok pedig a w,a,s,d

- J(0,0), D(1,1), C(2,2) * w -> J(0,0), D(1,1), C(2,2) (nem történik semmi, hisz fent állunk, nem tudunk feljebb menni)

- J(0,0), D(1,1), C(2,2) * a -> J(0,0), D(1,1), C(2,2) (nem történik semmi, hisz nem tudunk balra menni menni)

- J(0,0), D(1,1), C(2,2) * s -> J(0,1), D(1,1), C(2,2) (a játékos egy mezövel lejjeb ment)

- J(0,0), D(1,1), C(2,2) * d -> J(1,0), D(1,1), C(2,2) (a játékos egy mezövel jobbra ment)


Egy ilyen gráfon kell keresgélned. Elindulsz a kezdö állapotból(ahogy a pálya kinéz a játék elején) és addig keresel a gráfban, amíg

a) Nem találsz egy olyan állapotot, amivel a játékos megnyeri a játékot(a fenti példában ez akkor lenne, ha a doboz és a cél koordinátái megegyeznek). Ekkor a pálya megoldható

b) Kimeríted az összes állapotot anélkül, hogy találtál volna nyerö állapotot(ilyenkor a pálya nem megoldható)

2023. ápr. 21. 16:24
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!