Hallo,
weiß nicht, ob ihr mir helfen wollt oder könnt. Habe mir da ein Projekt überlegt, bin auch schon am Programmieren. Was mir im Magen liegt, ist folgendes:
Es soll ein Brettspiel werden mit 7 Reihen. Jede Reihe besteht aus verschiedenfarbigen Steinen. Der Ausgagszustand ist folgender:
rot rot rot leer rot rot rot
grün grün grün leer grün grün grün
gelb gelb gelb leer gelb gelb gelb
blau blau blau leer blau blau blau
braun braun braun leer braun braun braun
orange orange orange leer orange orange orange
lila lila lila leer lila lila lila
Und jetzt das Ganze mit den Feldindizes. Die Steine werden in einem Array gespeichert. stein[23] kennzeichnet den dritten Stein der zweiten Reihe. stein [45] den fünften Stein der vierten Reihe.
11 12 13 14 15 16 17
21 22 23 24 25 26 27
31 32 33 34 35 36 37
41 42 43 44 45 46 47
51 52 53 54 55 56 57
61 62 63 64 65 66 67
71 72 73 74 75 76 77
so, das ist der Ausgangszustand. Der Spieler bekommt jetzt eine zufällige Musterkombi angezeigt, die er durch Verschieben der Steine entweder waagerecht, senkrecht oder diagonal bilden soll. Dabei darf er in alle Richtungen ziehen und er darf auch einen Stein pro Zug überspringen. Nach jedem Zug muß natürlich überprüft werden, ob er die vorgelegte Kombi schon gebildet hat. Die Steine speichere ich in einem Array wie oben dargestellt, so kennzeichnet der Index stein[23] bspw. den dritten Stein in der zweiten Reihe. Ist dort ein Stein, so entspricht der Inhalt des Feldelementes der Steinfarbe. stein[23]=5 bedeutet eine grüne Farbe dieses Steines usw. stein[45]=0 bedeutet, daß dort kein Stein liegt.
Eine Kombi, die zu bilden ist, könnte z.B. sein: rot blau orange blau gelb lila gelb
Hat er diese gebildet, erscheint die nächste Farbkombi. Die getätigten Züge werden gezählt und später in eine Highscore-Tabelle eingetragen.... werd die wenigsten Züge machen musste usw...
später evtl. noch mit Computer als Gegenspieler, aber zunächst mal als Alleinspieler-Variante gedacht.
So, nun hab ich zur Zeit noch ein Problem damit: Wie ermittle ich, ob ein Stein von Position 11 bspw. nach Position 33 geschoben werden kann. Das geht ja nur, wenn Position 22 besetzt und Position 33 leer ist. Denn
- es darf nur auf einen unmittelbaren Nachbarn geschoben werden oder
- ein Stein übersprungen werden pro Zug
Das Ganze gibt doch sehr viele if-Abfragen. Natürlich kann ich das so realisieren, aber gings auch einfacher???
Wie gesagt, sehr aufwändig. Für Hilfen bin ich Euch sehr dankbar, ansonsten muss ich halt Alleine durch.
Ja, und die Verschärfung wäre dann irgendwann, daß man den Computer als Gegenspieler nimmt und wer zuerst alle Kombis gelegt hat, ist der Sieger.
weiß nicht, ob ihr mir helfen wollt oder könnt. Habe mir da ein Projekt überlegt, bin auch schon am Programmieren. Was mir im Magen liegt, ist folgendes:
Es soll ein Brettspiel werden mit 7 Reihen. Jede Reihe besteht aus verschiedenfarbigen Steinen. Der Ausgagszustand ist folgender:
rot rot rot leer rot rot rot
grün grün grün leer grün grün grün
gelb gelb gelb leer gelb gelb gelb
blau blau blau leer blau blau blau
braun braun braun leer braun braun braun
orange orange orange leer orange orange orange
lila lila lila leer lila lila lila
Und jetzt das Ganze mit den Feldindizes. Die Steine werden in einem Array gespeichert. stein[23] kennzeichnet den dritten Stein der zweiten Reihe. stein [45] den fünften Stein der vierten Reihe.
11 12 13 14 15 16 17
21 22 23 24 25 26 27
31 32 33 34 35 36 37
41 42 43 44 45 46 47
51 52 53 54 55 56 57
61 62 63 64 65 66 67
71 72 73 74 75 76 77
so, das ist der Ausgangszustand. Der Spieler bekommt jetzt eine zufällige Musterkombi angezeigt, die er durch Verschieben der Steine entweder waagerecht, senkrecht oder diagonal bilden soll. Dabei darf er in alle Richtungen ziehen und er darf auch einen Stein pro Zug überspringen. Nach jedem Zug muß natürlich überprüft werden, ob er die vorgelegte Kombi schon gebildet hat. Die Steine speichere ich in einem Array wie oben dargestellt, so kennzeichnet der Index stein[23] bspw. den dritten Stein in der zweiten Reihe. Ist dort ein Stein, so entspricht der Inhalt des Feldelementes der Steinfarbe. stein[23]=5 bedeutet eine grüne Farbe dieses Steines usw. stein[45]=0 bedeutet, daß dort kein Stein liegt.
Eine Kombi, die zu bilden ist, könnte z.B. sein: rot blau orange blau gelb lila gelb
Hat er diese gebildet, erscheint die nächste Farbkombi. Die getätigten Züge werden gezählt und später in eine Highscore-Tabelle eingetragen.... werd die wenigsten Züge machen musste usw...
später evtl. noch mit Computer als Gegenspieler, aber zunächst mal als Alleinspieler-Variante gedacht.
So, nun hab ich zur Zeit noch ein Problem damit: Wie ermittle ich, ob ein Stein von Position 11 bspw. nach Position 33 geschoben werden kann. Das geht ja nur, wenn Position 22 besetzt und Position 33 leer ist. Denn
- es darf nur auf einen unmittelbaren Nachbarn geschoben werden oder
- ein Stein übersprungen werden pro Zug
Das Ganze gibt doch sehr viele if-Abfragen. Natürlich kann ich das so realisieren, aber gings auch einfacher???
Wie gesagt, sehr aufwändig. Für Hilfen bin ich Euch sehr dankbar, ansonsten muss ich halt Alleine durch.
Ja, und die Verschärfung wäre dann irgendwann, daß man den Computer als Gegenspieler nimmt und wer zuerst alle Kombis gelegt hat, ist der Sieger.