Schachgegner Python 

Zurück zur Hauptseite

 


Zurück zur Übersicht

Als ich noch zur Schule ging und ich anfing, mich für kybernetische Maschinen zu begeistern, dämpfte einer meiner Lehrer meinen Optimismus mit den Worten, dass es Unsinn sei, von einer Maschine eine halbwegs intelligente Leistung zu erwarten. Das wäre schon daran zu erkennen, dass es nie eine Maschine geben würde, die brauchbar schachspielen könne. Denn Schach sei der König der Spiele und würde eine Maschine generell überfordern. Damals gab es tatsächlich noch kein solches "Gerät".
Entgegen der oft auftretenden Meinung, dass selbst ein Schachcomputer schliesslich nur die Züge ersinnen könne, die sein Programmierer hineingelegt habe, gibt es inzwischen Schachprogramme, die besser spielen, als ihre Programmierer. Zumal von diesen Programmierern einige selbst garnicht stark spielen können. Sogar dem amtierenden Schachweltmeister wird Paroli geboten.
Nun gut, das machen große Powerkisten. Und solche komplizierten Programme sind Experten vorbehalten.

Nein - weit gefehlt. Es gibt sogar schon Schachprogramme, die zumindestens für den Hausspieler ernsthafte Gegner sein können und die auf einem PC laufen und die auch noch in Python programmiert sind. Das hat nicht nur den Vorteil zu beweisen, was Python für eine schöne und leistungsfähige Sprache ist, sondern es läßt uns auch ein wenig verstehen, wie ein solches Schachprogramm funktioniert. Dass es nämlich nicht alle Züge im Speicher hat, sondern ausführbare Züge generiert und die dann möglicherweise entstehende Stellung bewertet. Und in dieser Bewertungsfunktion liegt die eigentliche Intelligenz. Sie gestattet nämlich dem Programm zu beurteilen, ob das Hergeben der Dame gegen ein Pferd so lohnenswert ist, dass danach eine bessere Stellung entsteht als zuvor, um daraus ein Matt herbeizuführen. Die Oberfläche des Programms auf Basis von Tkinter sieht so aus:

pythonchess


Wie so oft, läuft dieses in pure Python geschriebene Programm bei mir auf Linux und auf Windows. Es ist zu finden auf 

indem man nach dem Stichwort "pychess" sucht.