Retrocomputing 69 Themen, 755 Beiträge

News: Bootchess für alle Plattformen

Rekord: Bootfähiges Schachprogramm ist nur 487 Byte groß

Michael Nickles / 8 Antworten / Baumansicht Nickles
Hier läuft Bootchess im Emulator "DOSbox". (Foto: Red Sector Inc.)

Gerade mal 487 Bytes, weniger als ein halbes Kilobyte ist das kleinste Schachprogramm der Welt, das jetzt vom Programmierteam Red Sector Inc. veröffentlicht wurde. Verstärkt wird der Weltrekord noch dadurch, dass Bootchess sogar direkt im Bootsektor eines Datenträgers installiert werden kann.

Bisheriger Rekordhalter war das Schachprogramm 1K TX Chess, das 1982 für den Sinclair ZX81 Heimcomputer in einem Magazin als Listing veröffentlicht wurde. Konkret war 1K ZX Chess nur 672 Bytes groß und aus einer Not heraus gebastelt worden: der ZX81 hatte in der erschwinglichen Basisvariante nur 1 KByte Arbeitsspeicher, der anteilig auch noch für die Bildschirmdarstellung geopfert werden musste.

Bootchess teilt sich mit dem Rekordvorgänger natürlich die Tatsache, dass die "grafische" Darstellung des Schachbretts auf das Allernotwendigste reduziert ist.

Bootchess kann als ZIP-Archiv runtergeladen werden. Im Archiv befinden sich das Programm, Sourcecode und Dokumentation. Zum Ausprobieren unter Windows wird die Verknüpfung "BootChess_Win7-32b" gestartet.

Michael Nickles meint:

Respekt, irre Leistung! Die Jungs sollten vielleicht mal an den Speicherfresser Skype ran - die bringen den Messenger im Wartezustand bestimmt von seinen rund 127  MByte runter auf knapp 100 Byte.

Über 30 Jahre hat es gedauert um den 672 Byte Rekord vom ZX81 Schachprogramm zu knacken. Es ist also davon auszugehen, dass Bootchess eine Weile auf dem Thron verbleiben wird. Oder vielleicht nicht?

Inzwischen gibt es durchaus Diskussionen, ab wann ein Schachprogramm eigentlich als Schachprogramm gelten darf. Tatsache ist, dass Bootchess die Regelfeinheiten nicht bis ins letzte Detail beherrscht.

Es gibt die unsinnige Möglichkeit, den König selbst ins Schachmatt ziehen zu können und die Rochade beherrscht Bootchess auch nicht. Auch bei 1K TX Chess scheitert es aber an ein Regelkleinkram.

bei Antwort benachrichtigen
Alekom Michael Nickles „Rekord: Bootfähiges Schachprogramm ist nur 487 Byte groß“
Optionen

sorry, dann ist es kein korrektes programm.

das klassische schach hat schliesslich regeln, und wenn der könig ins schachmatt ziehen kann, dann ist es eigentlich sinnbefreit. rochade kann es auch nicht? die grundlegensten sachen also nicht.

wie sieht es mit en passant aus?

also zielsetzung verfehlt.

Alles hat seinen Sinn, auch das scheinbar Sinnlose, denn es gibt nichts ohne Sinn.
bei Antwort benachrichtigen
reader Michael Nickles „Rekord: Bootfähiges Schachprogramm ist nur 487 Byte groß“
Optionen

Wie wird es denn gewertet? Ich kann sonst 1 byte Programm schreiben - oder gar 0 byte. es beherrscht halt alle schachregeln nicht.

bei Antwort benachrichtigen
lakotz Michael Nickles „Rekord: Bootfähiges Schachprogramm ist nur 487 Byte groß“
Optionen

Also - streng gesehen taugt es nicht. Fertig. Larifari los

bei Antwort benachrichtigen
Andreas42 Michael Nickles „Rekord: Bootfähiges Schachprogramm ist nur 487 Byte groß“
Optionen

Brüllend

Die Reaktionen zeigen, dass man vermutlich selbst seit Jahren programmieren muss, um das Geleistete wirklich würdigen zu können.

Der Entwickler hat auf die Kritik übrigens sehr cool reagiert und das kürzeste absolut regelkonforme Schachprogramm zitiert:

