278
Bearbeitungen
Änderungen
Random
,case mit factor= dokumentiert
Würde so etwas erzeugen:
Der Händler bietet an seinem Stand Kräuter, Käse, Brot und viele Obst- und Gemüsesorten der Umgebung an.
Bei 'case' kann optional ein Faktor angegeben werden, mit dem der Fall gewichtet wird, praktisch wird dieser also mehrfach berücksichtigt, als hätte man ihn wiederholt ausgeschrieben:
<code xml>
<random count="2">
<case>kommt 1mal in die Liste</case>
<case factor="3">kommt 3mal in die Liste</case>
<case factor="0">kommt nicht Liste</case>
</random>
</code>
In diesem Beispiel wären also 4 Fälle in der Liste, von denen 2 ausgewählt werden.
Der Wert 0 für den Faktor ist sinnvoll, wenn der Wert aus einer Variable kommt. So lässt sich z.B. eine wiederholte Zufallsauswahl programmieren, bei der die bereits ausgewählten Fälle nicht wieder vorkommen dürfen:
Bei der Initialisierung (z.B. in start.xml) alle Fälle zulassen:
<code xml>
<set name="fall_eins_factor" val="1"/>
<set name="fall_zwei_factor" val="1"/>
<set name="fall_drei_factor" val="1"/>
</code>
Und dann bei der tatsächlichen Auswahl, den ausgewählten für zu Zukunft deaktivieren:
<code xml>
<random>
<case factor="${fall_eins_factor}">
<set name="auswahl" scope="scene" val="fall_eins"/>
<set name="fall_eins_factor" val="0"/>
</case>
<case factor="${fall_zwei_factor}">
<set name="auswahl" scope="scene" val="fall_zwei"/>
<set name="fall_zwei_factor" val="0"/>
</case>
<case factor="${fall_drei_factor}">
<set name="auswahl" scope="scene" val="fall_drei"/>
<set name="fall_drei_factor" val="0"/>
</case>
</random>
</code>
[[Kategorie:AOQML-Tags]]