Schachburg-Archiv: Benutzerthema „Was ist Eure Meinung zu meinem Schachprogramm?“

schachburg.de

Beitrag von aladinn

Hallo Schachfreunde,ich habe ein kleines Schachprogramm geschrieben. In den Augen eines Anfängers spielt es schon sehr gut. Ganz anders sieht es aus, Wenn mein Programm gegen ein Profi-Programm spielt. Da ich es in Bezug auf Anwenderfreundlichkeit und Spielstärke noch verbessern möchte, wäre es Klasse, wenn Ihr mir Eure Meinung dazu sagt. Es ist Freeware, portabel (muss nicht installiert werden) und hat ein eigenes Zuhause: [Hier befand sich ein Link auf die Seite "www.freeware-schach.html". Der Link wurde vom Benutzer mit dem Titel "www.freeware-schach.de" versehen. Aus urheberrechtlichen Gründen ist es möglicherweise erforderlich, diesen Hinweis beizubehalten, da manche Benutzer die Quelle ihrer Zitate von anderen Internetseiten so gekennzeichnet haben. Dieser Hinweis wurde automatisch an Stelle des früheren Links platziert. Falls der Link unangemessen oder ohnehin unerreichbar geworden ist, kann die im Impressum genannte Adresse mit einer Bitte um Entfernung kontaktiert werden.]GrussRR

Beitrag von ToBeFree

...ich habe einen Bug gefunden. :D[IMG][Hier befand sich ein Link auf die Seite "https://i.imgur.com/i3djLWg.png". Der Link wurde vom Benutzer mit dem Titel "https://i.imgur.com/i3djLWg.png" versehen. Aus urheberrechtlichen Gründen ist es möglicherweise erforderlich, diesen Hinweis beizubehalten, da manche Benutzer die Quelle ihrer Zitate von anderen Internetseiten so gekennzeichnet haben. Dieser Hinweis wurde automatisch an Stelle des früheren Links platziert. Falls der Link unangemessen oder ohnehin unerreichbar geworden ist, kann die im Impressum genannte Adresse mit einer Bitte um Entfernung kontaktiert werden.][/IMG]Rekonstruktion: Spiel starten, Figuren aufstellen, alle weißen Figuren außer dem König entfernen, alle schwarzen Figuren bis auf z.B. 3 Bauern entfernen, dann alle Bauern bis auf einen einzigen schlagen und diesen durchlaufen lassen. Ergebnis: Remis! :eek:

Beitrag von yury

Hallo und willkommen auf der Burg!Erst mal herzlichen Glückwunsch zu Deinem Schachprogramm. Die GUI gefällt mir gut. Falls Du Lust hast, daran weiterzuarbeiten, hätte ich noch ein paar Vorschläge für Features, die Du einbauen könntest:- Ich fände es gut, mehr Analyseinformationen wie Hauptvariante, Bewertung der Stellung etc. zu haben.- Dementsprechend könnte man auch eine Funktion "Stellung analysieren" hinzufügen, bei der die Tiefe nicht beschränkt ist und das Programm erst aufhört zu rechnen, wenn ich es stoppe.- Das Aufstellen der Figuren finde ich persönlich etwas ungewohnt. Ich würde lieber zuerst auf die Figur klicken und dann auf das Feld, was es auch ermöglicht, schnell mehrere Figuren gleichen Typs nacheinander aufzustellen.- Es wäre cool, wenn man die Partie in normaler Notation speichern könnte. Dann muss man sie nicht immer von Hand in einem anderen Schachprogramm eingeben.- Ein Fernziel wäre vielleicht, ein Protokoll wie [URL="http://de.wikipedia.org/wiki/Universal_Chess_Interface"]UCI[/URL] zu implementieren und damit das Laden von anderen Schachengines in die GUI zu ermöglichen.Die Stufe "schwer" der Engine konnte ich leider nicht testen, weil die Performance auf meinem Computer nicht so gut war, was aber zu einem guten Teil auch an Wine und an meinem PC liegen wird. In der Stufe "mittel" habe ich eine Partie gespielt. Ich poste die Partie einfach mal, weil es erfahrungsgemäß praktisch für die Verbesserung des Programms ist, möglichst viele gespielte Partien zu bekommen.[Event "?"][Site "?"][Date "?"][Round "?"][White "yury"][Black "Freeware Schach"][Result "1-0"][ECO "E24"][Opening "Nimzo-Indisch"][Variation "Sämisch, 5...b6"][TimeControl "300"][Termination "unterminated"][PlyCount "87"][WhiteType "human"][BlackType "human"]1. d4 e6 2. c4 d5 3. Nc3 dxc4 4. e4 Nc6 5. Nf3 e5 6. dxe5 Be6 7. Be3 g6 8.Qa4 Bb4 9. Rd1 Qe7 10. a3 Bxc3+ 11. bxc3 Bd7 12. Qxc4 Nxe5 13. Nxe5 Qxe514. Qd3 Nf6 15. Bd4 Qf4 16. Bxf6 Qxf6 17. Qxd7+ Kf8 18. Qd4 Kg7 19. Qxf6+Kxf6 20. Rd7 Rae8 21. Bd3 Re7 22. Rxe7 Kxe7 23. Ke2 h5 24. Rb1 b6 25. Bb5h4 26. Rd1 Rd8 27. Rxd8 Kxd8 28. Kf3 f5 29. exf5 gxf5 30. Kf4 a5 31. Kxf5c6 32. Bxc6 Ke7 33. f4 Kd8 34. Ke6 Kc7 35. f5 Kxc6 36. f6 h3 37. gxh3 Kb538. f7 Ka6 39. f8=Q Kb5 40. Qf5+ Ka6 41. Kd6 Kb7 42. Qd7+ Kb8 43. Kc6 Ka844. Qb7# *Der Horizont-Effekt macht sich an einigen Stellen bemerkbar (z.B. 14...Sf6) - hast Du eine Ruhesuche, also prüfst Du am Ende jeder Variante alle Schlagmöglichkeiten?Ich bin nicht so sicher, ob es eine gute Idee ist, an der Wurzel einfach Züge rauszuwerfen, die nicht so gut aussehen. Es gibt ja schon öfters Kombinationen, bei denen am Anfang etwas geopfert wird - die willst Du ja nicht komplett übersehen. Du könntest stattdessen z.B. für diese Züge die Tiefe reduzieren. Wenn Du mutig bist, kannst Du auch innerhalb des Suchbaums Züge überspringen, aber an der Wurzel ist das schon sehr riskant, würde ich sagen...

Beitrag von aladinn

Hallo ToBeFree,vielen Dank für Deinen Hinweis. Es ist die Frage, ob das ein Bug ist. Ist es nicht so, dass ein Spiel mit Remis endet, wenn beide Parteien den Gegner nicht matt setzen können? Kann ich nur mit einer Dame den gegnerischen König matt setzen? Ich wüsste nicht wie.GrussRR

Beitrag von ToBeFree

[QUOTE=aladinn;7198]Es ist die Frage, ob das ein Bug ist.[/QUOTE]Ja. ;)Es ist relativ leicht möglich, einen gegnerischen König mit einer Dame mattzusetzen - siehe auch [URL="http://de.wikipedia.org/wiki/Elementare_Mattführung"]den Wikipedia-Artikel dazu[/URL].

Beitrag von aladinn

Hallo ToBeFree,oops, das ging aber schnell.Ich hatte mir vorhin die Partie von Yuri angeschaut. Er hat es geschafft, nur mit Dame und König den Gegner matt zu setzen. Ich gebe mich geschlagen ;)Auch Dein Link zu Wiki ist interessant. Es reicht sogar nur ein Turm!In der nächsten Version ist der Bug behoben.GrussRR

Beitrag von aladinn

