Wo gibts eine Schachengine für ARM mit 16kB RAM?

Gast #766131
Lesenswert?

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?
Gast #766335
Lesenswert?

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.
(Firma: Dg3brb) #766417
Lesenswert?

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
Angehängte Dateien:
Gast #767808
Lesenswert?

@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?
Gast #767820
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren