Ich möchte einen kleinen Schachcomputer mit 128x128 Farbdisplay bauen. Mein Prozessor ist ein ARM7-ähnlicher Cortex M3: knapp 100kB Flash sind frei und 16kB RAM... leider sind alle Schachengines (in C) die ich auf die Schnelle gegoogelt habe, zu speicherhungrig... Wer kennt da was nettes?
Selbstmachen? :-) Ich habe mal eine einfache in Java programmiert. Wie stark sind Deine Gegner? Mit einer einfachen Alpha-Beta-Suche und ein bisschen optimieren an der Bewertungsfunktion lassen sich schon recht gute Resultate erzielen. Eine kleine Eröffnungsbibliothek dazu im Flash und eine Bibliothek für das Endspiel und die Engine ist bereit für gute Anfänger. Welche Schach-Engines hast Du denn bisher versucht zu portieren? Hauptproblem dürfte die Suchtiefe sein, die durch den mageren Speicher arg begrenzt wird. mfg, Stefan.
http://de.wikipedia.org/wiki/Alpha-Beta-Suche Da ist sogar der Source zur Alpha-Beta-Suche beschrieben. Der Suchbaum muß natürlich generiert werden. Das ist aber relativ einfach, wenn man nicht ein 8x8-Feld implementiert, sondern ein 12x12. mfg, Stefan. P.S. Wer weiß, warum man ein 12x12-Feld nimmt? :-)
Koennt man denn nicht den Suchbaum durchn' Kompressor lassen, und so die Suchtiefe multiplizieren ? aus 16k mach 100k.
> durchn' Kompressor
bist du dir sicher daß du da was durch einen Kompressor schicken
möchtest? Oder doch lieber durch einen Komprimierer?
ich habe mal was Ähnliches für 'nen AVR (Mega32) angefangen. Als Startpunkt habe ich mich von diversen chess engines im Netz inspirieren lassen. Da die Engine in C geschrieben ist, sollte sie leicht auf einen Arm portierbar sein. Ich benutze jedenfalls dieselbe Datei, um unter es unter Linux zu kompilieren (läßt sich besser debuggen...). Im Moment mangelt es mir aber an Zeit, das Projekt weiterzuführen. Es wird die schon oben erwähnte Alpha-Beta Strategie verwendet. Eröffnungsbibliothek ist noch nicht drin. Als Kompromiss für den geringen zur Verfügung stehenden Ram werden nicht für jede Suchtiefe alle Züge gespeichert, sondern immer neu berechnet. Das ist natürlich ganz schön aufwändig, aber ohne Ram nicht anders machbar. Dadurch verbrauche ich im Mega32 für die chess engine nur ca 500...600 byte (fürs board, a-b scores etc). Mein "Schachcomputer" :-) besteht aus einem Mega32, einem Pollin 128x64 Grafikdisplay und einem Drehencoder als Eingabe. Als Anhang gibts das C-File der chess engine. Vielleicht hilfts Dir ja. kanadakruemel
@Stefan May: Von Null möchte ich da nicht anfangen - hab eh schon genug mit dem grafischen Schmus am Hals. @Roland Schmidt: Danke, Deep Evelyn ist super klein und läuft auch aufm ARM. Hat aber noch keine Eingabeüberprüfung für gültige Züge. @Micha: Schaut auch gut aus! Wie ist dein chess lizensiert? :-) Frei weiter verwendbar?
Ist zwar ein bisschen OT: Ich habe eine Schachkasette (also so eine zusammenklappbares Brett mit Raum für die Figuren) in ca. 50 cm * 50 cm (Tournament Nr. 6; Fa. Wegiel; Bild: http://www.wegiel-chess.com.pl/p_chess/Tour6_box.JPG )zu Hause. Wenn man die Einsätze für die Figuren rausnimmt, hat man so ca. 1,5 bis 2 cm Platz. Das sollte eine gute Grundlage für ein Sensorbrett geben?! Da die Schachfiguren mit Blei beschwert sind, sollte das Messprinzip in der Lage sein, den Bleiklumpen durch ca. 5 mm Holz, Filz, Luft hindurch zu erkennen - irgendetwas induktives? Sollte natürlich auch nicht zu viel kosten, vielleicht so allerhöchstens 1 € / Sensor. Einen Mikrocontroller wird man eh brauchen, interessant wird die Kommunikation mit dem Schachprogramm auf dem PC. Dazu würde sich das Protokoll der kommerziell erhältlichen DGT-Bretter anbieten, das von vielen Schachprogrammen unterstützt wird. Spezifikationen für Programmierer sind bei DGT frei erhältlich.
Tom Kerrigan's Simple Chess Program (TSCP) fiele mir da ein: http://www.tckerrigan.com/Chess/TSCP Das läuft auch auf Nedap Wahlcomputern mit ebenfalls 16kB Ram ;-) (siehe Community)
TSCP hatte ich schon probiert, wollte zuviel RAM - zumindest out-of-the-zip
@Stefan May
>...Wer weiß, warum man ein 12x12-Feld nimmt?
Nee, keine Ahnung. Erklär es mir doch bitte.
Hat es mit den Pferdchen zu tun ?
MfG Willi
> Hat es mit den Pferdchen zu tun ?
Jupp. :-) Für die Springer braucht man dann keine Sonderbehandlung bei
den Zügen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.