Gra Saboteur i sprawdzenie końca rozgrywki

0

Witam. Otóż chciałbym napisać grę karcianą Saboteur (sabotażysta) w Javie. Zanim jednak przystąpię do kodowania to chciałbym rozwiązać pewien, a mianowicie jak sprawdzić kiedy gra jest ukończona. Ogólnie w grze chodzi o to aby zbudować "tunel" między kartą początku a kartami końca. Na początku myślałem, że będzie to dosyć proste: sprawdzenie czy jakaś karta przylega do karty końca, jednak w grze występują również karty które przerywają tunel więc taki pomysł odpada. Ma ktoś jakiś pomysł jak można by to sprytnie sprawdzić? Oczywiście zawsze jest opcja sprawdzenia po kolei: każdej karty w 4 kierunkach jednak takich możliwości będzie sporo ( kart na stole może być maksymalnie 44 ). Dodatkowo nie wiem za bardzo jak można by reprezentować karty. Myslałem nad obiektami które miały by pola: top, bottom, left,right określające czy jest droga w danym kierunku oraz polu mówiącym czy tunel jest blokowany czy nie. Obiekty umieszczone by były w tablicy dwuwymiarowej ( oznaczającej plansze). Czy to dobre rozwiązanie? Prosiłbym o pomoc. Załączam również przykładowe zdjęcie rozgrywki. Pozdrawiam.

1

DFS albo BFS. Ogólnie trzymać kartę jako węzeł w grafie. Jak jakaś karta przerwie tunel to zrywasz połączenia (same połączenia możesz trzymać w jakiejś liście albo tablicy dwuwymiarowej). 44 elementy to malutko. Poczytaj po prostu trochę o przeszukiwaniu grafu.

0

Dzięki bardzo! Wydaje się to być dobry pomysł. Tylko przy takim podejściu ( karta jako węzeł ) jak można by "przełożyć" to na wygląd graficzny? Tzn z moim pierwotnym pomysłem ( trzymanie kart na stole w tablicy dwuwymiarowej ), który okazał się niepoprawny, takie przełożenie wyglądałoby dość prosto - narysowanie jakiejś siatki i wyświetlenie kart zgodnie z tą tablicą. A gdy będę trzymał je w postaci grafu? Czy może trzymać je w tablicy i do tego dodatkowo tworzyć graf? Pozdrawiam.

0

Część graficzna powinna być niezwiązana z częścią logiczną gry. Więc to jak wyświetlasz karty nie ma znaczenia w przypadku rozpatrywania dojścia do celu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1