Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Miniprogramm Bootchess
- - By Ingo Althöfer Date 2015-01-29 19:01
Hallo,
es scheint ein winzig kleines Schachprogramm zu geben
(weniger als 500 Byte gross):
http://talkchess.com/forum/viewtopic.php?topic_view=threads&p=606154&t=55125

Mag mal jemand ein oder zwei Musterpartien des
Programms hier posten?

Ingo Althöfer.
Parent - - By Wolfram Bernhardt Date 2015-01-29 21:06 Edited 2015-01-29 21:19
Hallo!

Ich habe mal eine probiert..

Event:
Ort:
Datum:

Weiss:
Schwarz:

Ergebnis
Board


Dann spiele Bootchess Ke1-f2.
Nach Qf3xf2 beendete es sich.

Insgesamt bin ich nicht so angetan.

Illegale Züge spielt es, Rochade dagegen kennt Bootchess nicht.
Auf Bauernumwandlung in Nicht-Damen kann man sicherlich verzichten als Mini-Programm, aber die Rochade fehlt mir doch sehr..

Viele Grüße,
    Wolfram
Parent - - By Ingo Althöfer Date 2015-01-30 15:20
Lieber Herr Bernhardt,

danke für die präsentierte Partie.
Gehe ich recht in der Annahme, dass Sie
für Schwarz gezogen haben?

Den Schlussfehler liesse sich wie folgt erklären:
Das Programm macht statt einer Minimax-Suche
eine Suche der Tiefe 2, wobei es selbst beide Male
am Zug ist. Dann hätte es mit Ke1-f2 den Damenfang
Kf2xf3 vorbereitet.

Ingo Althöfer.
Parent - By Benno Hartwig Date 2015-01-31 07:26

> eine Suche der Tiefe 2,


Eine Suche der Tiefe 2, wobei es nicht registriert, dass dieser 2. Zug einen König schlägt?
Dann wäre zu befürchten, das auch das blinde Einstellen jeder anderen Figur völlig normal für Bootchess ist.

Ich 'erhoffe', es ist ein Bug, der ggf. korrigiert werden kann.
Und ich hoffe schon, dass hier ein Minimax-basierter Suchbaum durchlaufen wird.
Andernfalls wäre bootchess doch irgendwie kaum ein "Schachprogramm".

Dass das Programm dadurch verwirrt wird, dass es eben noch einen Zug für die Gegenseite zu berechnen hatte ("Schnee von gestern!" ), kann ich mir gar nicht vorstellen. Da gibt es sicher kein Lernen und keine Hashtables, die weiterbenutzt werden könnten.

Benno
Parent - By Wolfram Bernhardt Date 2015-02-01 17:47
Hallo Herr Althöfer,

ja, ich habe hier Schwarz gespielt. Anerds scheint es bei Bootchess auch nicht zu gehen...
Und... so eigenwillig wie Weiss hier spiele ich denn doch nicht

Viele Grüße,
    Wolfram Bernhardt
Parent - - By Peter Martan Date 2015-01-31 05:47 Edited 2015-01-31 05:52
Hallo Herr Professor!

Oscar Toledeo G., der Autor von Nanochess, hat die 487 Bytes noch einmal um 6 unterboten und sagt, sein Programm rechne 3Hz statt nur einem und mache keine illegalen Züge:

http://www.talkchess.com/forum/viewtopic.php?topic_view=threads&p=606532&t=55125&sid=417019928c4b415a33ed5f44bd178cc4

Der Link zu seiner site:

http://nanochess.org/chess6.html

Was ich dort so gelesen habe, ist das Starten allerdings etwas aufwändig, man muss das Programm in den Boot- Sektor laden.
Parent - - By Benno Hartwig Date 2015-01-31 07:31

> ...man muss das Programm in den Boot- Sektor laden.


"To run it you need a 1.44 MB floppy disk and put the 512 byte into the boot sector using an utility like Rawrite, also available as a COM file runable in MS-DOS or Wind*ws command-line"

Wow, auf die Idee muss man erst mal kommen!  
Ich bräuchte wohl auch erst mal wieder einen Rechner mit Floppy-Laufwerk.

Benno
Parent - By Ingo Althöfer Date 2015-01-31 10:53
Hallo Herr Hartwig,

Benno Hartwig schrieb:

