 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM

Anmeldungsdatum: 08.08.2006 Beiträge: 1048 Wohnort: Niederbayern
|
Verfasst am: 01.09.2009, 00:17 Titel: |
|
|
Zitat: | Zitat von dreal:
@ALWIN: Zum ersten Problem: Demfall müsste ich als zweiten Bugfix noch vorsehen, dass die Schlagmöglichkeit verfällt, wenn der Gegner ausschliesslich Mühlen besitzt? |
Ich konnte das von vornherein lösen. Habe eine IF-Frage gemacht ob auf einem Feld ein Stein ist, welche Farbe er hat und wenn ja ob dieser zu einer Mühle gehört.
Ich kenne die Seite bereits. Ich wäre heuer beinahe zur Europameisterschaft im Mühle gefahren. Leider kam mir ein Schachtunier dazwischen, wo ich als Schiedsrichter tätig sein musste.
Aber vielleicht nächstes Jahr. Ich kann nur hoffen das die wieder in Seeon stattfindet.
Mit freundlichen Grüßen
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 01.09.2009, 09:50 Titel: |
|
|
nemored hat Folgendes geschrieben: | Für dein Stellungswiederholungs-Problem könnte ich mir vielleicht so etwas vorstellen:
- String-Array anlegen, in dem du die bisherigen Stellungen speicherst (etwa stellung(73) = "wwowswsoooosowoososoowso", wobei w, s bzw o einen weißen, schwarzen oder keinen Stein auf dem soundsovielten Feld bedeutet). Ob das die günstigste Art der Speicherung ist, weiß ich nicht, aber ein Integer reicht dazu leider nicht aus.
|
Sonst eine Schnellanalyse: Mühle hat bekanntlich 24 Felder. Pro Feld gibt es eine Tristate-Information (schwarzer Stein, weisser Stein und leer), womit also nicht einmal ganz 2 Bits benötigt werden, sondern nur LOG(3)/LOG(2) = 1,585 Bits. => Hochgerechnet gibt dies also 24*LOG(3)/LOG/2) = 38,04 Bits Informationen, um einen Spielstand sich merken zu können. => Somit ist ein 32-Bit-Integer (&) immer noch etwas zu klein.
Da würde ich vielleicht zwei Longinteger nehmen, in welche Du den Inhalt der feld%()-Variable in kompakter Form ablegen kannst:
Code: | DIM stellungen&(999, 1)
SUB LegeStellungAb(s%)
FOR i%=0 TO 1
stellungen&(s%, i%) = 0&
FOR j%=0 TO 12
stellungen&(s%, i%) = 3& * stellungen&(s%, i%) + CLNG(feld%(12 * i% + j%))
NEXT j%
NEXT i%
END SUB |
_________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|