Benutzer:Arbol01/Matrix-Spiele

Aus Wikibooks

Anmeldungsdatum: 27.09.2003 Beiträge: 312 Wohnort: Giessen

BeitragVerfasst am: 03. Okt 2003, 01:05 Titel: Merlin und tcl/tk Antworten mit Zitat Ende der siebziger brachte Parker (Monopoly) ein elektronisches Spiel heraus. Es hatte ähmlichkeit mit einem Teleonhörer, einem Sensor-Tastenfeld und 9 rote LED's. Tas Teil hatte mehrere Eingebaute Spiele: tic tac toe, Black Jack, einen Melodienspieler, bei dem man eine Melodie eingeben konnte, und die Melodie auf Abruf wiederholt wurde (solange man nicht das Spiel wechselte, oder das Gerät ausschaltete. Ich weiß nicht mehr, ob ich es nun einmal oder zweimal hatte. Auf diesem Spiel, der Name war Merlin, war auch ein Spiel, bei dem LED's in bestimmten Mustern aufläuchteten, und man durch das gezielte Drücken der Sensortasten andere Muster erhalten hat. Ziel war es, ein ganz bestimmtes Muster zu bekommen, das blinkte. Wie das Muster war, weiss ich nicht mehr, aber das tut auch nichts zur Sache.

Ein tcl/tk-Programm, das ich geschrieben habe, und an dem ich noch arbeite, macht so ziemlich das, was dieses Spiel in Merlin damals gemacht hat:

  1. ------------------------------------------------------------------------------------------

set farbe(0) #f00 set farbe(1) #0f0 set farbe(2) #00f set farbe(3) #f70 set farbe(4) #0f7 set farbe(5) #70f set farbe(6) #ff0 set farbe(7) #0ff set farbe(icon_cool.gif #f0f set farbe(9) #7f0 set farbe(10) #07f

set farbwerta1 0 set farbwerta2 0 set farbwerta3 0 set farbwertb1 0 set farbwertb2 0 set farbwertb3 0 set farbwertc1 0 set farbwertc2 0 set farbwertc3 0

set farbstufen 2

  1. ------------------------------------------------------------------------------------------

frame .r1 button .r1.a1 -text "a1" -width 10 -height 5 -background $farbe($farbwerta1) button .r1.a2 -text "a2" -width 10 -height 5 -background $farbe($farbwerta2) button .r1.a3 -text "a3" -width 10 -height 5 -background $farbe($farbwerta3) pack .r1.a1 .r1.a2 .r1.a3 pack .r1 -side left

frame .r2 button .r2.b1 -text "b1" -width 10 -height 5 -background $farbe($farbwertb1) button .r2.b2 -text "b2" -width 10 -height 5 -background $farbe($farbwertb2) button .r2.b3 -text "b3" -width 10 -height 5 -background $farbe($farbwertb3) pack .r2.b1 .r2.b2 .r2.b3 pack .r2 -side left

frame .r3 button .r3.c1 -text "c1" -width 10 -height 5 -background $farbe($farbwertc1) button .r3.c2 -text "c2" -width 10 -height 5 -background $farbe($farbwertc2) button .r3.c3 -text "c3" -width 10 -height 5 -background $farbe($farbwertc3) pack .r3.c1 .r3.c2 .r3.c3 pack .r3 -side left

  1. ------------------------------------------------------------------------------------------

.r1.a1 configure -command { set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] .r1.a1 configure -background $farbe($farbwerta1) .r2.b1 configure -background $farbe($farbwertb1) .r3.c1 configure -background $farbe($farbwertc1) .r1.a2 configure -background $farbe($farbwerta2) .r1.a3 configure -background $farbe($farbwerta3) }

.r2.b1 configure -command { set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] .r1.a1 configure -background $farbe($farbwerta1) .r2.b1 configure -background $farbe($farbwertb1) .r3.c1 configure -background $farbe($farbwertc1) .r2.b2 configure -background $farbe($farbwertb2) .r2.b3 configure -background $farbe($farbwertb3) }

.r3.c1 configure -command { set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] .r1.a1 configure -background $farbe($farbwerta1) .r2.b1 configure -background $farbe($farbwertb1) .r3.c1 configure -background $farbe($farbwertc1) .r3.c2 configure -background $farbe($farbwertc2) .r3.c3 configure -background $farbe($farbwertc3) }

.r1.a2 configure -command { set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] .r1.a1 configure -background $farbe($farbwerta1) .r2.b2 configure -background $farbe($farbwertb2) .r3.c2 configure -background $farbe($farbwertc2) .r1.a2 configure -background $farbe($farbwerta2) .r1.a3 configure -background $farbe($farbwerta3) }

