Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Full House - Wie effizient programmieren?

  Alt 11. Dez 2016, 16:04
So habe ich das damals in meiner Version auch gemacht. Da habe ich mir ein Byte-Array der Länge 6 (für die Würfelseiten) erstellt und mit Nullen gefüllt. Anschließend bin ich meine 5 Würfel in einer Schleife durchlaufen und habe den Array-Werte an Index Punktzahl des aktuellen Würfels um 1 erhöht. Für die weiteren Auswertungen musste dann nur noch das Punkte-Array analysiert werden (im Fall Full House bedeutet dies: es dürfen im Array nur die Werte 0, 2 und 3 vorkommen).

[edit] Nach nochmaligem Durchlesen bin ich zu dem Schluss gekommen, dass das vielleicht etwas schwer zu verstehen ist, daher eine anschaulichere Erläuterung:
Stellen wir uns das genannte Array einfach als 6 Kartons vor, die von mit Zahlen von 1 bis 6 beschriftet sind. Am Anfang leeren wir alle Kartons, dann würfeln wir. Jeden Würfel legen wir nun in den Karton, dessen Beschriftung dem Würfelwert entspricht. Haben wir also z.B. die Folge 2, 3, 3, 5, 6 gewürfelt, so enthalten anschließend die Kartons 2, 5, und 6 je 1 Würfel, der Karton 3 2 Würfel, die übrigen Kartons (also 1 und 4) sind leer. Mit diesen Kartons können wir nun alle möglichen Punktzahlen errechnen, die Punktzahlen der einzelnen Würfel interessieren uns hier nicht mehr. Will der Spieler also das "3er"-Feld ausfüllen, ergibt sich die Punktzahl aus Kartonbeschriftung (also 3) multipliziert mit Inhalt (im Beispielwurf 2, das Ergebnis beträgt dann also 6). Für ein Full House muss ein Karton 2 und einer 3 Würfel enthalten, für eine kleine Straße müssen 4 aufeinanderfolgende Kartons befüllt sein, etc. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (11. Dez 2016 um 17:07 Uhr)
  Mit Zitat antworten Zitat