NukeBoards

Inne - [Mam] Pathfinding

GHPL - 17-08-2016, 11:19
: Temat postu: [Mam] Pathfinding
KLIKNIJ TUTAJ PO LEPSZĄ WERSJĘ

Zrobiłem wyszukiwanie ścieżek
Kod źródłowy: https://www.dropbox.com/s...inding.mfa?dl=1 (CF 2.5)
Exe: https://www.dropbox.com/s...inding.exe?dl=1
Wymagania do otworzenia: Active, Button, String (także raczej się włączy na CF 2.5 Free)

EDIT: Zapomniałem o opisach w programie xD
Czerwony - kolizja
Żółte - pozycja startowa
Zielone - pozycja końcowa
Brązowe - sprawdzane pole
Czarne - nic
Niebieskie - ścieżka

Gify:




Hex edyszyn:
Kod źródłowy: https://www.dropbox.com/s...%20hex.mfa?dl=1
Exe: https://www.dropbox.com/s...%20hex.exe?dl=1

Gif:


EDIT 2: Pewnie pytacie czemu są odstępy w osi x między wielokątami... Bo dziwnie zrobiłem teksturę i tam są takie nachodzące na siebie miejsca...
pogromca909 - 17-08-2016, 11:53
:
z żółtym i zielonym nie jest przypadkiem na odwrót?
Rexu - 17-08-2016, 12:10
:
Bardzo ładne wykonanie szablonowego pathfindingu (z tego co widzę na ssach)
GHPL - 17-08-2016, 12:17
:
pogromca909, nie
msg - 17-08-2016, 16:06
:

Każde pole na mapce może przyjmować więcej niż jedną wartość, dzięki czemu pole może być jednocześnie punktem początkowym jak i końcowy, przez co algo głupieje.

Druga sprawa: ja rozumiem, że w przykładzie nie jest napisane "NAJKRÓTSZA" ścieżka, ale kurde bez przesady ;) . Idąc z roga do roga mam symulator koryta rzeki a nie pathfinding.
GHPL - 17-08-2016, 16:33
:
msg napisał/a:

Druga sprawa: ja rozumiem, że w przykładzie nie jest napisane NAJKRÓTSZA ścieżka, ale kurde bez przesady . Idąc z roga do roga mam symulator koryta rzeki a nie pathfinding.
ale zauważ, że nie uwzględniłem ruchów na skos, a jeśli ich nie ma to obie drogi które pokazałeś są takiej samej długości
msg napisał/a:
Każde pole na mapce może przyjmować więcej niż jedną wartość, dzięki czemu pole może być jednocześnie punktem początkowym jak i końcowy, przez co algo głupieje.
Wiem, ale nie chce mi się dodawać tych paru warunków. Może kiedyś xD
Minty - 17-08-2016, 17:23
:
GHPL napisał/a:
ale zauważ, że nie uwzględniłem ruchów na skos, a jeśli ich nie ma to obie drogi które pokazałeś są takiej samej długości

Niby taka taksówkarska metryka jest OK, i nawet wygląda interesująco... w sumie w grach gdzie nie ma ruchu na skos to może nawet lepiej?
GHPL - 17-08-2016, 19:46
:
Zapraszam do sprawdzenia wersji sześciokątami foremnymi!
Cootje - 18-08-2016, 08:15
:
Ciekawa implementacja algorytmu dijkstry jednak zastąpienie arraya przez obiekty aktywne jako pola zabiera Ci dużo więcej ramu bo każde pole rezerwuje wszystkie zmienne dla activa na danej pozycji, a można by w ogóle ich nie tworzyć oznaczając ścieżkę itp wklejeniem obiektu do tła na podstawie danych z array. O wiele ciekawsza byłaby implementacja algorytmu A*
GHPL - 18-08-2016, 09:05
:
Cootje, ale nie da się zrobić hexowego array'a...
Cootje - 18-08-2016, 15:05
:
Hexoidalny pathfind też robi się na array...


Fadex - 18-08-2016, 16:53
:
Cootje napisał/a:
Ciekawa implementacja algorytmu dijkstry

To nie dijkstra, jeno BFS - wszystkie ścieżki mają taką samą wagę.
GHPL - 18-08-2016, 16:59
:
Cootje, aha, to kiedyś może dodam

W ogóle to cały algorytm wymyśliłem na wakacjach używając kredek i zeszytu w kratkę