Warcaby c++ | drzewo |
Ostatnio zmodyfikowano 2019-01-02 22:38
Vennyn Temat założony przez niniejszego użytkownika |
Warcaby c++ | drzewo | » 2019-01-02 20:45:03 Witam, aktualnie pisze projekt warcabów w języku c++. Do przeprowadzenia projektu muszę wykorzystać drzewo, w którym przechowywane są trzy ruchy do przodu. Brakuje mi wiedzy i materiałów do zrobienia tego. Jakieś rady? Całą logikę warcabów już mam napisaną łącznie z funkcją oceniającą. Pytanie tylko jak zabrać się za drzewo. |
|
jankowalski25 |
» 2019-01-02 21:20:40 W korzeniu umieszczasz stan szachownicy na początku gry. Następnie doczepiasz do niego wszystkie możliwe ruchy pierwszego gracza. Do każdego z nich dołączasz wszystkie możliwe reakcje drugiego gracza na każde z tych posunięć. Ostatecznie drzewo ma mieć trzy poziomy, więc do każdego z tych ruchów dołączasz możliwe ruchy pierwszego gracza. Na końcu wywołujesz funkcję oceniającą na każdym stanie planszy po tych trzech ruchach (czyli na wszystkich liściach). Początek gry ├── a3-b4 │ ├── b6-a5 │ │ └── ... │ ├── b6-c5 │ ├── d6-c5 │ ├── d6-e5 │ ├── f6-e5 │ ├── f6-g5 │ └── h6-g5 ├── c3-b4 ├── c3-d4 ├── e3-d4 ├── e3-f4 ├── g3-f4 └── g3-h4 |
|
pekfos |
» 2019-01-02 21:33:33 Niech zbicie pionka wroga ma jakąś dodatnią ilość punktów, a strata pionka ujemną. Potem Alfa-beta. |
|
Vennyn Temat założony przez niniejszego użytkownika |
» 2019-01-02 21:47:14 tą część z dołączaniem rozumiem, sam myślałem o czymś podobnym tylko nie mam pojęcia jak to wprowadzić w życie. Znasz jakieś materiały gdzie mógłbym się dokształcić w tej dziedzinie, bo wydaje mi się że czegos mi brakuje. Jak do tej pory mialem styczność tylko z drzewami binarnymi. |
|
pekfos |
» 2019-01-02 21:51:00 Drzewa niebinarne nie są wcale trudniejsze. Po prostu masz N węzłów potomnych, a nie 2. Do tego celu dobrze jakbyś wymyślił sposób na reprezentację ruchu i sposób na przechowywanie informacji o węzłach. To drugie to może być po prostu wektor par std::vector<std::pair<Ruch, Poddrzewo>>. |
|
Vennyn Temat założony przez niniejszego użytkownika |
» 2019-01-02 21:56:35 Za użycie vector lista mój projekt jest uwalany :/
|
|
pekfos |
» 2019-01-02 22:32:55 To zrób sobie listę jednokierunkową. |
|
Vennyn Temat założony przez niniejszego użytkownika |
» 2019-01-02 22:38:06 Ok, pokombinuje. A co do reprezentacji ruchu, co miałeś na myśli. Moja koncepcja wykonywanych ruchów to swap. Plansze mam zadeklarowana jako tablice dwuwymiarową, a do tego enuma na pola puste i bierki biale czarne i damki. |
|
« 1 » |