Rozwiązanie gry karcianej Pan.

0

Witam.

Otóż niedawno zrodził się w mojej głowie pomysł napisania algorytmu grającego w grę karcianą Pan (http://pl.wikipedia.org/wiki/Pan_%28gra_karciana%29). Pierwsze co przyszło mi do głowy to przeszukiwanie drzewa gry minmaxem + ewentualnie alfa-beta obcięcie, jednak wtedy pojawił się problem z funkcją oceniającą poszczególny stan gry, na początku wymyśliłem żeby zliczać sumę wszystkich kart, karty miałyby wartości np. as - 1 , król - 2 ..... dziewiątka - 6. Im mniejsza suma, tym korzystniejszy stan, zaraz jednak się zorientowałem, że coś takiego jest bez sensu bo np. jedna dziewiątka byłaby korzystniejszym stanem niż 4 asy i 4 króle. Postanowiłem iż bez pomocy wujka Google się nie obejdzie i znalazłem taki pdf (http://www.mimuw.edu.pl/~pan/gry.pdf). Autor w rozdziale o rozwiązywaniu gry napomina, że dla poćwiczenia można sobie rozwiązać grę Pan. Zdziwiło mnie to dosyć bo nie sądziłem, że ta gra może być rozwiązana ale spróbowałem. Wymyśliłem, że na stan gry mają wpływ karty gracza 1 , gracza 2 i trzy karty leżące na wierzchu stosu. 3 karty z wierzchu stosu dają (po uwzględnieniu, że 2 karty pod spodem nie mogą być wyższe od karty na wierzchu)
56 kombinacji. Teraz dla każdej kombinacji 3 kart na stosie , rozwijając wszystkie możliwe kombinacje ilości poszczególnych kart gracza 1 (czyli np 3 asy, 2 króle .... 1 dziewiątka) otrzymujemy około 400 tys. kombinacji . Widać że do tych 400 tys. jeśli przypisalibyśmy jeszcze możliwe rozdanie kart dla gracza 2 otrzymalibyśmy ogromną liczbę. Dlatego zwracam się z pytaniem czy rzeczywiście możliwe jest rozwiązanie tej gry a jeśli nie to jakieś wskazówki co do funkcji oceniającej. Byłbym też wdzięczny jeśli ktoś by się podzielił jakimiś dodatkowymi materiałami przydatnymi przy tym problemie , zna może ktoś angielską nazwę tej gry ? O ile w ogóle jest grana poza Polską.

0

Witam z tego co wiem to kiedyś można było grać w tą grę z "komputerowcem" ale tam dużo dla komputera oznaczały rozdania ponieważ nie dało się go przekręcić gdy miał lepsze rozdanie -tak, ze taka gra nie ma chyba sensu a zakodowane rozwiązania tej gry można wydłubać gdzieś w internecie, tylko gdzie? no i jakiś "fachowiec" mógł by zrobić gre . Z tego co pamiętam to logarytm rozwiązany jest na pewno bo miałem kiedyś taki program w którym wpisywałem jakie karty mam i jakie 3ostatnie leżą na stole koputer sam wiedział jakie karty ma przeciwnik i wskazywał jakie karty rzucać program dawał mi odpowiedź jaką kartę żucić, czy brać itd

0

Heh, ogólnie fajna sprawa!
Pragnę jednak zauważyć, że w Pana może grać więcej graczy niż dwóch - chyba należy również pod tym kontem pisać algorytm :)
Druga sprawa to taka, że Pan to czysto strategiczna gra cechująca się pewną wadą (jeśli chodzi o pisanie algorytmu) - decyzja podjęta w pewnej chwili może mieć ogromne znaczenie wiele kolejek dalej -> dlatego min-max chyba nie ma sensu.
Chciałem również zauważyć, że (z tego co pamiętam) w Panie nie ma osoby, która "wygrała" - jest tylko przegrany i "nie-przegrani" -> innymi słowy w tej grze chodzi o to, żeby nie przegrać a nie o to, żeby wygrać :P. W związku z powyższym celem gracza nie jest jak najszybsze pozbycie się kart tylko pozbycie się ich przed przynajmniej jedną osobą. W tej grze często lepiej jest zbierać karty i dać wygrać jednej osobie, żeby mieć lepsze karty w grze z innymi. To bardzo komplikuje sprawę napisania dobrego algorytmu (chyba).
Z drugiej jednak strony wydaje mi się, że jakiś sposób musi być :). Można np. uzależnić decyzje komputera od ilości graczy (jak jest tylko jeden (poza komputerem) to grać bardziej agresywnie a jak jest więcej graczy to grać bardziej przyszłościowo - zbierać dobre karty i pozbywać się złych).
Ja bym w tej sytuacji był bardziej skłonny napisać algorytm bardziej oparty o logikę i warunki aniżeli szukania jakiegoś Grala w postaci min-max-ów czy SSN. Warto również pogadać z profesjonalistami w tej grze - jakie są ogólnie najlepsze/możliwe strategie.
Chętnie poczytam różne koncepcje :)
Pozdrawiam

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