.r2.b2 configure -command { set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] .r1.a2 configure -background $farbe($farbwerta2) .r2.b2 configure -background $farbe($farbwertb2) .r3.c2 configure -background $farbe($farbwertc2) .r2.b1 configure -background $farbe($farbwertb1) .r2.b3 configure -background $farbe($farbwertb3) }

.r3.c2 configure -command { set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] .r1.a2 configure -background $farbe($farbwerta2) .r2.b2 configure -background $farbe($farbwertb2) .r3.c2 configure -background $farbe($farbwertc2) .r3.c1 configure -background $farbe($farbwertc1) .r3.c3 configure -background $farbe($farbwertc3) }

.r1.a3 configure -command { set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] .r1.a3 configure -background $farbe($farbwerta3) .r2.b3 configure -background $farbe($farbwertb3) .r3.c3 configure -background $farbe($farbwertc3) .r1.a1 configure -background $farbe($farbwerta1) .r1.a2 configure -background $farbe($farbwerta2) }

.r2.b3 configure -command { set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] .r1.a3 configure -background $farbe($farbwerta3) .r2.b3 configure -background $farbe($farbwertb3) .r3.c3 configure -background $farbe($farbwertc3) .r2.b1 configure -background $farbe($farbwertb1) .r2.b2 configure -background $farbe($farbwertb2) }

.r3.c3 configure -command { set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] .r1.a3 configure -background $farbe($farbwerta3) .r2.b3 configure -background $farbe($farbwertb3) .r3.c3 configure -background $farbe($farbwertc3) .r3.c1 configure -background $farbe($farbwertc1) .r3.c2 configure -background $farbe($farbwertc2) }

Ich habe im Laufe der Zeit Variationen dieses Spiels, auf Taschenrechnern, im Unitopia und sonstwo gesehen und gespielt. Versionen, die mehr als zwei Zustände (an und aus) kennen. Und in Unitopia eines, das nicht mit den üblichen Mustern arbeitet, sondern mit Buchstaben wie T, H, U, O und L, und bei dem die Muster weit komplexer sind, als bei der Standardversion.

Hier eine Variante, bei der mehr als zwei Farben im Spiel sind:

  1. ------------------------------------------------------------------------------------------

wm title . "Matrix"

  1. ------------------------------------------------------------------------------------------

set farbe(0) #f00 set farbe(1) #0f0 set farbe(2) #00f set farbe(3) #f70 set farbe(4) #0f7 set farbe(5) #70f set farbe(6) #ff0 set farbe(7) #0ff set farbe(icon_cool.gif #f0f set farbe(9) #7f0 set farbe(10) #07f

set farbwerta1 0 set farbwerta2 0 set farbwerta3 0 set farbwertb1 0 set farbwertb2 0 set farbwertb3 0 set farbwertc1 0 set farbwertc2 0 set farbwertc3 0

set farbstufen 11

set opt_on 0

  1. ------------------------------------------------------------------------------------------

button .optionen -text "Optionen" -width 35 pack .optionen -side top

frame .r1 button .r1.a1 -text "a1" -width 10 -height 5 -background $farbe($farbwerta1) button .r1.a2 -text "a2" -width 10 -height 5 -background $farbe($farbwerta2) button .r1.a3 -text "a3" -width 10 -height 5 -background $farbe($farbwerta3) pack .r1.a1 .r1.a2 .r1.a3 pack .r1 -side left

frame .r2 button .r2.b1 -text "b1" -width 10 -height 5 -background $farbe($farbwertb1) button .r2.b2 -text "b2" -width 10 -height 5 -background $farbe($farbwertb2) button .r2.b3 -text "b3" -width 10 -height 5 -background $farbe($farbwertb3) pack .r2.b1 .r2.b2 .r2.b3 pack .r2 -side left

frame .r3 button .r3.c1 -text "c1" -width 10 -height 5 -background $farbe($farbwertc1) button .r3.c2 -text "c2" -width 10 -height 5 -background $farbe($farbwertc2) button .r3.c3 -text "c3" -width 10 -height 5 -background $farbe($farbwertc3) pack .r3.c1 .r3.c2 .r3.c3 pack .r3 -side left

  1. ------------------------------------------------------------------------------------------

.optionen configure -command { if { $opt_on == 0} { set opt_on 1 toplevel .opt wm title .opt "Optionen" button .opt.quit -text "Exit" pack .opt.quit -side bottom } }

