Pomoc při tvorbě generátoru cest

Kamarádi, přátelé.
Pracuju teď na prototypu mojí další hry. A dostal jsem se do stavu, kdy bych potřeboval drobnou pomoc od někoho, kdo umí programovat (prokticky v čemkoli).
Představte si, že mám šestiúhelníkovou mapu (jak jinak u mne), kde startovní políčko je uprostřed (na obrázku žluté) a od něj je šest okruhů dalších šestiúhelníků (na obrázku jednotlivé okruhy odstínované tou podivnou béžovo-hnědou barvou). Od středu k okrajům vede šest cest, různě se klikatících (ty kostrbaté věci). A to je právě to, co potřebuju generovat, aby to pokaždé nebylo stejné. Takže zde jsou jednoduchá pravidla, které musí každá cesta splňovat:

1) cesty různých barev se nikdy nekříží nebo nekončí na stejném políčku
2) cesta od jedné barvy prochází právě 21 políčky
3) cesta od jedné barvy může mít libovolně mnoho (rozumně) odboček
4) nejdelší souvislý úsek cesty od jedné barvy od startu do jejího konce může být max. 12 políček (tzn. pokud se nebudete vracet stejnou cestou a půjdete stále dopředu, tak ujdete max. 12 kroků)
5) všechna políčka mapy musí obsahovat právě jeden úsek některé z cest, tzn. žádné políčko nesmí zůstat nepropojené cestou se startem (6 barevných cest po 21 políčkách je právě 126 políček, což je počet okolních hexů okolo startovního hexu)

Na přiložených obrázcích vidíte dvě možné varianty.
https://i1.wp.com/playasap.eu/wp-content/uploads/2018/12/cesty1.png
https://i1.wp.com/playasap.eu/wp-content/uploads/2018/12/cesty2.png

Každé políčko je tím pádem určené třemi souřadnicemi:
1) barvou cesty
2) vzdáleností v rámci okruhů (1-pro nejbližší ohruh, 6-pro nejvzdálenější)
3) vzdáleností po cestě od středu k jejímu konci (1-hned první políčko cesty až max. 12 jako nejvzdálenější políčko po cestě - podle pravidla 4)

Na tomto obrázku
https://i0.wp.com/playasap.eu/wp-content/uploads/2018/12/cesty3.png

jsou tedy souřadnice vyznačeného modrého žetonu:
1) purpurová
2) 3. okruh
3) vzdálenost po cestě 11

Tuším, že řešením je nějaká rekurze s hlídáním těch uvedených pravidel. Je mi jedno, jestli by výstupem byla nějak graficky znázorněná tahle mapa (složité), nebo výpis těch 126ti souřadnic v nějakém formátu (tam by se asi musela přidat informace, z jakého směru se na políčko přišlo, pokud je 1 na severu a 4 na jihu). Třeba pro tu purpurovou cestu z předchozího obrázku:
1) P-1-1-4
2) P-2-2-4
3) P-3-3-4
4) P-4-4-5 (to je ta první zatáčka doprava mezi 3) a 4))
5) P-4-5-3 (vrací se doleva, ale zůstává na 4. okruhu)
6) P-5-6-4 (to je ta první křižovatka, proto se dál vydám doleva, čili vlastně vzhůru)
7) P-6-7-4
8) P-6-8-2 (to je ta druhá křižovatka, dál jdu zase doleva, čili dolů)
9) P-5-9-1
10) P-4-10-1
11) P-3-11-1 (to je to políčko s modrým žetonem)
12) P-2-12-1 (to je maximální vzdálenost 12, proto cesta končí a vracím se rekurentně na tu předchozí křižovatku na políčku s modrým žetonem)
13) P-3-12-3 (zase maximální vzdálenost, vracím se na předchozí křižovatku)
14) P-6-9-2 (protože předchozí křižovatka měla vzdálenost 8, tahle má logicky 9)
15) P-6-10-2 (jsme na konci odbočky, je jedno, že nedosáhla maxima 12, jdeme na předchozí, čili úplně první křižovatku)
16) P-6-7-5 (první křižovatka byla ve vzdálenosti 6, takže tahle je 7, ale na 6. okruhu)
17) P-6-8-6 (to je ta ostrá zatáčka)
18) P-5-9-2
19) P-5-10-6
20) P-4-11-1
21) P-5-12-4 (poslední 21. dílek cesty ve vzdálenosti 12 od startu a končí na 5.okruhu)

A takhle i pro ty ostatní cesty. Prostě nějaký náhodný generátor, který dodrží ta pravidla...

Doufám, že jste to pochopili. Případně si můžete vymyslet vlastní syntaxi zápisu té cesty, pokud jí budu schopen pak nějak reprodukovat.

Najde se někdo, kdo by to zvládl, popřípadě kdo má nějaké připomínky?

Děkuji všem za pozornost.

Petr V.
aka Acer1968
31.12.2018 11:45:49

Velmi zajimave tema
bohuzel casu neni nazbyt. Nicmene toto tema je velmi dobre zpracovane zde:

https://www.redblobgames.com/grids/hexagons/

At uz pro tve potreby pripadne pro tveho programatora se budou urcite hodit. :-)

Hodne stesti.

31.12.2018 12:53:42

Vojtěch Musil - díky moc
Tak to je úžasná stránka. Díky moc.
Spoustu věcí to vysvětluje. Na druhou stranu to přináší spoustu nových otázek a pohledů.
Několikrát jsem se přistihl, jak si říkám: "Sakra, že mě nikdy nenapadlo se nad tím zamyslet takhle?!?!"
Fakt super. Zkusím si z toho vyzobnout to, co upotřebím, protože těch informací je tam moc a spousta z nich je pro mne nadbytečná.

2.1.2019 16:02:53

Vybíráme z Bazaru

Doodle Rush (EN)
Akt. cena: 1 Kč
Končí za: 10 dnů

Nejnovější otázky

další >>

Offcanvas