Open lukaszarczynski opened 7 years ago
Tutaj duszki powinny wiedzieć, co zrobią inne duszki, żeby móc dobrze wybierać najlepszy ruch. Dlatego, jeśli duszek (w tym samym stanie) zrobi MCTS/A*/DeepSearch, powinien wysyłać jako wiadomość idęDo decyzję, jaką zdecydował, że podejmie na każdym skrzyżowaniu (tak, aby duszek, który dostanie te wiadomości mógł wywnioskować, która decyzja będzie podjęta wcześniej, a która później -- może np po odległości celu od duszka, który to wysyła, i w każdej turze te odległości muszą być ściśle rosnące -- jeśli duszek zdecyduje, że najpierw pójdzie do miejsca dalszego, a potem do bliższego, wiadomość, że idzie do bliższego wysyła w następnej turze (to jest szczegół implementacyjny, pewnie można inaczej))
Jeśli duszek nie wie, gdzie idzie inny duszek, to wybiera mu losowy kierunek albo symuluje wszystkie kierunki duszka naraz (zależy, która metoda będzie lepiej działać)
Jeśli duszek dostanie nowe wiadomości o wybranym kierunku od innych, znowu liczy swoje decyzje i jeśli coś się zmieniło, wysyła wszystkie wybory do pozostałych.
Duszki wysyłają sobie też, gdzie w danym momencie są, więc łatwo wyznaczamy kierunek, w jakim idzie dany duszek.
Jeśli zdarzy się global reverse, usuwamy wszystkie decyzje swoje i innych i liczymy od nowa
Funkcja celu gotowa -- minimalizowanie numberOfFloodedPositions
Zalewanie pól Pacmanem i wybieranie ruchów, które minimalizują tę liczbę (jakiś minmax?), radzenie sobie z sytuacją, gdy go nie widać (znowu zalewanie, od ostatniej widocznej pozycji?) (prawdopodobnie potrzebne uszczegółowienie)