• 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
85 wizyt
pytanie zadane 6 dni temu w C i C++ przez Bondrusiek Nałogowiec (35,520 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ź 6 dni temu przez NIMuser Dyskutant (7,650 p.)
edycja 6 dni temu 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 6 dni temu przez Bondrusiek Nałogowiec (35,520 p.)
Dzięki za materiały, przeanalizuje je.
komentarz 6 dni temu przez NIMuser Dyskutant (7,650 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ź 259 wizyt
pytanie zadane 8 grudnia 2017 w C i C++ przez alskard Nowicjusz (120 p.)
0 głosów
1 odpowiedź 159 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez luthien Nowicjusz (220 p.)
+1 głos
0 odpowiedzi 128 wizyt
pytanie zadane 20 lipca w Nasze projekty przez marcin99b Nałogowiec (44,120 p.)
Porady nie od parady
Nie wiesz jak poprawnie zredagować pytanie lub pragniesz poznać którąś z funkcji forum? Odwiedź podstronę Pomoc (FAQ) dostępną w menu pod ikoną apteczki.FAQ

53,042 zapytań

96,245 odpowiedzi

197,034 komentarzy

25,898 pasjonatów

Przeglądających: 143
Pasjonatów: 1 Gości: 142

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.

...