Ich bräuchte wohl auch erst mal wieder einen Rechner mit Floppy-Laufwerk.


So geht es mir auch. Habe zwar noch ein Lidl-Notebook von 2003
mit Floppy-Laufwerk. Da muss aber irgendwie Staub drinsitzen.
Ausserdem ist die Minizelle zur Datumsspeicherung wohl leer.

Ingo Althöfer.
Parent - - By Ingo Althöfer Date 2015-01-31 10:51
Lieber Herr Martan,

danke für den Hinweis.

Peter Martan schrieb:

Oscar Toledeo G., der Autor von Nanochess, hat die 487 Bytes noch einmal um
6 unterboten und sagt, sein Programm rechne 3Hz statt nur einem und mache keine illegalen Züge:
<a class='ura' href='http://www.talkchess.com/forum/viewtopic.php?topic_view=threads&p=606532&t=55125&sid=417019928c4b415a33ed5f44bd178cc4'>http://www.talkchess.com/forum/viewtopic.php?topic_view=threads&p=606532&t=55125&sid=417019928c4b415a33ed5f44bd178cc4</a>

Der Link zu seiner site:
<a class='ura' href='http://nanochess.org/chess6.html'>http://nanochess.org/chess6.html</a>


Habe gerade Oscar Toledo angemailt und ihn gebeten, mir
ein paar Musterpartien zu mailen.

Viele Grüsse, Ingo Althöfer.
Parent - - By Wolfram Bernhardt Date 2015-02-01 18:03 Edited 2015-02-01 18:07
Hallo!

Gegen Toledo AtomChess habe ich gerade eine vollständige Partie gespielt.
Diesmal bin ich Weiss.

1. e4 g6 2. d4 f5 3. exf5 gxf5 4. Qh5# 1-0

Das ist kein Fake. Lässt sich sicherlich leicht reproduzieren.
Nach dem letzten Weiss-Zug antwortet AtomChess allerdings nicht mehr...

Dieses Verhalten habe ich so allerdings auch schon bei menschlichen Gegner erlebt

Viele Grüße,
    Wolfram Bernhardt

PS: Mein PGN wird diesmal leider nicht angenommen.
Falls es jemand debuggen kann oder möchte hier trotzdem der entsprechende Abschnitt.

Event:
Ort:
Datum:

Weiss:
Schwarz:

Ergebnis
Board
Parent - - By Olaf Jenkner Date 2015-02-01 19:07
Wie kann das passieren, wenn das Programm drei Halbzüge tief rechnet?
Parent - By Wolfram Bernhardt Date 2015-02-01 20:02
Ich spiele einfach viel zu stark. 

Aber ja, da stimmt irgendwas nicht.
Parent - - By Benno Hartwig Date 2015-02-01 21:24 Edited 2015-02-01 21:29
Ein anständiges Programm prüft, ob ein Zug Schach bietet und dann auch, ob dies ein matt ist.

Aber einfachste Implementierungen geben dem König einen sehr hohen Wert und lassen den Suchbaum mit seinen Schlagzügen einfach machen.
Um zu erkennen, dass ein Zug matt setzt, muss das Programm diesen Zug ausführen und für alle Verteidigungszüge erkennen, dass es einen Zug hat, der den König schlägt.
3 Plys, nur um zu erkennen, dass ich gerade einen matt-Zug habe!
Die vertieften Varianten einer Ruhesuche würde hier übrigens meist nicht helfen, denn diverse verteidigende Züge sind ja vermutlich ruhig.

