Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

15.10.2010, 01:47

Mühle programmieren?

Hallo erstmal,
Ich hab grad probleme bei Mühle. Ich hab mit 2d arrays mir ein feld von 7x7 gemacht. Doch da ich nicht alle Felder benutze kann ich die Steine nicht bewegen. Kann mir bitte jemand ein lösungsvorschlag machen.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Cout« (15.10.2010, 02:01)


n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

2

15.10.2010, 07:05

Das Spielfeld von Mühle ist wirklich nicht ganz einfach zu modellieren. Das ganze Spielfeld in einem Array zu speichern und alle Bewegungen der Spielsteine zu simulieren sollte recht aufwändig werden. Es ist aber möglich, dann müsstest du von feld[0][3] (oben mitte) eben nicht (bei einem zug nach rechts) auf feld[0][4] sondern auf feld[0][6]. Da könntest du dann je nach "Ring" einen Sprungwert angeben (äußerer Ring: 3, Zwischenring: 2, innerer Ring: 1). Die Übergangsbedingungen müsstest du dann noch extra einbauen. Das prüfen auf Mühlen müsstest du dann ähnlich machen.
Vielmehr solltest du aber immer versuchen Problemstellungen aufzuteilen, auf möglichst gleichartige teile. In dem Fall von Mühle würde ich da zu den 3 "Ringen" tendieren, sie haben alle den gleichen Aufbau und die Übergänge sind auch immer so ziemlich an der gleichen stelle.
Ein etwas generischerer Ansatz wäre, eine Liste anzulegen, mit "ungültigen" Positionen (wie z.B. (0,1) oder (0,2)). Dann addierst/subtrahierst du einfach egal von welcher position aus immer +1 und checkst, ob das feld gültig oder nicht gültig ist, wenn es gültig ist, prüfst du, ob bereits ein stein dort ist, wenn es nicht gültig ist, addierst du nochmal +1 und machst das gleiche wieder. Das ist nicht unbedingt der effizienteste ansatz, meiner meinung nach aber so ziemlich der einfachste.

3

15.10.2010, 07:55

Ja ich hab schon die die nicht im feld sind schon aussortiert mit dem Wert 2, 0=false, 1=true...ich werde deinen vorschlag mal ausprobieren. Ich hab eigentlich ehe nach einer anderen Art ein Feld zu machen gesucht( damits einfacher ist)..aber wenns nicht gehts...danke für die Hilfe!

4

15.10.2010, 08:26

Nochne Frage wie kann ich machen das ich nicht jede Runde ein Stein verbannen kann, wenn ich drei in einer Reihe habe?

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

5

15.10.2010, 08:56

Bitte editier deine posts und poste nicht doppelt

Zu deiner Frage: Du musst die mühlen irgendwie speichern, für jeden spieler z.B. in einer liste. Dein vorgehen könnte dann etwa so aussehen:
1. Leere Mühlen-liste anlegen
2. Auf mühlen prüfen:
2.1 Mühle gefunden, aber bereits in Liste -> weitersuchen
2.2 Mühle gefunden, noch nicht in Liste -> mühle in die liste eintragen und ein bit setzen, das dem spieler am ende ermöglicht, ein stein vom feld zu nehmen
3. Alle Mühlen in der Liste durchgehen, und überprüfen, ob sie noch existieren, falls nicht -> löschen
4. Beim nächsten Zug wieder mit 2. anfangen

6

15.10.2010, 08:59

Bitte editier deine posts und poste nicht doppelt

Hat den Nachteil, dass seine neue Frage vermutlich untergeht...
fka tm

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

7

15.10.2010, 09:09

Naja, wenn noch niemand drauf geantwortet hat und der post so kurz ist?
ein
EDIT: wird so schnell nicht übersehen ^^

8

15.10.2010, 09:16

Ja das hab ich schon gemacht...das Problem ist das man beim Spiel immer eine neue Reihe machen muss das heißt mit der alten kann man keine mehr verbannen...und muss diese nochmal neu aufbauen...aber wie programmier ich das...

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

9

15.10.2010, 09:29

Mein geposteter algorithmus sollte eigentlich genau das problem behandeln ^^

10

15.10.2010, 09:35

Wie soll ich die Liste machen mit 2d-arrays?

Werbeanzeige