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
wie einen schach programm am besten implementieren
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.
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.
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
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
Hier gabs auch das Thema. Habs noch nicht gelesen werde es aber tun die idee ist echt nice ich werde mic hdamit mal befassen
pass dan am besten auf, dass du gleich die ofiziele brett-numerierung nimstdie idee ist echt nice ich werde mic hdamit mal befassen
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