Benno
Parent - - By Thorsten Czub Date 2015-02-02 03:45
Naja wenn man mehr rom hätte könnte man sowas auch statisch sehen, aber das ist es ja. Gerade
Platz ist ja bei der Forderung möglichst wenig Platz zu beanspruchen nicht vorhanden. Hier sieht man gut das
Wissen und suche sich gegenseitig pushen. Und wenn da kein Wissen ist muss eben die Suche das kompensieren. Aber Suche ist ja jetzt
Auch nur bis Tiefe 3. im Ergebnis dann diese Schwache partieführung.
Parent - - By Klaus Meier Date 2015-02-02 08:44 Edited 2015-02-02 08:50
So viel Energie für so einen Quatsch. Bei diesen Schachprogrammen geht es doch nicht um gutes Schach, sondern um was ganz anderes. So wenig Byts wie möglich verbrauchen. Als junger Student habe ich mal auch ein Schachprogramm auf einen der ersten programmierbaren Taschenrechner TI59 programmiert und einen Mitstudenten dagegen spielen lassen. Das Programm hat sich recht gut geschlagen. Fast wäre es ein Remis geworden. Bis der Student gemerkt hat, das mein Programm einfach nur spiegelsymetrisch antwortet, hat das Programm jedenfalls weit mehr Züge durchgehalten, und scheinbar stärker Schach gespielt, als diese Unsinns-Programme die hier jetzt getestet werden. Mein Schachprogramm bestand damals aus nur sehr wenigen Programmzeilen. und ein Programm nach diesem Prinzip tät die hier vorgestellten Byte-Rekorde ganz sicher nochmal um mindestens den Faktor 2 unterbieten.
K.M.
Parent - - By Mythbuster Date 2015-02-02 10:30
Hm, interessant, daß Du für die Allgemeinheit entscheidest, was Quatsch ist ... denn eine Relativierung, daß es für Dich Quatsch ist, hast Du nicht nötig.

Davon abgesehen: Wenn es dem Autor Spaß macht, solche Dinge zu programmieren, dann hat es schon einen Wert ... zumindest für den Autor.

Und im Zweifel ist sein Hobby weit weniger Quatsch und für den Verstand anspruchsvoller, als beliebige PC Programme 123.567 Partien spielen zu lassen, nur um sich danach daran hochzuziehen, welches Programm unter welchen Bedingungen vielleicht 2,1 Elo Pünktchen mehr haben könnte ... 
Parent - - By Klaus Meier Date 2015-02-02 12:20 Edited 2015-02-02 12:25
Meine Güte, wegen mir kann sich jeder Mathematik Gelehrte doch gern mit Scherz-Schachprogrammen beschäftigen.
Vielleicht lässt sich eine fundierte Theorie entwickeln, welche die untere Schranke angibt,
Kmin KiloBytes eines Minimal-Schachprogramms. Vorschlag : Für die korrekte Beweisführung wird heute ein Ingo Althöfer Preis ausgeschrieben.
Ganz ehrlich meine Meinung dazu : Die Entwicklung einer algebraischen Formel, welche z.B. aus einer Schach-Position oder einer Partie-Zugfolge einen sinnvollen Zug errechnen kann. (Parameteroptimierung) Halte ich für ergiebiger.
Beispiel Ein Zug wird als Zahlenpaar angegeben Z=(x;y) x = 1...8 y=1..8 (die Brett Koordinaten)
Nun wird ein algebraisches Modell M((x01;y01) ,(x02;y02)..., (x32;y32))  entwickelt welche eine Schachposition auf einen sinnvollen Zug Z abbildet. M -->  Z
(x01,y01)...(x32,y32) geben die Koordinaten der 32 Schach Figuren auf dem Brett an.

z.B. ein erster Ansatz :
x=(A01*x01+A02*x02+...+A32*x32+B01*y01+B02*y02+...+B32*y32) MOD 8
y=(C01*x01+C02*x02+...+C32*x32+D01*y01+D02*y02+...+D32*y32) MOD 8

A01...A32
B01...B32
C01...C32
D01...D32
seien 128 Parameter, welche es zu optimieren gilt. 
Ein Programm, welches heuristisch eine Parameteroptimierung errechnet , ist möglich zu erstellen.
Auf schnellen Computern vielleicht 1 Jahr Rechenzeit (grob geschätzt) , bis es eine Parameterkombination mit mehr als 50% Treffern gefunden hat.

K.M.
Parent - By Thorsten Czub Date 2015-02-02 19:34
Mephisto 1: 6 kb rom 1 kb RAM 1252
Boris: 2.5 kb rom 256 Byte ram 1267 (na wenn das mal stimmt), kein pb, keine richtige Zeiteinteilung

Nur mal so als Vergleich. Und die spielen sogar sinnvolle Züge.
Parent - - By Reinhard Scharnagl Date 2015-02-02 19:52
Wenn ein so kleines und leistungsschwaches Programm eine so große
Resonanz erhält, dann frage ich mich schon (wenn auch nur kurz), ob
ich an meiner neuen 10x8-Engine überhaupt weiterarbeiten mag.
Aber so ist es halt: die Geschmäcker sind höchst unterschiedlich ...
Parent - - By Ludwig Buergin Date 2015-02-02 21:35
Hallo Reinhard

