Schachcomputer.info Community

Schachcomputer.info Community (https://www.schachcomputer.info/forum/index.php)
-   Die ganze Welt der Schachcomputer / World of chess computers (https://www.schachcomputer.info/forum/forumdisplay.php?f=2)
-   -   Frage: Saitek Simultano - eine Rechenaufgabe (https://www.schachcomputer.info/forum/showthread.php?t=5560)

DarkStar 12.11.2017 16:05

AW: Saitek Simultano - eine Rechenaufgabe
 
Hallo Rasmus,

Zitieren:

Zitat von Rasmus (Beitrag 70364)
Ich denke, die Frage ist nicht sinnvoll gestellt,

Das sehe ich natürlich etwas anders ...

Zitieren:

Zitat von Rasmus (Beitrag 70364)
weil bei so einem kleinen Buch mit nur 1 aktivem Zug pro Position das Meiste für den strukturellen Overhead draufgeht, den man für die Ausweitung auf ein richtiges Eröffnungsbuch bräuchte.

Demnach hätten Rechner wie der Mephisto MM V + HG550 kein "richtiges Eröffnungsbuch" ...

Zitieren:

Zitat von Rasmus (Beitrag 70364)
Noch weniger Speicher wäre natürlich 8 Bytes:
e2-e4 (2 Bytes) Sg8-f6 (2 Bytes)
h2-h3 (2 Bytes) e7-e5 (2 Bytes)

Da man 64 Felder hat, brauchen Start- und Zielfeld 6 bit, wodurch man eines der Bits reservieren kann, um anzuzeigen, ob der Zug aktiv gespielt werden soll oder nicht.

Das ist natürlich schon besser, ist aber noch erheblich mehr, als das was beispielsweise MM V und Konsorten benötigen.

Zitieren:

Zitat von Rasmus (Beitrag 70364)
Dann sind aber keine Zugumstellungen mehr möglich, aber das war ja offenbar auch nicht in der Frage enthalten.

Die wäre auch noch möglich, nur nicht mehr direkt und etwas umständlicher. Aber wenn es auf Speicherplatz ankommt ...

So, jetzt noch einen Versuch und dann sind wir glaube ich am Ziel

Stay tuned ...
Carsten

Rasmus 12.11.2017 16:23

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70365)
So, jetzt noch einen Versuch und dann sind wir glaube ich am Ziel

Die Bauernzüge könnte man auch mit einem Byte machen, indem man bei normalen Zieh-Zügen nur das Zielfeld angibt. Dafür wäre nebst dem "aktiver Zug"-Bit ja noch ein weiteres Bit verfügbar, mit dem man anzeigen kann, daß es sich um so einen Bauernzug handelt.

Das ergäbe 5 Byte:
e4 (1 Byte) Sg8-f6 (2 Bytes)
h3 (1 Byte) e5 (1 Byte)

Der Nachteil ist, daß man mit dem System erhebliche Teile des Buches durchparsen muß, um die Zugumstellungen zu erwischen.

DarkStar 12.11.2017 16:31

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von Rasmus (Beitrag 70367)
Das ergäbe 5 Byte:
e4 (1 Byte) Sg8-f6 (2 Bytes)
h3 (1 Byte) e5 (1 Byte)

Schon nah dran. MM V / HG 550 und Konsorten benötigen für obiges Buch genau 4 Bytes. Immerhin nochmal 20% weniger als 5 Bytes.

Stay tuned ...
Carsten

Rasmus 12.11.2017 16:52

AW: Saitek Simultano - eine Rechenaufgabe
 
Ok, bei Sg8-f6 kann man natürlich denselben Trick machen, weil es nur einen Springer gibt, der nach f6 gehen kann. Das spart dann das fünfte Byte.

DarkStar 12.11.2017 17:05

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von Rasmus (Beitrag 70369)
Ok, bei Sg8-f6 kann man natürlich denselben Trick machen, weil es nur einen Springer gibt, der nach f6 gehen kann. Das spart dann das fünfte Byte.

Ok. Nächste Stufe:
Zwei Varianten
Erste: e2-e4,Sg8-f6,d2-d4,Sf6xe4,Lf1-c4 (soll aktiv gespielt werden)
Zweite: d2-d4,Sg8-f6,c2-c4,e7-e6,Sb1-c3 (soll nicht aktiv gespielt werden.

MMV bräuchte dafür 10 Bytes.

Stay tuned ...
Carsten

Solwac 12.11.2017 22:22

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70359)
1. Frage: wo liegt dann der 8 KByte RAM Bereich

Mindestens 512 Byte werden im Bereich 0x0000 bis 0x0200 liegen, eventuell auch alles RAM in den ersten 8 KByte. Das liegt an der Besonderheit der 6502, bei der Z80 wäre es anders, das RAM würde oben im Speicher liegen.

Das Rom hingegen dürfte teilweise parallel liegen. Dazu wird Bankswitching verwendet, d.h. der Speicher ist in einzelne Bänke unterteilt und diese werden wechselnd in den Adressraum der CPU eingeblendet. Bei der Eröffnungsbibliothek kann z.B. die Bewertungsfunktion ausgeblendet werden - es wird entweder der Zug aus dem Buch gespielt ODER mit der normalen Suche ermittelt.

Zitieren:

Zitat von DarkStar (Beitrag 70359)
Ihr seit Programmierer und sollt eine Eröffungsbibliothek erstellen, die nur die beiden folgenden Varianten enthällt:
  • Variante 1: e2-e4 Sg8-f6 (die Züge sollen aktiv gespielt werden)
  • Variante 2: h2-h3 e7-e5 (h2-h3 soll nicht aktiv gespielt werden)
2. Frage: wieviel Speicherplatz würdet ihr dafür benötigen?

Ich würde hier mit 8 Byte rechnen: Jeder Zug wird mit 2 Byte dargestellt, 12 Bits für von und nach und 4 Bits für Steueraufgaben wie Variantenende, nur passiv oder selten spielen usw.

Es gibt auch andere, kompaktere Möglichkeiten, aber die brauchen mehr RAM und das war meist knapper als ROM.

DarkStar 12.11.2017 22:49

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von Solwac (Beitrag 70373)
Ich würde hier mit 8 Byte rechnen:

Mit 8 Bytes liegt die Lösung 100% über kompaktesten Lösung.

Stay tuned ...
Carsten

BTW: Das ein Bankswitching gemacht werden kann ist klar. Aber wird das beim Simultano auch gemacht? Ich habe da leichte Zweifel und hätte dazu gerne mehr gewusst.

Rasmus 13.11.2017 01:05

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70370)
MMV bräuchte dafür 10 Bytes.

Ich passe aus Faulheit, würde aber sagen, daß bei ehrlicher Zählweise zwischen 10% und 20% von den Marketing-Angaben des Zugumfanges real übrig bleiben, was dann auch in die 64k ROM paßt.

Solwac 13.11.2017 13:22

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von DarkStar (Beitrag 70374)
Mit 8 Bytes liegt die Lösung 100% über kompaktesten Lösung.

Was ist für Dich die kompakteste Lösung?
Ich kenne die Speicherung der Zugnummer durch einen Zuggenerator, der das Feld abscannt und deshalb immer dieselbe Reihenfolge liefert (bei Figurenlisten schon nicht mehr gegeben bzw. es braucht eine für das normale Spiel nicht hilfreiche Sortierung). Die Zugnummer kann aber 128 überschreiten, d.h. es sind keine Bits mehr übrig für die Markierung von Variantenenden oder aktiv/passiv bekannte Züge.

Wenn das mit dem Saitek nichts mehr zu tun hat, dann gerne in einem eigenen Strang. Ich finde das Thema nämlich interessant.

Rasmus 13.11.2017 17:06

AW: Saitek Simultano - eine Rechenaufgabe
 
Zitieren:

Zitat von Solwac (Beitrag 70381)
Die Zugnummer kann aber 128 überschreiten

Das kann man vernachlässigen. Zwar existieren pathologische Stellungen mit deutlich über 200 möglichen Zügen, aber in realen Partien habe ich bei Messungen nie mehr als knapp über 90 gemessen, und das war schon selten.

Bei den 8-bittern wurde ja oft auch die Zahl der Halbzüge mit einem uint8_t dargestellt, obwohl Schachpartien durchaus mehr als 128 Züge haben können. Solche Näherungen waren für damalige Geräte aber akzeptabel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:39 Uhr.

Powered by vBulletin (Deutsch)
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
©Schachcomputer.info