Überprüfen Sie die random Bibliothek. Nachdem Sie Ihren Zufallsgenerator erstellt haben, gibt es mehrere Möglichkeiten, um zu erhalten, was Sie wollen.
In jedem Fall ist es ein bisschen komplizierter als das, was Tyler C ist darauf hindeutet, (glaube ich), weil Ihre Bereiche werden wahrscheinlich nicht genau auf 100% addieren. Was schlägt er vor, ist eine Veränderung auf weighted choice, die anders ist. Wenn du willst, kann ich das weiter ausbauen.
Um Prozent s Sie brauchen etwas anderes, und ich bin mir nicht sicher, dass Sie Frage ist klar definiert. Wenn ein Pokémon als x% in einer Auswahl von 1 (nicht 100) erscheint, ist das einfacher. Wenn du nur ein Pokémon erstellen kannst, musst du entscheiden, ob du meinst:
1) Die Chance, dass ein Pokémon ausgewählt wird, beträgt 15%. Das beschränkt dich sehr. Du kannst nicht 6 (verschiedene) Pokémon dieser Wahrscheinlichkeit haben. Grundsätzlich , wenn die Menge an Prozent zu mehr als 100 summieren, ist es unmöglich.Wenn alle von der prozentuale Anteil der von allen Pokémon summieren sich auf weniger als 1 (einschließlich der Prozent nichts fallen, wenn nötig), als die Implementierung einfach ist:
def genPok(amount):
for _ in range(amount):
x = random.randint(1,100)
if x >= 1 and x <= 3: yield <some 3% pokemon>
if x==4; yield <some other 1% pokemon>
und so weiter.
2) Andernfalls müssen Sie jede Auswahl berücksichtigen. Wenn Sie 300 Pokémon haben, hat mindestens eine von ihnen die Chance, nicht mehr als 1/300 zu wählen. Dies bringt Sie zurück zu einer gewichteten Auswahl, mit der ich verbunden bin.
Sicher, das klingt gut. Erstellen Sie eine Liste dieser Pokémon-Objekte, und Sie können die zufällige Methode verwenden, um Elemente aus der Liste nach dem Zufallsprinzip auszuwählen – davedwards