Hallo Yury,vielen Dank für Deine ausführliche Analyse.Analyseinformationen bekommst Du ganz einfach: Freeware Schach erstellt eine Konfigurationsdatei: "Schach-Konfig.cfg". Diese kannst Du mit einem einfachen Editor öffnen. Ändere hinter "HTML-Bewertungstabelle" den Text von "Nein" auf "Ja". Nun starte Freeware Schach erneut. Nach jedem Zug gibt Dir das Programm eine Bewertungstabelle im HTML-Format aus: "HTML-Bewertungstabelle.html". Diese kannst Du mit Deinem Internet-Browser öffnen.Das Programm muss im vorhinein wissen, bis zu welcher maximalen Tiefe es rechnen soll. Es arbeitet rekursiv bis die eingestellte Tiefe erreicht ist. Es wäre denkbar noch die Schwierigkeit "sehr schwer" einzubauen. Dann rechnet es noch eine Tiefe weiter. Das macht dann aber keinen Spaß mehr.Zum Figuren aufstellen: Meinst Du jetzt nur die Figuren auf dem Brett zu klicken? Also wie man diese beim "normalen" Spiel setzt? Da habe ich auch schon drüber nachgedacht ...Das UCI-Protokoll ist ein guter Hinweis! Ich habe schon erfolglos danach gegoogled. Das werde ich sicherlich später mal einbauen.Mit "schwer" habe ich noch nie gespielt, das dauert einfach zu lange. "schwer" nehme ich nur, wenn ich mal einen einzelnen Zug analysieren möchte. Dann ist aber die Zugqualität meistens besser.Danke für Deine gespielte Partie. Viele Begriffe die Du verwendest sagen mir nicht viel: "Horizont-Effekt, Ruhesuche, Variante". Ich fand das jetzt nicht so falsch das schwarze Pferd zu setzen. Letztenlich gab das nur ein Austausch Perd mit Läufer. Ich muss dazu sagen, dass ich persönlich kein guter Schachspieler bin. Das schlägt sich dann auch in meinem Programm nieder. ;)Zu Deinem letzten Punkt: An der Wurzel werden nicht einfach Züge herausgeworfen: Zuerst wird nur bis Tiefe 4 ohne Optimierung gerechnet, um sich einen Überblick zu verschaffen, eine Vorsortierung vorzunehmen und die Zeit zu messen. Das geht schnell und das Ergebnis entspricht der Schwierigkeit "Leicht". Im zweiten Schritt wird nochmal gerechnet, aber diesmal in höhere Tiefen. Erst jetzt werden "sinnlose" Züge wegoptimiert.

Beitrag von ToBeFree

Mit "Ruhesuche" ist in dem Fall gemeint, dass die Schachengine am Ende einer Variante nicht einfach eine Bewertung abgibt, sondern noch nachsieht, ob es Schlagmöglichkeiten für den Gegner gibt. Das ist z.B. dann sehr hilfreich, wenn eine Dame eine andere schlägt. Wenn die Engine nun an dieser Stelle aufhört, zu rechnen, kommt als Bewertung heraus, dass der Gegner "eine Dame mehr" hat, was aber Blödsinn ist, da eben diese Dame bereits im nächsten Zug weg ist. ;)Eine Variante ist eine Folge von Zügen. 1. e4 e5 2. Lc4 Sf6 ist beispielsweise eine Variante. Eine Schachengine bzw. ein Schachprogramm rechnet genau diese Varianten durch.Außerdem würde ich noch vorschlagen, das Umwandeln von Bauern auf der letzten Reihe auch in andere Figuren zu ermöglichen. Bisher wird automatisch in eine Dame umgewandelt - es gibt aber auch Stellungen, in denen es durchaus Sinn macht, eine andere Figur zu wählen, da sonst z.B. die Partie Remis endet und sonst gewonnen wäre.^^

Beitrag von Kiffing

Hier sind ein paar Beispiele zur Unterverwandlung: [url]http://de.wikipedia.org/wiki/Unterverwandlung[/url]

Beitrag von yury

Eine Ruhesuche heißt, dass Du am Ende jeder Variante noch alle Schlag-, Umwandlungs- und eventuell schachgebende Züge beider Seiten überprüfst. Ansonsten bekommst Du z.B. auf Tiefe 7 in der Ausgangsstellung Varianten wie 1.e4 e5 2.Sf3 Sc6 3.Lb5 a6 4.Lxc6, und nun glaubt das Programm, dass Weiß einen Springer mehr hat und gibt dementsprechend -3 (aus Sicht von Schwarz) zurück. Dabei könnte er mit 4...dxc6 das Material zurückgewinnen. Indem Du alle Schlagzüge berechnest, verhinderst Du solche Probleme. Vielleicht helfen Dir auch [URL="http://en.wikipedia.org/wiki/Quiescence_search"]diese[/URL] [URL="http://chessprogramming.wikispaces.com/Quiescence+Search"]Links[/URL] weiter.

Beitrag von aladinn

Hallo zusammen,vielen Dank für Eure Anmerkungen.Jetzt habe ich gelernt was eine "Ruhesuche" ist. Soetwas ist jedoch schon in meinem Programm enthalten. Ich habe es "Schlagabtausch" genannt. Anfangs war es nicht drin und habe mich gewundert, warum das Programm manchmal so dämliche Züge macht.;)Die Bauernumwandlung in eine andere Figur ausser Dame steht schon auf meiner ToDo Liste. Damals habe ich mich gefragt, macht es Sinn eine andere Figur zu wählen?. Die Dame ist doch die beste Figur. Aber vielleicht kann man nur mit einem Pferd den Gegner auf Anhieb matt setzen.GrussRR