OK ich verstehe Dich.Du bist Engine-Prgrammierer.Ein solches Programm ist  leicht verständlich und macht uns deshalb auch so viel Spaß.

Gruß Ludwig
Parent - By Benno Hartwig Date 2015-02-03 08:06

> Ein solches Programm ist  leicht verständlich


Meinst du?
Assembler-Programmierung ist heute ein nicht mehr weit verbreitetes Hobby, und dort wird sicher byte-feilschend getrickst worden sein, was das Zeug hält.
Benno
Parent - - By Benno Hartwig Date 2015-02-03 08:00 Edited 2015-02-03 08:13
Es steht jedem frei, nicht darüber zu staunen, wie es eventuell gelingt ein Schachprogramm zu schreiben, welches in 487 Byte die Schachregeln unterbringt (auch wenn vielleicht en passant oder Unterverwandlungen ausgespart wurden), das wenigstens eine kleine Strategie für den Gewinnversuch etabliert und das dazu eine vielleicht annähernd ausreichende Bedienoberfläche bietet. Dieses Posting hier umfasst genau 487 Zeichen. Mir fällt schon sehr schwer, in so wenig Raum wirklich was unterzubringen. Darum verfolge ich solch eine Meldung durchaus mit einem gewissen S
Parent - - By Klaus Meier Date 2015-02-03 09:40
Na wenn diese mini Programme wirklich Schach beherrschen täten. Aber ohne e.P. und ohne Rochade nur mit Schwarz spielen können Unterverwandlungsmöglichkeit fehlt... Ohh Je..
Das ist doch wie eine schwerwiegende Beleidigung aller Schachcomputer Freunde zu sehen. So ein Scherz-Schach-Programm im WEB sollte als Virus erkannt und auch unbedingt entsprechend behandelt werden !
 

Grüße
K.M.
Parent - - By Mythbuster Date 2015-02-03 10:29
Während meines Studiums war es üblich, daß Aufgabenstellungen so konzipiert waren, ein Programm mit möglichst wenig Code zu schreiben. Insofern ist es für Programmierer durchaus sowohl Herausforderung als auch Wettbewerb, effizient zu schreiben.

Ich verstehe Dein Gemaule nicht. Wirst Du gezwungen, dieses Stückchen Software zu kaufen oder auch nur zu nutzen? Weder noch ... so what. Da hat jemand Spaß daran, so ein kleines Teil zu programmieren und einige Menschen haben Spaß daran, sich damit zu beschäftigen. Beides fordert (Dank aktiver Beschäftigung) den Verstand und alles was Spaß macht, sollte nicht hinterfragt werden, wenn es niemand anderen schadet.

Aber statt sich einfach zu erfreuen (oder im Zweifel zu ignorieren), wird noch draufgeschlagen ... typisch deutsch ... 
Parent - - By Reinhard Scharnagl Date 2015-02-03 11:45
Der Sinn einer Aufgabenstellung sollte erhalten bleiben.

Ein Programm, das eine Partie sofort aufgibt, wäre sicher
noch weit kürzer und entspräche den Schachregeln, und es
könnte obendrein auch noch mit Weiß und Schwarz spielen ...
Parent - - By Ingo Althöfer Date 2015-02-03 12:43
Hallo Herr Scharnagl,

Reinhard Scharnagl schrieb:

... und es könnte obendrein auch noch mit Weiß und Schwarz spielen ...


AtomChess von Toledo kann eigentlich nur mit Schwarz spielen.
Man kann das Programm aber mit einem einfachen Trick dazu bringen,
die Partie zu eröffnen: einfach als ersten Zug
a3a4
eingeben. Dann zieht das Programm diesen "leeren Zug" und antwortet
(mit g7-g6 oder h7-h5 oder ...).

Interessieren täte mich, ob AtomChess und/oder Bootchess mit Pattstellungen
umgehen können.

**************************************
Toledo AtomChess kann man übrigens von folgender Webseite herunterladen:
http://nanochess.org/chess6.html
Nach dem Auspacken findet man auch eine Datei mit Endung .com
Dahinter verbirgt sich das Programm in einer Version,
die z.B. direkt unter Windows XP läuft.

