[Algorytmy rozgrywek] Szachy

0

Czy zna ktoś jakiś gotowy algorytm rozgrywki w szachy (zaimplementowany w Delphi, albo opisowy)? Wiem, że napisanie czegoś takiego nie jest łatwą sprawą, więc nie pytam się jak to napisać, tylko czy zna ktoś coś takiego gotowego. Mam na myśli coś, co za "gracza komputerowego" podejmowałoby decyzję na temat kolejnego ruchu na podstawie sytuacji na planszy (sposób przedstawiania dowolny - nie podjąłem jeszcze decyzji, jak przedstawiać sytuację).
Z góry Thx za odpowiedzi (wliczając wskazówki, gdzie tego ew. szukać poza 4p).
[dopisane]
Nie chodzi mi o jakieś mistrzowskie algorytmy, tylko o coś stosunkowo prostego ale i sensownego zarazem.
P.S. Czy nikt nie odwiedza tego działu?

0

Cosik mniej więcej na ten temat było - nie wiem, czy dokładnie o to chodzi, bo nie czytałem całości:
http://4programmers.net/Forum/viewtopic.html?id=42595

0

Nie o to chodzi... Czytałem ten topic, ale po pierwsze nie ma tam rozwiązania tego problemu (Jedyne, co jest tam konkretnego napisane, to że jest to skomplikowany temat), a po drugie to trochę co innego. Chociaż może dałoby się to przerobić na to co chcę (żeby gracz oparty na AI wykonał najwartościowszy z możliwych ruchów)

0

warto byłoby samemu napisać taki algorytm...
jest to kupa pracy... ale wszystko jest do zrobienia...
komp musiałby przewidywać każdy możliwy ruch, a później każdy możliwy wynikający z każdego wykonanego wcześniej itd :d aż do zakończenia (w pamięci a nie rzeczywiście!) partii, wówczas komp wybierałby najkorzystniejszy ruch... pozostaje tylko problem... co zrobić żeby komputer nie obliczał jednego ruchu przez 2 tygodnie :d .
z tego typu algorytmami >teoretycznie< nie da się wygrać! po prostu nie można, bo komputer przewiduje po kolei KAŻDĄ możliwą sytuację na planszy! prawdziwe algorytmy w programach szachowych nie opierają się na tej zasadzie... bo jest zbyt wolna. Obliczyłem że pierwszy ruch, to przewidywanie 20 ruchów, ruch przeciwnika - 20x20=400 możliwości! trzeci ruch na planszy to już... 400xufffff.... nawet nie wyobrażam sobie co będzie dalej!!! [stuk]

0

Nom, ale takie program gralby dobrze juz przewidujac 3 najblizsze ruchy. No chyba ze ma grac z mistrzem swiata :)
A poza tym, to chyba troche wiecej tych ruchow wyjdze, bo przeciez za ruch nalezy uznac kazdy z mozliwych ruchow kazdej z figur.

0

Gdybym miał przewidywać każdy ruch, to trwałoby to miesiącami... Na początku można wykonać 20 ruchów, ale potem te możliwości drastycznie rosną! Po ryszeniu się np. skoczkiem z C1 na D3 ma on już 5 możliwości ruchu (a nie dwie) i dodatkowo umożliwia wykonanie ruchu wieżą. A za to przewidywanie trzech najbliższych ruchów, to wcale nie najlepszy pomysł - komputer nie potrafiłby nawet zacząć, bo nie wiedziałby, który ruch jest najlepszy (w każdej sytuacji pozostaje każdemu z graczy tyle samo bierek (pionów i figur). Poza tym czasem warto jest poświęcić jakąś figurę dla uzyskania lepszej pozycji. Tak czy inaczej potrzebny byłby jaakiś algorytm "wartościujący" ruchy, i wybierający ten najlepszy. Ale do tego potrzeba bardzo dobrze znać się na szachach, a ja znam zasady, potrafię wykonać nie najgłupszy ruch, ale w tym celu muszę myśleć... Za to moc obliczeniowa komputera nie pomoże, gdy ma się zmierzyć z myślącym abstrakcyjnie człowiekiem. Wiem, że niektóre algorytmy opierają się na znanych zagraniach dobrych szachistów, ale nie mogę podać mu jak ma się ruszać przy konkretnej sytuacji na planszy...

0

A nie wiecie czy nie daloby sie zastosowac tutaj sieci neuronowej ?

0

Jeżeli napiszesz sieć neuronową obsługującą 16x16 pól, analizującą możliwe ruchy (różńa dla różnych figur), przewidującą najbliższe ruchy i opracowywującą najlepsze możliwe posunięcie, a następnie ją nauczysz (milony-miliardy kroków)... to uznam cię na geniusza...

0

Adamie, ostatnio natknalem sie na jakas wersje Turbo Pascala(wiem ze to nie Delphi no ale...blisko;) w ktorej byl demonstracyjny program grajacy w szachy, i oczywiscie zawieral on algorytm liczenia pozycji.

Byc moze w kazdej oryginalnej wersji TP znajduje sie ten program, jesli nie to daj znac, moge Ci go nagrac.

Pozdrawiam,

Wodzu

0

Tu znajdziesz chyba wszystko:
http://www.xs4all.nl/~verhelst/chess/programming.html

Ogromnym źródłem wiedzy na ten temat mogą być też grupy dyskusyjne: rec.games.chess.* (jest ich chyba z pięć)

Tu coś ogólnie o grach (o szachach także):
http://www.gamedev.net/
(kiedyś był tak jakiś prosty tutorial)

Pozdrawiam serdecznie.

0

sorki za wygrzebywanie starych tematów ale znalazłem przez przypadek coś o szachach po polsku więc zamieszczam tu może się komu przyda a drugi raz bym już na to nie trafił [hurra]

http://armageddon.szach.pl/joanna.pdf

1 użytkowników online, w tym zalogowanych: 0, gości: 1