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

Warcaby AI C++

Object Storage Arubacloud
+1 głos
2,883 wizyt
pytanie zadane 9 sierpnia 2018 w C i C++ przez Bondrusiek Maniak (61,410 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,410 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ź 1,435 wizyt
pytanie zadane 8 stycznia 2019 w C i C++ przez Łukasz_P Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,065 wizyt
pytanie zadane 8 grudnia 2017 w C i C++ przez alskard Nowicjusz (120 p.)
0 głosów
1 odpowiedź 268 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez luthien Nowicjusz (220 p.)

92,657 zapytań

141,550 odpowiedzi

319,988 komentarzy

62,026 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...