|
||||
AW: AVR-MAX Schachzwerg
Nach den ersten Gehversuchen fällt mir aber als dringend nötige Verbesserung(en) folgendes ein: 1) Zurückname von zumindest 2 Halbzügen (wenn man sich vertippt hat man derzeit keine Chance das wieder gut zu machen) Stufe ich als relativ einfaches erstes Übungsbeispiel der Programmierung ein. 2) Stellungseingabe Müsste auch relativ einfach gehen, aber .... reicht der Speicher? 3) 3 Züge Remis: ist aber vermutlich aufwendig (bzw. kostet viel Speicher), oder? ich habe inzwischen den Sourcecode auf der Orginalseite des Entwicklers weiter studiert und entdeckt dass die verwendete Version das eigentlich unterstützt. Auch Hash-Tables waren Teil dieser Micromax Version. Aus Speichergründen würde jedoch bei der Konvertierung für den Microcontroller (man hat ja nur 1 Kb; 32 byte werden je Suchtiefe verbraucht und der Rest grossteils für die Speicherung des Brettes) der Hash entfernt. Die dreimalige Stellungswiederholung fiel somit auch raus da der Hashtable dazu verwendet wurde. Sieht so aus als ob der Speicher das Hauptproblem unseres Controllers ist der viele Verbesserungen/Erweiterungen blockiert. Vielleicht gibt es pinkompatible Microcontroller mit mehr RAM !? Müsste man mal überprüfen. Ansonsten kann aus dem Zwerg schwer ein Riese werden. ![]()
__________________
Grüße ... Helmut ______________ Es gibt genau 10 Arten von Menschen. Die, die binär verstehen, und die, die es nicht verstehen. |
|
||||||||||||
AW: AVR-MAX Schachzwerg
![]() Auch ich habe mir heute die Sourcen angesehen und selbige Feststellung getroffen. Zitieren:
Auch Hash-Tables waren Teil dieser Micromax Version. Aus Speichergründen würde jedoch bei der Konvertierung für den Microcontroller (man hat ja nur 1 Kb; 32 byte werden je Suchtiefe verbraucht und der Rest grossteils für die Speicherung des Brettes) der Hash entfernt. Die dreimalige Stellungswiederholung fiel somit auch raus da der Hashtable dazu verwendet wurde.
Ich meine aber bei der Durchsicht der älteren Sourcen auch gesehen zu haben, dass die dreifache anfangs nicht über den Hash abgefangen wurde. Wenn ich mich da jetzt nicht vertue, kamen die Hashtables (wenn man das so nennen will) erst später hinzu. Ich müsste da noch einmal nachlesen - jetzt aber schmerzen erst mal die Augen... ![]() Zitieren:
Sieht so aus als ob der Speicher das Hauptproblem unseres Controllers ist der viele Verbesserungen/Erweiterungen blockiert.
Vielleicht gibt es pinkompatible Microcontroller mit mehr RAM !? Müsste man mal überprüfen. Ansonsten kann aus dem Zwerg schwer ein Riese werden. ![]() Unter Umständen ist es aber auch möglich, externen Speicher anzusprechen? Ich denke, der Controller verfügt angeblich über ach so viele Ports? Da sollte das doch auch irgendwie möglich sein? Gruß, Willi PS: Wenn ich ehrlich bin wäre mir ein 8-bit-Controller lieb, der neben 64k ROM auch selbiges an RAM bietet. Dann kann man bei Programmaufruf den ganzen Quatsch vom ROM ins RAM kopieren und gewinnt wieder was an Geschwindigkeit. Man könnte es dann so hinbiegen, dass nach verlassen der Bibi diese aus dem RAM gelöscht und der nun freie Speicher für Hashzwecke genutzt wird. ![]() Damit wäre eine externe Speichererweiterung vom Tisch, weil ein 8-bitter ohne Hilfsmittel sowieso nicht auf mehr als 64k zugreifen kann. |
|
|||||||||||
AW: AVR-MAX Schachzwerg
Der Atmega 644(40 pin) ist nicht pinkompatibel mit dem Atmega88p (28 pin).
Man könnte die freien IOs dazu mißbrauchen externen SRAM anzusteuern, die Zugriffe würden aber sehr langsam sein und damit wäre der Zwerg ziemlich schwach. Es gibt leider auch keine 8Bit Mikrocontroller mit 64 KB SRAM. Es gibt schöne Prototypen Boards mit 32 Bit Mikrocontroller(AT91SAM7S256) 256 KB Flash ROM und 64 KB RAM. Damit ließe sich etwas anfangen. Man muß zwar auch noch basteln um Tasten und 7 Segment LEDs anzuschließen, hätte dann aber eine Basis für Schachprogramm Experimente. Geändert von Dirk (12.08.2009 um 17:41 Uhr) |
|
||||||||||||
AW: AVR-MAX Schachzwerg
![]() Irgendwelche weitergehenden Abfragen mit 50-Züge Regeln lassen sich bestimmt auch mit wenig Aufwand und einer guten Idee umsetzen. Lediglich sehr lange zurückliegende (und praxisferne) Zugwiederholungen sind nur über Hashtables gut machbar. Schönen Gruß Theo |
|
||||||||||||
AW: AVR-MAX Schachzwerg
![]() Oder man nimmt gleich nen uC mit genug RAM für das Programm + Variablen + 128kB Hashtables. Aber das ginge dann Richtung ARM9 fürchte ich. Was mich noch interessieren würde, ist ARM7/9 eigentlich kompatibel zu den ARM2 Programmen der Klassiker King/Gideon? Ich bin mir fast sicher, dass es so ist. Wetten, Ed hätte nichts dagegen ?! |
|
||||||||||||
AW: AVR-MAX Schachzwerg
Stellungswiederholung kann man doch auch ohne Hashtables implementieren. In 99% der Fälle reicht doch auch Zugwiederholung nach folgendem Muster. Dazu einfach die letzten 10 Halbzüge speichern und in der Suche nahe der Wurzel (bis Tiefe 3 oder so) dann per 3-fach verschachtelter if-Abfrage kontrollieren. Vor und nach ausgeführten Zügen auch kontrollieren und ggf reklamieren. Kostet kaum RAM und MIPS und wäre ne schöne Übungs für den Anfang
![]() Zitieren:
Irgendwelche weitergehenden Abfragen mit 50-Züge Regeln lassen sich bestimmt auch mit wenig Aufwand und einer guten Idee umsetzen.
Zitieren:
Lediglich sehr lange zurückliegende (und praxisferne) Zugwiederholungen sind nur über Hashtables gut machbar.
Schönen Gruß Theo |
|
||||||||||||
AW: AVR-MAX Schachzwerg
Den diesem Thema geneigten Mitgliedern unserer Community möchte ich mitteilen, dass ich soeben eigens für dieses Thema eine Interessengemeinschaft (IG) ins Leben gerufen habe!
Diese IG ist offen für Jedermann! Gruß, Willi |
![]() |
Themen-Optionen | |
Ansicht | |
|
|