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

Warcaby AI C++

Konferencja JOIN! 2018
+1 głos
119 wizyt
pytanie zadane 9 sierpnia w C i C++ przez Bondrusiek Nałogowiec (37,340 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 przez NIMuser Stary wyjadacz (10,040 p.)
edycja 9 sierpnia 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 przez Bondrusiek Nałogowiec (37,340 p.)
Dzięki za materiały, przeanalizuje je.
komentarz 9 sierpnia przez NIMuser Stary wyjadacz (10,040 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ź 283 wizyt
pytanie zadane 8 grudnia 2017 w C i C++ przez alskard Nowicjusz (120 p.)
0 głosów
1 odpowiedź 165 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez luthien Nowicjusz (220 p.)
+1 głos
0 odpowiedzi 149 wizyt
pytanie zadane 20 lipca w Nasze projekty przez marcin99b Maniak (50,870 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

55,376 zapytań

99,733 odpowiedzi

205,205 komentarzy

27,305 pasjonatów

Przeglądających: 337
Pasjonatów: 16 Gości: 321

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...