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

Warcaby AI C++

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
3,073 wizyt
pytanie zadane 9 sierpnia 2018 w C i C++ przez Bondrusiek Maniak (61,440 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,440 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,721 wizyt
pytanie zadane 8 stycznia 2019 w C i C++ przez Łukasz_P Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,124 wizyt
pytanie zadane 8 grudnia 2017 w C i C++ przez alskard Nowicjusz (120 p.)
0 głosów
1 odpowiedź 306 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez luthien Nowicjusz (220 p.)

93,178 zapytań

142,190 odpowiedzi

321,984 komentarzy

62,510 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1637p. - dia-Chann
  2. 1614p. - Łukasz Piwowar
  3. 1599p. - CC PL
  4. 1597p. - Łukasz Eckert
  5. 1572p. - Tomasz Bielak
  6. 1545p. - Michal Drewniak
  7. 1537p. - Łukasz Siedlecki
  8. 1531p. - rucin93
  9. 1509p. - rafalszastok
  10. 1506p. - Marcin Putra
  11. 1487p. - Adrian Wieprzkowicz
  12. 1447p. - Mikbac
  13. 1356p. - ssynowiec
  14. 1289p. - Anonim 3619784
  15. 1169p. - Grzegorz Aleksander Klementowski
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...