.r1.a1 configure -command { set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] .r1.a1 configure -background $farbe($farbwerta1) .r2.b1 configure -background $farbe($farbwertb1) .r3.c1 configure -background $farbe($farbwertc1) .r1.a2 configure -background $farbe($farbwerta2) .r1.a3 configure -background $farbe($farbwerta3) }

.r2.b1 configure -command { set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] .r1.a1 configure -background $farbe($farbwerta1) .r2.b1 configure -background $farbe($farbwertb1) .r3.c1 configure -background $farbe($farbwertc1) .r2.b2 configure -background $farbe($farbwertb2) .r2.b3 configure -background $farbe($farbwertb3) }

.r3.c1 configure -command { set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] .r1.a1 configure -background $farbe($farbwerta1) .r2.b1 configure -background $farbe($farbwertb1) .r3.c1 configure -background $farbe($farbwertc1) .r3.c2 configure -background $farbe($farbwertc2) .r3.c3 configure -background $farbe($farbwertc3) }

.r1.a2 configure -command { set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] .r1.a1 configure -background $farbe($farbwerta1) .r2.b2 configure -background $farbe($farbwertb2) .r3.c2 configure -background $farbe($farbwertc2) .r1.a2 configure -background $farbe($farbwerta2) .r1.a3 configure -background $farbe($farbwerta3) }

.r2.b2 configure -command { set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] .r1.a2 configure -background $farbe($farbwerta2) .r2.b2 configure -background $farbe($farbwertb2) .r3.c2 configure -background $farbe($farbwertc2) .r2.b1 configure -background $farbe($farbwertb1) .r2.b3 configure -background $farbe($farbwertb3) }

.r3.c2 configure -command { set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] .r1.a2 configure -background $farbe($farbwerta2) .r2.b2 configure -background $farbe($farbwertb2) .r3.c2 configure -background $farbe($farbwertc2) .r3.c1 configure -background $farbe($farbwertc1) .r3.c3 configure -background $farbe($farbwertc3) }

.r1.a3 configure -command { set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] set farbwerta1 [ expr [ expr $farbwerta1 + 1 ] % $farbstufen ] set farbwerta2 [ expr [ expr $farbwerta2 + 1 ] % $farbstufen ] .r1.a3 configure -background $farbe($farbwerta3) .r2.b3 configure -background $farbe($farbwertb3) .r3.c3 configure -background $farbe($farbwertc3) .r1.a1 configure -background $farbe($farbwerta1) .r1.a2 configure -background $farbe($farbwerta2) }

.r2.b3 configure -command { set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] set farbwertb1 [ expr [ expr $farbwertb1 + 1 ] % $farbstufen ] set farbwertb2 [ expr [ expr $farbwertb2 + 1 ] % $farbstufen ] .r1.a3 configure -background $farbe($farbwerta3) .r2.b3 configure -background $farbe($farbwertb3) .r3.c3 configure -background $farbe($farbwertc3) .r2.b1 configure -background $farbe($farbwertb1) .r2.b2 configure -background $farbe($farbwertb2) }

.r3.c3 configure -command { set farbwerta3 [ expr [ expr $farbwerta3 + 1 ] % $farbstufen ] set farbwertb3 [ expr [ expr $farbwertb3 + 1 ] % $farbstufen ] set farbwertc3 [ expr [ expr $farbwertc3 + 1 ] % $farbstufen ] set farbwertc1 [ expr [ expr $farbwertc1 + 1 ] % $farbstufen ] set farbwertc2 [ expr [ expr $farbwertc2 + 1 ] % $farbstufen ] .r1.a3 configure -background $farbe($farbwerta3) .r2.b3 configure -background $farbe($farbwertb3) .r3.c3 configure -background $farbe($farbwertc3) .r3.c1 configure -background $farbe($farbwertc1) .r3.c2 configure -background $farbe($farbwertc2) }

Was mir noch fehlt, ist eine zufällige generierung eines Musters, von dem man sich zurück auf den Ursprungszustand spielen kann. Die Farben müssen noch getauscht werden (Ist Geschmachsache), die zwei fehlenden Regelwerke und ein Pulldownmü, sowie ein zweites Fenster für das Spielen mit Buchstaben und ein Fenster für Optionseinstellungen muß ich noch einbauen.

Es geht mir nicht darum, Hilfe aus dem Forum zu bekommen, sondern vielmehr, was man mit tcl/tk machen kann, auf relativ einfacher Basis.

