• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Warcaby AI C++

+1 głos
3,824 wizyt
pytanie zadane 9 sierpnia 2018 w C i C++ przez Bondrusiek Maniak (61,460 p.)

Witam,

stworzyłem aplikacje w Qt/C++, która jest prostą grą Warcaby. Udało mi się zaimplementować rozgrywkę player vs player PvP. Chce również stworzyć możliwość rozgrywki player vs computer PvC. Szczerze mówiąc nie wiem jak się za to zabrać. Brakuje mi doświadczenia z gemdev bądź algorytmiki. Pierwszą moją myślą było stworzenie "klikacza" który by randomowo wybierał możliwe pole i generował kliknięcie dla komputera ale wydaje mi się że jest jakaś lepsze metoda. Czy jest jakiś algorytm do gry w warcaby z podziałem na poziom trudności. Podgląd na grę:

 

1 odpowiedź

+1 głos
odpowiedź 9 sierpnia 2018 przez NIMuser Stary wyjadacz (11,030 p.)
edycja 9 sierpnia 2018 przez NIMuser
Generalnie robi się to tak: Robisz drzewo wszelkich możliwych kombinacji ruchów obu graczy (w pamięci komputera grasz komputer-komputer). Jak masz drzewo wszelkich możliwych posunięć to robisz podsumowanie/ podliczasz zyski i straty dla każdej możliwej drogi (n ruchów). Jak już to masz, to jak komputer gra z użytkownikiem to komputer wybiera wtedy "drogę" optymalną. która jest najkorzystniejsza (prowadzi do największych zysków i najmniejszych strat). Przy warcabach tych kombinacji jest trochę, może to nie szachy czy go ;), ale AI będzie trochę "myślało", więc sugeruję raz przeprowadzić budowę drzewa i zapisać w jakiejś formie wyniki na dysk.

 

Przykłady:

https://github.com/mknutsen/Checkers

https://github.com/vrnaz/checkers

 

Problem rozwiązany jest przykładowo tu:

https://dspace.cvut.cz/bitstream/handle/10467/61630/F3-BP-2015-Dolezal-Matej-BP.pdf
komentarz 9 sierpnia 2018 przez Bondrusiek Maniak (61,460 p.)
Dzięki za materiały, przeanalizuje je.
komentarz 9 sierpnia 2018 przez NIMuser Stary wyjadacz (11,030 p.)
Nie ma za co, jest tego sporo w internecie.

Tu masz w C++:

https://sourceforge.net/projects/checkersincpp/

https://github.com/justcode21/Checkers-AI

https://github.com/MarkJr94/checkers

 

Jeśli chodzi o poziom trudności, to po prostu dawałbym graczowi mniej lub więcej czasu na wykonanie ruchu. I tyle.

Podobne pytania

0 głosów
1 odpowiedź 2,156 wizyt
pytanie zadane 8 stycznia 2019 w C i C++ przez Łukasz_P Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,336 wizyt
pytanie zadane 8 grudnia 2017 w C i C++ przez alskard Nowicjusz (120 p.)
0 głosów
1 odpowiedź 451 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez luthien Nowicjusz (220 p.)

93,731 zapytań

142,668 odpowiedzi

323,286 komentarzy

63,291 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...