Tulipa tässä sellainen ongelma eteen, että tuo pelinkutaleeni tarvitsee jonkinlaisen reitinhakualgoritmin. Itselläni ei ole sellaisen tekemisestä kokemusta, ja googlettelemalla en kovin hyviä systeemeitä löytänyt, joten kyselisin vähän miten hommaa kannattaa lähteä toteuttamaan.
Eli peli koostuu tietyn kokoisista ruuduista, jokainen yksikkö on jossain ruudussa. Kartta on 2-ulotteinen int-taulukko, jossa tietyllä välillä olevia numeroita pitkin pystyy liikkumaan (tämä ei tuota ongelmia). Koko homma toimii vuoropohjaisesti.
Olen ajatellut että merkitsisin taulukkoon jokaisen ruudun etäisyyden kohteesta ja saapuessani lähtöpisteeseen, näen etäisyyden helposti. Onko tämä järkevä tapa? Ja toimiiko se kunnolla käytännössä? Millaisia "oikeat" reitinhakualgoritmit ovat?
Eli olisi mukava jos jotkut ks. systeemin toteuttaneet kertoisivat hyviä toteutustapoja.
Ps. Kuuluvatko algoritmit yms. Yleiseen keskusteluun?
eti googlesta A star search algorithmi
Tai vaikkapa tästä. Muutenkin hyvä sivusto.
Ja mitä alueeseen kuuluu, olen sitä mieltä että täällä pitäisi olla "yleinen ohjelmointi" -tyyppinen alue, jossa voisi keskustella ohjelmointiin liittyvistä asioista teoreettisemmalta pohjalta, katsomatta kieltä sen tarkemmin. Vrt. Game Programming Wikin Language Agnostic -foorumi.
Kannattaa kokeilla ensin laatia reitinhakualgoritmi itse jonkin valmiin lainaamisen asemesta. Algoritmin nopeus tuskin tuottaa ongelmia. Toteutustapoja on monia, ja oma ideasi kuulostaa hyvältä. Jos reitit risteävät, valitaan niistä tietysti lyhyempi. Ja jos oma algoritmisi toimii, se on aivan "oikea" siinä missä muutkin. :)
Tämmöiset viestit sopivat yleiseen keskusteluun mainiosti.
Kiitän, täytyy varmaan yrittää saada tuo oma järjestelmä toteutettua, mutta voisihan tuosta A Staristakin lueskella.
Tosiaan nopeus ei tuota tämäntyyppisessä vuoropohjaisessa järjestelmässä hankaluuksia.
Itse olen käyttänyt tuota A*:ia ja suosittelen. Tähän mennessä paras vastaan tullut algoritmi.
Ei kannata kauheasti miettiä "onko tämä järkevä tapa" :)
Jos alkkiksen nopeus menee yli 3 sekunnin, niin sitten voi alkaa miettiä voiko sitä jollain tavalla nopeuttaa, riippuu tietenkin tilanteesta...
Mielestäni erittäin hyvä sivusto, josta löytty hyvä artikkelisarja aiheesta. Osoite: http://www-cs-students.stanford.edu/~amitp/gameprog.html#paths
Aihe on jo aika vanha, joten et voi enää vastata siihen.