PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Warscheinlichkeits Rechnung bei Item ausgabe



Tingles
16.09.2012, 20:49
so, ich hab da mal ne frage =)

ich möchte das der Held beim beim abbauen von Erzen eine warscheinlichkeit hat gute und schlecht Erze zu bekommen.
Gedacht hab ich mir das er 50% Normales Erz 30% Gutes 20% Schlechtes und 10 % Sehrgutes Erz bekommt.
Wie kann ich das umsetzen?
Und kann ich es auch umsetzen das alle 5 möglichen Items diese Warscheinlichkeit durchlaufen.
Also ca. so:
Er kann 5 Erze bekommen
bekommt dann
3 Normale
1 Schlechtes
2 Gute
Und das eine textnachricht diese dann auch aufsagen kann.

hoffe man versteht mich. Aber Punkt 1 ist wichtiger, das ich überhaupt warscheinlichkeiten einbauen kann.

Danke schonmal für die hilfe.

edit: Maker 2K

MagicMaker
16.09.2012, 21:14
5x das da:

<> Var ABCD = Random 1~10
Dann nurnoch über Abfragen festlegen, welche Zahlen welches Erz hervorbringen,
zB 2, 3, 5, 7 und 8 für Normal.

Das mit der Message anschliessend solltest du hinbekommen.

Tingles
16.09.2012, 21:26
Ha, Habs geschafft :-D danke.

IndependentArt
16.09.2012, 21:44
die abfrage machst du mit einer fork/conditional branch.
dort fragst du einfach nach der zufallsvariable.

wichtig ist, dass unten der haken bei else case drin ist. und du kannst dann zb "greater then or equal to" einstellen.

ich würde die reihenfolge wahrscheinlich so machen, dass ich mit der größten zahl anfange

also abfrage, if random vari = 9 or more --> sehr gutes erz

in den else case: if random vari = 7 or more--> schlechtes erz

in den else case dieser abfrage(also nicht in den ersten: if random vari = 5 or more--> gutes erz

und schließlich: if random vari = 1 or more---> normales erz

das letzte deckt dann quasi die 50% ab, also von 1-5.
also immer von den großen zu den kleinen arbeiten, ich bin zwar nicht ganz sicher, warum das so gemacht wird, aber iwie geht das glaub ich besser, vlt kann das noch jemand ergänzen ^^

ich find die frage nicht noobig, ich finds gut, dass du dich damit beschäftigst ^^

Tingles
16.09.2012, 22:17
danke, ich hab das jetzt einfach so gemacht und bin das 20 mal durchgelaufen und die warscheinlichkeit stimmt eig.
Zufall 1-10
wenn Zufall 1 = Schlechtes erz
wenn Zufall 2 = Normales Erz
wenn Zufall 3 = Normales Erz
.
.
.
wenn Zufall 7 = Gutes Erz
wenn Zufall 8 = gutes Erz
.
.
.
wenn Zufall 10 = Sehr gutes Erz

dabei kommt 1 öffter als 10, was aber gut ist. Liegt vllt. daran das er das erst abfragt, aber das kann ja eig nicht, weil die zahl voher schon feststeht. ...läuft aber eig ganz gut.
Den Timer hab ich so gesetzt das, wenn Zufall einmal druchläuft +1 Waren Ausgang berechnet und die Seite des Events auf 2 springt wenn ich +5 hab. Kp ob das so am besten ist, aber es geht =)

edit: ich hab den hacken bei "Ansonsten" nicht gesetzt, einfach nach der ersten Abfrage die 2 gestartet, verändert das die Warscheinlichkeit? Oo

IndependentArt
17.09.2012, 18:12
so gehts auch ^^ ...aber du hättest nicht unbedingt für jede zahl eine einzelne abfrage machen müssen.



edit: ich hab den hacken bei "Ansonsten" nicht gesetzt, einfach nach der ersten Abfrage die 2 gestartet, verändert das die Warscheinlichkeit? Oo

nein.
es geht dabei nur darum, dass wenn du ohne else cases arbeitest(also die nächste abfrage immer in den else case der vorhergehenden reinkopierst), dass er dann immer alle abfragen durchläuft. das mag bei deinem noch gehen, aber wenn es mehr sind, kann das zu performance problemen führen. wenn du zB als erstes nach der 1 fragst und es ist auch die 1, dann geht er in der abfrage nicht weiter, weil wenn ein "else case" zutreffen würde, müsste ja etwas anderes als 1 rauskommen. so, wenn du die abfragen alle untereinander kopierst, fragt er trotz das es schon 1 ist auch noch ab ob es zB 2 sein könne. es sei denn du lässt ihn mit nem label oder so die anderen abfragen dann überspringen ^^

Tingles
17.09.2012, 18:33
ahh, das macht sinn. Ich werde es umschreiben, warum das programm ärgern ;) danke