-
Provinzheld
Du könntest auch 52 Variablen machen (für jede Karte eine).
Der Wert einer dieser Variablen gibt dann den Spieler (1 bis Spieleranzahl) an, der die jeweilige Karte besitzt.
0 würde sich für eine bereits gelegte (oder -vor dem Spiel- noch nicht verteilte) Karte anbieten
und dann könnte man noch einen Wert dafür einführen den eine Karte erhält wenn sie gerade oben liegt (Spieler-Anzahl+1) was aber vielleicht simpler durch eine separate Variable geklärt wird.
Alternativ könntest du auch kennzeichnen an welcher Stelle die Karte gelegt wurde (indem du einfach nach jeder gelegten Karte von [Spieleranzahl+1] bis [Spieleranzahl+52] immer 1 nach oben zählst und das jeweilige Ergebnis der gelegten Karte zuordnest.... eine sehr saubere Methode die auch eine "Rückgängig-machen"-Funktion erlauben würde)
Aber fangen wir mal vorne an: Bei der Verteilung der Karten.
Mir fallen grade zwei Möglichkeiten ein wie man das umsetzen könnte (wobei Methode1 unsauber ist und vermutlich sehr lange braucht bis sie die Karten an den Mann gebracht hat aber das ändert nichts daran dass sie das erste war was mir eingefallen ist ^^):
Kartenverteilungs-Methode 1:
Die Kartenverteilung könntest du bewerkstelligen indem du eine Variable von 1 bis Spieleranzahl hochzählen lässt (die dann immer wieder auf 1 gesetzt wird) und diesen Wert jeweils einer zufällig ermittelten Karte (var1-52) zuteilst SOFERN der ermittelte Wert nicht bereits einen Wert hat. Falls dies der Fall ist (var>0) wird eine andere Karte ausgewählt...
Das Spielchen wird solange betrieben bis alle Karten verteilt sind.
Könnte allerdings sein dass der Maker gegen Ende ziemlich lange rumrechnet bis er die letzten Karten verteilt hat (weil mit großer wahrscheinlichkeit ja karten ermittelt werden die schon verteilt wurden...).
Kartenverteilungs-Methode 2:
Besser wäre vermutlich folgendes:
Mach eine Variable die der noch unverteilten Kartenanzahl entspricht.
Dann ermittelst du einen Zufallswert zwischen 1 und dieser Variable und nun folgt ein Abzählmechanismus der die einzelnen Variablen durchgeht und der den Zufallswert immer -1 macht wenn er an einer noch unverteilten Karte (var=0) ist. Wenn der den Zufallswert 0 erreicht hat, wird diese Karte dem Spieler zugeteilt der gerade an der Reihe ist eine Karte zu erhalten (wie du ermittelst welcher Spieler eine Karte kriegt hab ich in Methode1 angesprochen).
Die Anzahl noch unverteilter Karten muss natürlich um 1 reduziert werden und dann kann das ganze für den nächsten Spieler durchgeführt werden bis die Anzahl noch zu verteilender Karten 0 ist.
Methode 2 sollte ohne große zufallsbedingte Verzögerungen auskommen weil sie immer die gesamte Reihe der Karten durchgeht und nicht darauf wartet dass der Zufall mal eine Karte erwischt die noch zu verteilen ist
Geändert von Phantom of Kami (11.01.2007 um 11:21 Uhr)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln