.[ ČeskéHry.cz ].
Pathfinding systém u hry typu had
Jdi na stránku Předchozí  1, 2, 3
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Witiko



Založen: 05. 06. 2009
Příspěvky: 20

PříspěvekZaslal: 18. březen 2011, 07:10:37    Předmět: Odpovědět s citátem

Weny Sky napsal:
A nestacilo by u slepych ulicek testovat jestli se z daneho stavu dokaze had dostat ke svemu ocasu? Protoze kdyz to dokaze, tak muze minimalne krouzit v nekonecne smycce.

Ona je tu ještě taková past. Při snědení jídla, které přidává více políček hada, zůstává ocas na místě po tolik tahů, dokud se had dostatečně neprodlouží. Pakliže bychom při testu "bezpečnosti" daného stavu nalezli cestu k ocasu ještě ve chvíli, kdy dochází k jeho prodlužování (hloubka hledání < skutečná délka hada - viditelná délka hada), stal by se test neprůkazným, protože had by stále mohl být svým vlastním ocasem zablokován. Rolling Eyes
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Weny Sky



Založen: 28. 07. 2007
Příspěvky: 241

PříspěvekZaslal: 18. březen 2011, 08:46:03    Předmět: Odpovědět s citátem

A kde je problem, vsak bud vis, o kolik se presne po danem jidle prodlouzi, takze neni problem to do toho algoritmu zapocitat, a nebo to nevis a vemes budto moznou stredni hodnotu delky o kterou by mohl rust. To by vsak nekdy vedlo k spatnemu vyhodnoceni. Pak je moznost vzit v potaz nejhorsi moznou hodnotu o kterou se muze prodlouzit a s tou operovat.

Nikde nevidim sebemensi problem
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Witiko



Založen: 05. 06. 2009
Příspěvky: 20

PříspěvekZaslal: 18. březen 2011, 23:07:37    Předmět: Odpovědět s citátem

Weny Sky napsal:
A kde je problem, vsak bud vis, o kolik se presne po danem jidle prodlouzi, takze neni problem to do toho algoritmu zapocitat, a nebo to nevis a vemes budto moznou stredni hodnotu delky o kterou by mohl rust. To by vsak nekdy vedlo k spatnemu vyhodnoceni. Pak je moznost vzit v potaz nejhorsi moznou hodnotu o kterou se muze prodlouzit a s tou operovat.

Nikde nevidim sebemensi problem


Problém tu je, i když možná si ho dělám sám? Smile Samotný proces hledání cesty je rozdělen do těchto kroků:

1) Pomocí A* se oboduje herní pole.
2) Od cílového bodu je zpětně nalezena cesta.
3) Data se pozmění tak, aby se simuloval stav po přijetí hada na konec cesty.
4) Provede se opětovné obodování herního pole při tomto stavu, při nalezení cesty k poli, na kterém se na počátku tohoto stavu nacházel hadův ocas, je pole považováno za bezpečné.

Data viditelné délky / skutečné délky mám přístupná, problém je v tom, že v tomto případě trochu nevím co s nimi. Pakliže ve 4. výše popsaném bodě naleznu cestu k hadovu ocasu, ale ten se stále prodlužuje, pak by do něj had naboural a daný bod tedy vůbec nemusí být bezpečný. Problémem pak je, že A* hledá nejkratší cestu, takže i pokud A* nalezne cestu k ocasu ve chvíli, když se ještě prodlužuje, může zde být delší cesta, při které bude umožněn volný průchod.

Aby nedošlo k omylu - nejde o problém ve hledání cesty, tam mám takovýto případ již od počátku ošetřený. Jedná se nyní o problém finálního vyhodnocení (4. výše popsaný bod), jestli se přijetím na dané pole had dostane do slepé uličky, tedy jestli je bezpečné.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Witiko



Založen: 05. 06. 2009
Příspěvky: 20

PříspěvekZaslal: 20. březen 2011, 21:53:38    Předmět: Odpovědět s citátem

Ok, pravděpodobně by to šlo řešit následovně:

1) Pakliže se ocas neprodlužuje a lze k němu nalézt cestu, je dané pole bezpečné.
2) Pakliže se ocas prodlužuje a nejkratší cesta k němu je delší nebo rovna rozdílu skutečné a viditelné délky ocasu, je dané pole bezpečné.
3) Pakliže se ocas prodlužuje a nejkratší cesta k němu je kratší nežli rozdíl skutečné a viditelné délky ocasu, začne hledání nejdelší cesty. Cyklus hledání je přerušen jakmile je délka této nejdelší cesty delší nebo rovna rozdílu skutečné a viditelné délky ocasu a pole je považováno za bezpečné. (Tímto je eliminován problém NP-complete časové složitosti. Jen musím najít nějaký algoritmus na hledání nejdelší cesty v grafu)

Ačkoliv mi to pořád přijde jako jít s kanónem na vrabce jen za účelem zjištění, je-li přesun na dané pole vjezdem do slepé uličky. Rolling Eyes
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Witiko



Založen: 05. 06. 2009
Příspěvky: 20

PříspěvekZaslal: 23. březen 2011, 18:34:37    Předmět: Odpovědět s citátem

Houp:
Tak jsem kontaktoval toho člověka a zjistil jsem tak jiný pohled na problematiku. Bylo mi řečeno, že dané ai nehledá trasu, pouze vybírá nejvhodnější směr na konci každého kola. Každý směr je ohodnocený záporně podle zahuštění překážkami v daném směru a kladně podle toho v jakém směru je hledané jídlo, přičemž vliv klesá se vzdáleností. O konkrétní kód se nepodělil, jelikož se jedná o projekt v rámci bakalářské práce a je stále ve vývoji. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3
Strana 3 z 3

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna