ich bin relativ neu in der Pythonprogrammierung und bin aktuell dabei folgendes kleines Projekt zu realisieren:
- Generieren von Objekten zur Laufzeit (im Beispiel hier: Boxer) (funktioniert)
- Erstellen von zufälligen Kampfpaaren mit zufälligem Ausgang (funktioniert teilweise):
(i) funktioniert: Erstellung einer "unabhängigen" Kampfbilanz für jeweils einen Boxer
(ii) Problemstellung (habe noch nicht mal eine Ansatz für die Lösung):
Wenn man davon ausgeht, dass man 45 Kämpfer hat, die u.U. gegeinander gekämpft haben könnten - sind die Kampfstatistiken ja miteinander verflochten. Wenn Kämpfer A gegen Kämpfer B gewonnen hat
muss die Statistik für B das auch reflektieren. Da ich die zufälligen Kampfrekorde aktuell nacheinander zufällig generiert werden (jeweils eine Komplettstatistik für einen Kämpfer am Stück) - habe ich aktuell
keine Idee wie man bei der Generierung die Verflechtung der Kampfstatistiken bewerkstelligen könnte. Die Routin trackt momentan keinen der Vorgänge und vergleicht auch nichts bei der Erstellung des
Kampfrekords des nächsten Kämpfers.
Mein Code schaut aktuell wie folgt aus und generiert bisher voneinander unabhängige Kampfrekorde, das würde ich gerne so ändern, das sie Kampfbilanzen untereinander "konsistent" sind.
Code: Alles auswählen
# Code für die Statistik
repeat = 0 # Schleifenvariable die für einen Kämpfer bis zu 45 Kämpfe für eine Statistik generiert
upper_limit = random.randint(25, 45) # Zufällige Anzahl an Kämpfen
k = 0 # Schleifenvariable die den Kämpfer für die nächsten Paarungen festlegt
while k < upper_limit: # Solange für den Kämpfer k noch nicht alle Kämpfe generiert wurden
while repeat < upper_limit: # Generiere Kämpfe
pair_var = random.randint(0, 44) # 45 mögliche Paarungen für den Kämpfer k
result = random.randint(1, 3) # 3 Resultate möglich: Gewonnen, Unentschieden, Verloren
if k == pair_var and k < upper_limit: # Wenn man gegen sich selbst kommt springe weiter
pair_var = pair_var + 1
if k == pair_var and k == upper_limit:
break
if pair_var == upper_limit:
pair_var=upper_limit
print(ai_boxer[k].fname + " " + ai_boxer[k].lname + "," + str(result) + ", " + ai_boxer[
pair_var].fname + " " + ai_boxer[pair_var].lname) # Ausgabe der Paarungen
repeat = repeat + 1 # Nächster Gegner für k
print("\n")
if k < upper_limit:
repeat = 0 # Zurücksetzen des Paarungsparameters
k = k + 1 # Wähle den nächsten Gegner für Paarungen
else:
repeat = 0
# Ende Statistik
Viele Grüße und Danke für die Mühe,
Timo