Auslosung mit Gruppen
Verfasst: Mittwoch 13. Mai 2020, 11:52
Hey Nochmal,
ich habe schonmal einen Artikel verfasst, der sich mit diesem Problem befasste. Fogendes: ich habe bestimmte Teams, die ich in Gruppen aufteilen will. Doch irgendwie läuft etwas im Programm schief. Ich kriege zwar keine Fehlermeldung aber die Gruppeneinteilung ist ungleichmäßig. Vielleicht muss ich beim else noch etwas hinzufügen. Im Code sollte man das vielleicht finden können. Würde mich über eine Antwort freuen. Hier kann es so aussehen als wären die Einrückungen falsch, sind sie aber nicht.
#Importierungen
import random
#Gruppen & Teilnehmer
gruppen = ["Gruppe A", "Gruppe B", "Gruppe C", "Gruppe D"]
members = ["Na'Vi", "Virtus Pro", "Mousesports", "FaZe Clan", "Astralis", "Ninjas in Pyjamas",
"Team Liquid", "Fnatic", "Team Vitality", "Espada", "Ence", "Cloud 9", "G2 Esports",
"OG", "Furia", "Complexity"]
#Rechnungsvariablen
max_a = int(len(members)) / int(len(gruppen))
max_b = int(len(members)) / int(len(gruppen))
max_c = int(len(members)) / int(len(gruppen))
max_d = int(len(members)) / int(len(gruppen))
max_e = int(len(members)) / int(len(gruppen))
max_f = int(len(members)) / int(len(gruppen))
max_g = int(len(members)) / int(len(gruppen))
max_h = int(len(members)) / int(len(gruppen))
max_i = int(len(members)) / int(len(gruppen))
max_j = int(len(members)) / int(len(gruppen))
#Gruppen
Gruppe_A = []
Gruppe_B = []
Gruppe_C = []
Gruppe_D = []
Gruppe_E = []
Gruppe_F = []
Gruppe_G = []
Gruppe_H = []
Gruppe_I = []
Gruppe_J = []
print(int(len(members)))
for i in range(int(len(members))):
name = random.choice(members)
members.remove(name)
gruppe = random.choice(gruppen)
if gruppe == "Gruppe A" and len(Gruppe_A) < max_a:
if len(Gruppe_A) == max_a:
gruppen.remove("Gruppe A")
else:
Gruppe_A.append(name)
if gruppe == "Gruppe B" and len(Gruppe_B) < max_b:
if len(Gruppe_B) == max_a:
gruppen.remove("Gruppe B")
else:
Gruppe_B.append(name)
if gruppe == "Gruppe C" and len(Gruppe_C) < max_c:
if len(Gruppe_C) == max_c:
gruppen.remove("Gruppe C")
else:
Gruppe_C.append(name)
if gruppe == "Gruppe D" and len(Gruppe_D) < max_d:
if len(Gruppe_D) == max_c:
gruppen.remove("Gruppe D")
else:
Gruppe_D.append(name)
else:
pass
print(Gruppe_A)
print(Gruppe_B)
print(Gruppe_C)
print(Gruppe_D)
ich habe schonmal einen Artikel verfasst, der sich mit diesem Problem befasste. Fogendes: ich habe bestimmte Teams, die ich in Gruppen aufteilen will. Doch irgendwie läuft etwas im Programm schief. Ich kriege zwar keine Fehlermeldung aber die Gruppeneinteilung ist ungleichmäßig. Vielleicht muss ich beim else noch etwas hinzufügen. Im Code sollte man das vielleicht finden können. Würde mich über eine Antwort freuen. Hier kann es so aussehen als wären die Einrückungen falsch, sind sie aber nicht.
#Importierungen
import random
#Gruppen & Teilnehmer
gruppen = ["Gruppe A", "Gruppe B", "Gruppe C", "Gruppe D"]
members = ["Na'Vi", "Virtus Pro", "Mousesports", "FaZe Clan", "Astralis", "Ninjas in Pyjamas",
"Team Liquid", "Fnatic", "Team Vitality", "Espada", "Ence", "Cloud 9", "G2 Esports",
"OG", "Furia", "Complexity"]
#Rechnungsvariablen
max_a = int(len(members)) / int(len(gruppen))
max_b = int(len(members)) / int(len(gruppen))
max_c = int(len(members)) / int(len(gruppen))
max_d = int(len(members)) / int(len(gruppen))
max_e = int(len(members)) / int(len(gruppen))
max_f = int(len(members)) / int(len(gruppen))
max_g = int(len(members)) / int(len(gruppen))
max_h = int(len(members)) / int(len(gruppen))
max_i = int(len(members)) / int(len(gruppen))
max_j = int(len(members)) / int(len(gruppen))
#Gruppen
Gruppe_A = []
Gruppe_B = []
Gruppe_C = []
Gruppe_D = []
Gruppe_E = []
Gruppe_F = []
Gruppe_G = []
Gruppe_H = []
Gruppe_I = []
Gruppe_J = []
print(int(len(members)))
for i in range(int(len(members))):
name = random.choice(members)
members.remove(name)
gruppe = random.choice(gruppen)
if gruppe == "Gruppe A" and len(Gruppe_A) < max_a:
if len(Gruppe_A) == max_a:
gruppen.remove("Gruppe A")
else:
Gruppe_A.append(name)
if gruppe == "Gruppe B" and len(Gruppe_B) < max_b:
if len(Gruppe_B) == max_a:
gruppen.remove("Gruppe B")
else:
Gruppe_B.append(name)
if gruppe == "Gruppe C" and len(Gruppe_C) < max_c:
if len(Gruppe_C) == max_c:
gruppen.remove("Gruppe C")
else:
Gruppe_C.append(name)
if gruppe == "Gruppe D" and len(Gruppe_D) < max_d:
if len(Gruppe_D) == max_c:
gruppen.remove("Gruppe D")
else:
Gruppe_D.append(name)
else:
pass
print(Gruppe_A)
print(Gruppe_B)
print(Gruppe_C)
print(Gruppe_D)