Man kann das Spiel auf ein größeres Feld (20x20) erweiten. Man kann ein Tic Tac Toe Spiel programmieren, Minsweaper, ein abstrakres Sokoban. Vieles ist möglich.

Sicher kann man das auch mit Delphi und Python. Nach oben Benutzer-Profile anzeigen Private Nachricht senden hoja Newbie Newbie


Anmeldungsdatum: 11.10.2003 Beiträge: 1 Wohnort: Bergisch Gladbach

BeitragVerfasst am: 11. Okt 2003, 15:10 Titel: Tcl-Spiel Antworten mit Zitat Schönes Tcl-Tk-Spiel. Leider wird Tcl/Tk meist völlig verkannt. Dabei lassen sich damit so tolle Sachen schreiben. Dazu ist es kostenlos und läuft auch gleich auf Windows, Unix (X) und Macintosh.

Es sollte eigentlich bei jedem Rechner dabei sein, aber Microsoft will die Leute lieber an ihr dusseliges Visual Basic binden mit seiner kruden Syntax. Damit geschriebene Programme laufen nämlich garantiert auf keiner anderen Plattform als Windows. So bindet man seine Kunden ;-( Nach oben Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen Momo Profi Member Profi Member


Anmeldungsdatum: 02.05.2003 Beiträge: 311 Wohnort: Essen

BeitragVerfasst am: 11. Okt 2003, 18:29 Titel: Re: Tcl-Spiel Antworten mit Zitat hoja hat Folgendes geschrieben: ..., aber Microsoft will die Leute lieber an ihr dusseliges Visual Basic binden mit seiner kruden Syntax. Damit geschriebene Programme laufen nämlich garantiert auf keiner anderen Plattform als Windows. So bindet man seine Kunden ;-(


Seit wann ist denn bei Windows Visual Basic dabei? Wohl eher bei bestimmten Programmpaketen die VBA-Variante. Da ist es ja auch vollkommen legitim. Denn das Microsoft Office-Paket läuft ja auch nur auf Windows-Plattformen. Die Syntax von Visual Basic empfinde ich nicht als krude. Jede Sprache hat halt ihre Eigenheiten.

Gruß Momo Nach oben Benutzer-Profile anzeigen Private Nachricht senden arbol01 Profi Member Profi Member


Anmeldungsdatum: 27.09.2003 Beiträge: 312 Wohnort: Giessen

BeitragVerfasst am: 11. Okt 2003, 18:59 Titel: Re: Tcl-Spiel Antworten mit Zitat Momo hat Folgendes geschrieben: hoja hat Folgendes geschrieben: ..., aber Microsoft will die Leute lieber an ihr dusseliges Visual Basic binden mit seiner kruden Syntax. Damit geschriebene Programme laufen nämlich garantiert auf keiner anderen Plattform als Windows. So bindet man seine Kunden ;-(


Seit wann ist denn bei Windows Visual Basic dabei? Wohl eher bei bestimmten Programmpaketen die VBA-Variante. Da ist es ja auch vollkommen legitim. Denn das Microsoft Office-Paket läuft ja auch nur auf Windows-Plattformen. Die Syntax von Visual Basic empfinde ich nicht als krude. Jede Sprache hat halt ihre Eigenheiten.

Gruß Momo


Momo, Du hast natürlich recht. Bei dem Windows-Betriebssystem ist kein VB dabei. Was allerdings mit Windows immer dabei ist, is der IE. Und AFAIK ist bei IE zumindest Java Script mit dabei.

Aber es wäre schon schön, wenn so eine Sprache wie tcl/tk bei jedem Windows-Betriebssystem dabei wäre, wie REXX bei OS/2 und IBM PC-DOS, oder C das Standardmässig bei Linux babei ist. Ob tcl/tk bei Linux (als Standard-Installation) dabei ist, weiß ich nicht. Nach oben Benutzer-Profile anzeigen Private Nachricht senden Momo Profi Member Profi Member


Anmeldungsdatum: 02.05.2003 Beiträge: 311 Wohnort: Essen

BeitragVerfasst am: 11. Okt 2003, 21:42 Titel: Antworten mit Zitat Hallo,

na ja, es gibt ja einige kostenlose C++ Compiler. Und Windows stellt ja die API zur Verfügung. Allerdings wenn ich mir so die allgemeinen Windows-User vorstelle, ist es wohl besser keine Programmiersprache direkt mitzuliefern.

Gruß

Momo Nach oben Benutzer-Profile anzeigen Private Nachricht senden arbol01 Profi Member Profi Member


Anmeldungsdatum: 27.09.2003 Beiträge: 312 Wohnort: Giessen

BeitragVerfasst am: 16. Okt 2003, 23:24 Titel: Antworten mit Zitat Um zu dem Spiel zurück zu kommen: Ich erkläre vieleicht erstmal, worum es bei dem Spiel, beziehungsweise um eine ganze Klasse von Spielen.

Diese Art von Spiel gehört zu den Knobelspielen, und hat ganz entfernt mit den Rubikwürfeln und dem Zahlenverschiebespiel zu tun.

Als Beispiele zeige ich 20*14 und 3*3 Matrizen.

So sieht ein Spielfeld aus, wenn es komplett ist:

Code:
####################
####################
####################
####################
####################
####################
####################
####################
####################
####################
####################
####################
####################


Es gibt drei Regelsysteme (wer noch andere findet, der möge es ergänzen):

1. Vom ausgehenden Punkt invertieren alle senkrechten und wagerechten Punkte:

Code:

############ #######
############ #######
############ #######
############ #######
############ #######
############ #######
############ #######
############ #######
############ #######
                                          
############ #######
############ #######
############ #######


Mehrere Linien: Code:

### ###### #########
### ###### #########
### ###### #########
### ###### #########
### ###### #########
          #
### ###### #########
### ###### #########
   #
### ###### #########
### ###### #########
### ###### #########
### ###### #########
### ###### #########


2. Nur der Punkt selber und die vier angrenzenden Punkte werden invertiert:

Code:

####################
####################
####################
####################
######## ###########
#######   ##########
######## ###########
####################
####################
####################
####################
####################
####################
####################


Mehrere Kreuze:

Code:

####################
### ################
##   ###############
### ################
########### ########
##########  ########
############  ######
#### ####### #######
###   ##############
##########  ########
###   ### ## #######
#### #####  ########
####################
####################


3. Der Punkt, und alle 8 angrenzenden Punkte werden invertiert:

Code:

####################
####################
######   ###########
######   ###########
######   ###########
####################
####################
####################
####################
####################
####################
####################
####################
####################


Mehrere Quadrate:

Code:

####################
####################
##   ###############
##   #########   ###
##   #######  #  ###
############  #  ###
############   #####
## ## ##############
## ## ##############
## ###  ############
#####   ############
#####   ############
####################
####################


Bei einem 3x3 Gitter sieht das so aus.

Regelwerk 1.:

Code:

###   @@@   @##   #@#
###   @##   @@@   @@@
###   @##   @##   #@#


Regelwerk 2.:

Code:

###   @@#   @##   #@#
###   @##   @@#   @@@
###   ###   @##   #@#


Regelwerk 3.:

Code:

###   @@#   @@#   @@@
###   @@#   @@#   @@@
###   ###   @@#   @@@


So, ich versuche mal einen Beispiel-Ablauf mit einem 3x3 Gitter nach Regelwerk 1. mit 3 Stufen (können auch mehr sein:

###
###
###
###
###
###
###
###
###
###
###
### Fertig!!!


Bitte Kritik zu üben! Nach oben Benutzer-Profile anzeigen Private Nachricht senden arbol01 Profi Member Profi Member


Anmeldungsdatum: 27.09.2003 Beiträge: 312 Wohnort: Giessen

BeitragVerfasst am: 16. Okt 2003, 23:38 Titel: Antworten mit Zitat Mist, ich habe für das 3x3 Gitter noch ein System vergessen. Es wird dabei kein Punkt ausgewählt, sondern vielmehr ein Muster überlagert:

Code:

###       @@@       @#@       @#@       @##       @@@       @#@       @#@       @#@
###  C -> @##  H -> @@@  K -> @@#  L -> @##  O -> @#@  U -> @#@  X -> #@#  Y -> #@#
###       @@@       @#@       @#@       @@@       @@@       @@@       @#@       #@#


Es sind vieleicht auch andere Muster Möglich! Nach oben Benutzer-Profile anzeigen Private Nachricht senden arbol01 Profi Member Profi Member


Anmeldungsdatum: 27.09.2003 Beiträge: 312 Wohnort: Giessen

BeitragVerfasst am: 17. Okt 2003, 00:58 Titel: Antworten mit Zitat Sorry, etwas verschoben:

Code:

###       @@@       @#@       @#@       @##       @@@     
###  C -> @##  H -> @@@  K -> @@#  L -> @##  O -> @#@
###       @@@       @#@       @#@       @@@       @@@       


     @#@       @#@       @#@
U -> @#@  X -> #@#  Y -> #@#
     @@@       @#@       #@#


Es sind vielleicht auch andere Muster möglich!