Das Deutsche Casio-Taschenrechner Forum wurde zum 31.12.2013 geschlossen und kann weiterhin als Nachschlagewerk verwendet werden.
Wer mehr erfahren möchte: Ein sehr guter Beitrag von Elias

Dots and Boxes

Ideen sammeln, umsetzen, Fehler ausmerzen, Tipps holen und geben, Fragen stellen, Programmierprobleme lösen...

Re: Dots and Boxes

Beitragvon mario bielert » Mi 1. Okt 2003, 20:01

matrix,
ein feld ==> eine linie

feld =0 schreibe oder feld=1 nich schreiben
mario bielert
 

Re: Dots and Boxes

Beitragvon Calconeon » So 5. Okt 2003, 14:39

Leider geht das nicht so einfach!
Mögliche Punkte: 16
Mögliche Linien: 24

Ich weiss auch warum, is aber zu kompliziert zu erkären und lasse es deshalb auch.

Ich hebe mich dafür entschieden zwei Matrizen erstellen.
Eine für senkrechte und eine für Waagerechte Linien.

Es wird mit eine Abfrage feprüft, welche Punkteglich sind, also ob die Linie Waagerecht oder Senkrecht ist.
Koorinaten für MAtrix foldendermaßen:
Zwie aufeinanderfolgende Zahlen immer ungerade (.5)
Deshalb Int (A+G)/2und so weiter gaaaaanz einfach.

Bin jetzt zu 80% fertig. Es fehlt nur noch die Überprüfung auf Quadrat (weiss schon wie) und Design (mach ich am liebsten).
Spätestens in einer Woche werde ich das Prog anbieten und gfalls ihr mir nicht folgen konntet, dann schaut euch da den Quelltext an. Aber erst in einer Woche.
Calconeon
 

Re: Dots and Boxes

Beitragvon BCGSR » Di 7. Okt 2003, 20:34

Ich musste es zwar 3 mal lesen und ich weiss immer noch nicht, ob ich kapiert habe, aber ich versuchts auch mal ;)

Auf jeden falls bin ich auch dafür EINE Matrix zu verwenden, weil man da viel leichter Sachen mathematisch lösen kann. Und zwar nimmst du die Matrix so:

0 X 0 X 0 X 0 X 0 ...
X 0 X 0 X 0 X 0 X
0 X 0 X 0 X 0 X 0
X 0 X 0 X 0 X 0 X
0 X 0 X 0 X 0 X 0
X 0 X 0 X 0 X 0 X
0 X 0 X 0 X 0 X 0
...

Wobei die Nullen die Ecken von den Quadraten sind und die X die Linien. Am Anfang sind die X natürlich 0, später dann 1 oder -1, je nachdem welcher Spieler die Linie gesetzt hat.

Die Gewinnabfrage ist jetzt kein Ding mehr. Detail zum Erläutern:

0 1 0 1 0
0 0 o 0-1
0 1 0-1 0

Folgendes ist vorgegeben und der Spieler setzt in die Mitte (das o-Feld).
Mit jedem Strich kann man maximal zwei Boxen schliessen (oder hab ich was falsch verstanden?)
Setzt man den Stein in eine gerade Zeile, kann man nur die beiden Boxen links und rechts schliessen. Setzt man in eine ungerade Zeile, kann man nur die Boxen oben und unten schliessen.

Wenn du überprüft hast, ob links/rechts oder oben/unten kannst du geziehlt die jeweiligen dazugehörigen 3 Linien abfragen. Ergibt die Summe der Beträge aller vier Linien =4 dann ist die Box voll.

Am Beispiel: Feld "o" ist [A,B]
- A ist gerade -> Box links/rechts
- Box links besteht aus [A,B] [A+1,B-1], [A, B-2], [A-1,B-1]. Summe der Beträge =3 => Box offen
- Box rechts analog. Summe der Beträge=4 => Box geschlossen.

Die Mitte der Box kann man dann noch mit einer 1 oder -1 markieren für den Gewinner und dann zum Schluss so schnell zählen, oder du nimmst eine reservierte Variable und zählst die hoch. Das ist dann Wurst.

Mit der Abfrageroutine kann Mist werden, wenn du ein Randfeld abfragst.
Entweder du prüfst jedesmal, dass du die Matrix nicht "verlässt" und einen DIM ERROR kriegst oder du erweiterst die Matrix um jeweils 2 Felder in jede Richtung und sorgst dafür, dass dieser "Rand" nicht angezeigt bzw. bespielbar ist, so hast du keinen Ärger mit abfragen. Kann aber ganz schön Speicherintensiv werden, weiss ja nicht wie gross du das Spielfeld machen willst.
Übrigens so hab ich vor vielen Jahren auch mal eine Gewinnabfrage bei 4Gewinnt gemacht. Dort wird nach jedem Spielzug jede mögliche Senkrechte, Waagerechte und Diagonale geprüft, die von diesem Stein ausging, und damit das schnell geht und ich keine Randstein-Abfragen machen musste, hab ich einfach die Matrix oben und unten erweitert.
BCGSR
 

Re: Dots and Boxes

Beitragvon Killer83Z » Mi 8. Okt 2003, 18:55

Zitat:Orginal von Calconeon
Wahnsinn, wie du denkst. WAS bist du du???


Er ist Student.
Killer83Z
 

Re: Dots and Boxes

Beitragvon Calconeon » Do 9. Okt 2003, 13:34

Ich weiss, aber muss da so einen hohen IQ haben. ;)

Also, nachdem jetzt einen Befehl zum rumdrehen einer Matrix gefenden habe (Trn) kommt mir des wieder perfekter vor, wenn ich zwei Matrizen verwende. Da braucht man auch weniger Speicherplatz.

Zu Zeit arbeite ich an beiden Möglichkeiten parallel. Immer wenn ich an dem einen Prog Frust habe, mache ich mit dem anderen weiter. Mal sehen, was am ersten fertig ist, bzw. am schnellsten und kleinsten wird. :)
Calconeon
 

Re: Dots and Boxes

Beitragvon BCGSR » Fr 10. Okt 2003, 22:56

> Befehl zum rumdrehen einer Matrix

Wie du den verwendest musst du mal erklären :D
BCGSR
 


Zurück zu Graphikrechner (CFX 9850 G/GB/GC; FX 9860 G/ GSD; FX 9750G; FX 7400G) ohne CAS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste