[Algorytmy][C++] Warcaby czlowiek-komputer
-
- Użytkownik
- Posty: 20
- Rejestracja: 3 lip 2013, o 18:22
- Płeć: Mężczyzna
- Lokalizacja: Lokalizacja
- Podziękował: 16 razy
[Algorytmy][C++] Warcaby czlowiek-komputer
Piszę właśnie grę w warcaby człowiek vs. człowiek, większość kodu już mam. Chcę też żeby program zawierał opcję gry człowiek-komputer. Nie wiem jak się pisze taki kod, żeby komp wykonywał ruch, takich informacji szukałem trochę w necie, ale nie znalazłem.
Mógłby ktoś napisać trochę o tym, co i jak? Pewnie im trudniejszy poziom kompa tym bardziej skomplikowany kod, dlatego niech poziom kompa będzie łatwy. Czy w związku z tym dużo będzie musiał się zmienić mój kod, ten co teraz mam napisany?
PS. Jak już napisałem na początku, większość kodu mam napisanego. Kod ma kilka funkcji, rzecz jasna, ale nie ma struktur, klas itp. Chcę, żeby program zawierał takie rzeczy jak: kapsułkowanie, dziedziczenie, szablony funkcji/klas, polimorfizm. No, może nie wszystkie, ale chociaż trzy z nich. I teraz pytanie jak wyżej, czy dużo będę musiał nazmieniać w moim obecnym kodzie, żeby te rzeczy zastosować?
Mógłby ktoś napisać trochę o tym, co i jak? Pewnie im trudniejszy poziom kompa tym bardziej skomplikowany kod, dlatego niech poziom kompa będzie łatwy. Czy w związku z tym dużo będzie musiał się zmienić mój kod, ten co teraz mam napisany?
PS. Jak już napisałem na początku, większość kodu mam napisanego. Kod ma kilka funkcji, rzecz jasna, ale nie ma struktur, klas itp. Chcę, żeby program zawierał takie rzeczy jak: kapsułkowanie, dziedziczenie, szablony funkcji/klas, polimorfizm. No, może nie wszystkie, ale chociaż trzy z nich. I teraz pytanie jak wyżej, czy dużo będę musiał nazmieniać w moim obecnym kodzie, żeby te rzeczy zastosować?
Ostatnio zmieniony 31 sie 2013, o 08:31 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
-
- Użytkownik
- Posty: 1588
- Rejestracja: 16 maja 2013, o 17:56
- Płeć: Mężczyzna
- Lokalizacja: Trójmiasto
- Podziękował: 11 razy
- Pomógł: 245 razy
[Algorytmy][C++] Warcaby czlowiek-komputer
jeśli używasz funkcji ale nie używasz klas to de facto nie używasz obiektowości tylko stawiasz na programowanie proceduralne. Więc zamiana na obiektowe będzie w sumie polegała na pisaniu od zera.
Co do kodu komputera to proste, po wykonaniu ruchu gracza musisz odpalić funkcję ruchu komputera. Samą jej algorytmikę musisz sam wymyślić. Podstawowy algorytm do warcabów może wyglądać np. tak:
-sprawdź czy możesz zbić graczowi pionek
--jeśli tak, to:
---jeśli jeden to zbij go
---jeśli więcej sprawdź każdy, którą drogą zbijesz najwięcej na raz
----jeśli jest jedna droga z max. liczbą, zbij je
----jeśli jest kilka wybierz taką, żeby ostateczne położenie twojego piona nie umożliwiło zbicia go
-----jeśli to niemożliwe idź losową drogą zbijając piony
--jeśli nie możesz zbić:
---wybierz ruch, po którym twojego piona nie da się zbić (nie podkładaj się)
Co do kodu komputera to proste, po wykonaniu ruchu gracza musisz odpalić funkcję ruchu komputera. Samą jej algorytmikę musisz sam wymyślić. Podstawowy algorytm do warcabów może wyglądać np. tak:
-sprawdź czy możesz zbić graczowi pionek
--jeśli tak, to:
---jeśli jeden to zbij go
---jeśli więcej sprawdź każdy, którą drogą zbijesz najwięcej na raz
----jeśli jest jedna droga z max. liczbą, zbij je
----jeśli jest kilka wybierz taką, żeby ostateczne położenie twojego piona nie umożliwiło zbicia go
-----jeśli to niemożliwe idź losową drogą zbijając piony
--jeśli nie możesz zbić:
---wybierz ruch, po którym twojego piona nie da się zbić (nie podkładaj się)
-
- Użytkownik
- Posty: 20
- Rejestracja: 3 lip 2013, o 18:22
- Płeć: Mężczyzna
- Lokalizacja: Lokalizacja
- Podziękował: 16 razy
[Algorytmy][C++] Warcaby czlowiek-komputer
jeśli chodzi o ruch kompa to może być funkcja rand?? komp losuje z pośród możliwych ruchów jeden ruch i tam się rusza
-
- Użytkownik
- Posty: 20
- Rejestracja: 3 lip 2013, o 18:22
- Płeć: Mężczyzna
- Lokalizacja: Lokalizacja
- Podziękował: 16 razy
[Algorytmy][C++] Warcaby czlowiek-komputer
Gouranga, czytałem Twój post i wolałbym zastosować taki właśnie algorytm, żeby komp trochę myślał, jednak nie miałem na to czasu i tak jak napisał bartek118, w tamtym momencie zależało mi, żeby tylko była opcja grania z kompem, a funkcja rand była najprostsza.
dzięki za odpowiedzi
dzięki za odpowiedzi