wie einen schach programm am besten implementieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

wie einen schach programm am besten implementieren

Beitragvon Costi » Donnerstag 4. Januar 2007, 21:44

ich spiel(te) gerne schach, und wuerde gerne nen schach programm schrieben,
soll wirklich nichts grossartiges sein, btzw ich erwarte nichteinmal das es richtig funktioniert, ich will mich nur damit auseinander setzen, wie man sowas ueberhaubt implementiert, hab mir das so gedacht:
es gibt etwas was intuitiv wahrscheinlich gute zuege angibt, nun wird rekursiv oder so (ich weis nicht, bei so komplexen sachen ist glaub ich rekursion nicht so dolle weil es zu unflexibel ist (finde ich)) je nach geduld und hardware austatung des menschlichen-spielers einfach alle moeglichkeiten bis n zuegen durchgesoielt und ein andere intuitions-funktion sagt mir welche der eriechten spielvarianten am guenstigesten ist und zieht dann dementsprechend. fuer die eroefnung greif ich dan auf eiene datenbank oder so

ich hab mal vor langer zeit mir einen erstaunlich kurzen perl-schach script angekugt, der war aber in perl <ironie>da kug ich mir doch lieber gleich den gezipten blue gene bytecode in altschienesich codeiert an </ironie>


wie auch immer, wie koennte mas sowas eurer meinung nach implemenieren?


danke
cp != mv
BlackJack

Beitragvon BlackJack » Donnerstag 4. Januar 2007, 22:30

Eine relative einfache "brute force" Methode ist eine Funktion die eine Spielsituation bewertet, also aus einer Situation eine Zahl berechnet. Also zum Beispiel nach Regeln wie: jede bedrohte Figur gibt Minuspunkte je nachdem wie wertvoll die Figur ist. Und Pluspunkte gibt es für gedeckte Figuren und solche die Figuren vom Gegner bedrohen, auch wieder je nachdem wie wertvoll die bedrohte Figur ist und wie gut sie gedeckt ist.

Dann kannst Du bis zu einer gewissen Tiefe alle möglichen Züge und Gegenzüge durchspielen. Da würde sich eine rekursive Lösung allerdings irgendwie anbieten. Dann kannst Du den Zug machen der potentiell zu einer guten Situation führt.

Habe aber keine Ahnung wie effektiv das bei Schach ist und wie man die Situation am besten bewertet, also wieviele Plus- und Minuspunkte man verteilen sollte.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Beitragvon Sr4l » Donnerstag 4. Januar 2007, 23:04

http://www.python-forum.de/topic-8258.html

Hier gabs auch das Thema. Habs noch nicht gelesen werde es aber tun die idee ist echt nice ich werde mic hdamit mal befassen ;-)
Costi
User
Beiträge: 544
Registriert: Donnerstag 17. August 2006, 14:21

Beitragvon Costi » Freitag 5. Januar 2007, 00:14

die idee ist echt nice ich werde mic hdamit mal befassen

pass dan am besten auf, dass du gleich die ofiziele brett-numerierung nimst

und als brett reicht wahrscheinlich sowas aenliches wie ich es hier: http://www.python-forum.de/topic-7955.html mal gemacht habe aus

auf den ersten blick einer partie kann man ohne viel zu ueberliegen erstaunlich genau sagen, wer am gewinnen ist ohne sich ein taschenrechner zu nehmen und die bedrohten figuren zusammenzuzaelen, aber diese intuition logisch zu erfassen scheint mir anderseits sehr schwierig


mal sehen
cp != mv

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]