In diesem Modus habe ich AtomChess auch schon gegen sich selbst spielen lassen:
Unter Windows XP das Programm zweimal in verschiedenen Fenstern geöffnet.
Dann im ersten Fenster a3a4 eingegeben, und los geht es.
Man muss nur aufpassen, dass man beim Übertragen nicht in der Notation
durcheinander kommt.

Fazit der zwei gemachten Partien: AtomChess spielt gegen sich selbst
fast nur Bauernzüge. Der Fortschritt der Partien wirkt etwas wie
Philidor unter Valium.

Ingo Althöfer.
Parent - - By Benno Hartwig Date 2015-02-03 16:18
Man möchte ja ein Programm, welches zumindest sehr einfaches "Schach" spielt.
Was wäre da (so aus dem Bauch heraus) zu fordern? Vielleicht:

- keine illegalen Züge
- Zugauswahl aus allen(!) legalen Zügen (wobei ich die Nichtkenntnis von en passant und Unterverwandlung in diesem Rahmen für entschuldbar halte)
- Akzeptanz alle legalen Gegnerzüge (en passant und Unterverwandlung entsprechend)
- direktes Mattsetzen soll erkannt und ausgeführt werden
- direktes Mattsetzen durch den Gegner sollte vermieden werden, sofern dies denn möglich ist.
- einfache Ruhesuche (ob ein Schlagabtausch zu Materialgewinn oder -verlust führt sollte erkannt werden,
   und gern auch, ob der ggf. ruhige Enginezug dem Gegner einen derartigen Materialgewinn ermöglicht.)
- zumindest ein sehr rudimentäres Bestreben, positionell "gute" Stellungen zu erreichen
- (anderes?)
Wäre zuviel verlangt, dass die Engine (auf hoher Spielstufe ) auch ein Matt in 2 erkennt und ausführt?

Benno
Parent - - By Michael Scheidl Date 2015-02-04 13:29
Zwar kann ich es jetzt nicht beschwören, aber ich denke pikoSzachy 4.0 (9,5 KByte Executable) erfüllt all diese Anforderungen,

http://www.kalisz.mm.pl/~pic/nanochess/

und ist bei CCRL-Blitz sogar etwas höher gelistet als einige relativ bekannte Oldies wie LambChop, Quark oder Nejmet. Dabei war das Ziel aber eine möglichst kleine Programmdatei, nicht kleiner Quellcode. Für letzteres wiederum kommen Toledo Nanochess oder microMax in Betracht.
Parent - By Benno Hartwig Date 2015-02-04 13:54
Wow:
pikoSzachy 4.0
"The size of program is only 9.5 KB and it's playing strength is about 2500 ELO."

Wow! 2500 (oder von mir aus auch etwas weniger) ist eine Hausnummer, die vor einigen Jahren noch mehr als ehrfürchtiges Staunen hervorgerufen hätte. Ein Progrämmchen dieser Kleinheit würde vermutlich auch in billigste Schachcomputer hineinpassen.
OK, der Prozessor dort würde es vermutlich vergleichsweise gemütlich angehen lassen.

Benno
Parent - By Reinhard Scharnagl Date 2015-02-08 22:43
Natürlich hat jedes Miniatur-Schachprogramm seinen eigenen Reiz.
Aber es sollte eine gewisse Vergleichbarkeit nachgewiesen werden.
Das kann z.B. dadurch geschehen, indem es seine Korrektheit
über ein aufgeschlüsseltes Perft Programm nachweist.

Mich hat es einige Mühe gekostet, bis mein aktuell entstehendes
Programm etwa zu folgender korrekter Statistik in der Lage war:

Ply       Moves        [x]    [ep]       [+]   [++] Prom     Cstl     Sec
1:          20          0       0         0      0    0        0    0.00
2:         400          0       0         0      0    0        0    0.00
3:        8902         34       0        12      0    0        0    0.00
4:      197281       1576       0       469      0    0        0    0.00
5:     4865609      82719     258     27351      0    0        0    0.07
6:   119060324    2812008    5248    809099     46    0        0    1.77
7:  3195901860  108329926  319617  33103848   1628    0   883453   47.95
8: 84998978956 3523740106 7187977 968981593 147215    0 23605205 1299.89
Up Topic Hauptforen / CSS-Forum / Miniprogramm Bootchess

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill