Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Hey,
schreibe gerade einen kleines Spiel, bei dem per Zufall (random.choice)ein Spieler aus einer Liste ausgewählt wird. Nun will ich umsetzen, dass die Wahrscheinlichkeit für die Auswahl von Spielern, die weniger oft an der Reihe waren, steigt. Leider hab ich nicht mal eine Idee wie ich das umsetzen könnte. Daher würde ich mich sehr über Hilfe freuen
Ich würds jetzt so machen: 100% - spieler.anzahl_spiele/spiel.gesamt_anzahl. Wenn bsp. der Spieler 30% der Spiele mitgemacht hat, so kommt er nächstes mal zu 70% an die reihe.
1 - 3 Runde: Alles zufällig
Dann würde ich jeden Spieler der Wahrscheinlichkeit nach so ordnen, dass die ,deren Wahrscheinlichkeit als nächstes dranzukommen, vorne in der Liste stehen und die anderen hinter ihnen. Alles geordnet. Dann würde ich die Liste einzeln durchgehen und als nächstes wieder mit den 3 Runden Zufall neu beginnen.
Das random Modul hat eine Methode ("sample" glaub ich), die die Einträge einer Liste in zufälliger Reihenfolge zurückgibt. Wenn du dir also einfach eine Liste erstellst, in der jeder Spielername mehrmals vertreten ist und diese dann in zufälliger Reihenfolge abarbeitest, steigt automatisch die Wahrscheinlichkeit der Auswahl von Spielern die bisher noch nicht so oft gewählt wurden (weil von denen ja mehr Einträge in der Restliste vorhanden sind).
Das funktioniert dann, wenn die Wahrscheinlichkeiten auf 1 ergänzen. Ist das nicht der Fall, dann muss man das Zufallsergebnis noch mit max(acc) multiplizieren.
Danke, das funktioniert schon sehr gut. Jedoch stehe ich immernoch vor dem Problem, dass sich die Wahrscheinlichkeit für einen Spieler erhöhen soll, falls es er öfters nicht an der Reihe war. Hättet ihr auch dafür eine Idee?