int main(void){puts("I resign");

Ich erlaube mir eine deutsche Version zu erstellen:

int main(void){puts("Ich gebe auf!");

Ich fand diese Antwort vom ihm übrigens cool und lustig, mal abwarten wieviele sie nicht verstehen. Zwinkernd

Ich erinnere mich noch an den 1k-Wettbewerb des 64er Magazins. Ich hab da auch teilgenommen, aber mein Beitrag wurde nicht genommen. Nein, es war kein Schachprogramm.

Damals war es auch mal eine Zeitlang in, zu versuchen die schnellste Routine zum Zeichnen einer Linie zu schreiben. Ich hab das auch an meinen C64 probiert, aber nie die den Spitzenwert der Besten auf dem Gebiet geschafft (war aber trotzdem stolz auf meine Routine - die ich nie irgendwo genutzt habe...).
Dann hab ich Lebenszeit für einen C64-Basic-Beschleuniger verschwendet (keinen Compiler, einfach nur ein paar Maßnahmen um den Interpreter leicht zu Beschleunigen) und später die Laufzeitbibliothek von Borland-Pascal optimiert. Alles nix für Ewigkeit, hat aber viel Spaß gemacht und darum geht es bei solchen Sachen.

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Lütke Andreas42 „Die Reaktionen zeigen, dass man vermutlich selbst seit ...“
Optionen

Es gab mal (auch in der 64er) einen Wettbewerb mit Spielen, deren Code nur eine C-64-Seite lang sein durfte.

Gewonnen hatte Pong, ein Telespieltennis mit links und rechts zwei joysticksteuerbaren "Balken", mit denen man den "Ball" im Spiel halten musste.

Auf unseren gelegentlichen C-64 Abenden machen wir immer ein kleines Turnier mit dem Spiel!

Es gibt kein richtiges Leben im falschen.
bei Antwort benachrichtigen
Andreas42 Lütke „Es gab mal auch in der 64er einen Wettbewerb mit Spielen, ...“
Optionen

Hi!

Es gab mal (auch in der 64er) einen Wettbewerb mit Spielen, deren Code nur eine C-64-Seite lang sein durfte.

Cool! An den konnte ich mich gar nicht mehr erinnern. Lächelnd

An Pong hatte ich mich auch schon probiert, wie viele andere auch. Man das waren irgendwie coole Zeiten damals. Ich hab immer schon auf die nächste 64er hingefiebert.

Bis dann
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen
Lütke Andreas42 „Hi! Cool! An den konnte ich mich gar nicht mehr erinnern. An ...“
Optionen

Ich hatte mich mal an eine Pac-Man-Version rangewagt. Meine "Monster" konnten sich nur hin und her bewegen, der Pac-Man konnte sich in den Gängen bewegen, Punkte und Dollarzeichen fressen...

Das Ganze in Basic und dann "ruckweise", für jede Abfrageschleife ein "Ruck". Als ich dann die Programmieraufgabe erledigt hatte, hatte ich auf die Fleißarbeit (Erstellen weiterer Levels) keine Lust mehr.

Irgendwann hab ich das Ganze durch einen Compiler gejagt, wurde dann irre schnell, hätte man Verzögerungen einbauen müssen, aber wie gesagt, zu faul...

Es gibt kein richtiges Leben im falschen.
bei Antwort benachrichtigen
Systemcrasher Andreas42 „Die Reaktionen zeigen, dass man vermutlich selbst seit ...“
Optionen
Die Reaktionen zeigen, dass man vermutlich selbst seit Jahren programmieren muss, um das Geleistete wirklich würdigen zu können.

Du weißt doch: Keine Ahnung, davon aber jede Menge.

Ich selbst finde es fanzinierend, was alles möglich ist, wenn man nur will.

Ich erinere mich noch, wie ich beim C-64 nach wochenlanger Balstelei aufgegeben habe, eine Eingabeschleife unter Basic zu programieren, die die Eingabe zeichenweise abfragt und auswertet, so daß Korrekturen möglich sind, gleichzeitig falsche Zeichen ignoriert (soweit hatte ich es geschyafft) UND alle Zeichen normal darstellt und nicht - wie bei mir - mal normal, mal revers.

Das waren noch Zeiten. Damals gab es noch wirklich neue Programmmierideen.......

Und Leute gaben sich Mühe, ressourcenschonend zu programmieren......

Null Toleranz f?r Intoleranz
bei Antwort benachrichtigen