![]() |
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import random def pair_players(players): random.shuffle(players) # Zufällige Reihenfolge der Spielerliste pairs = [] num_players = len(players) num_pairs = num_players // 2 for i in range(num_pairs): pair = (players[i], players[i + num_pairs]) pairs.append(pair) return pairs def create_player_groups(players): num_groups = len(players) // 32 player_groups = [] for i in range(num_groups): group = players[i * 32:(i + 1) * 32] paired_players = pair_players(group) player_groups.append(paired_players) return player_groups # Beispielaufruf all_players = ['Spieler1', 'Spieler2', 'Spieler3', 'Spieler4', 'Spieler5', 'Spieler6', ...] # Hier die Liste aller Spieler einfügen player_groups = create_player_groups(all_players) # Ausgabe der Spielergruppen for i, group in enumerate(player_groups): print(f"Gruppe {i + 1}:") for pair in group: print(pair) print() |
![]() |
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import random def pair_players(players): random.shuffle(players) # Zufällige Reihenfolge der Spielerliste pairs = [] num_players = len(players) num_pairs = num_players // 2 for i in range(num_pairs): pair = (players[i], players[i + num_pairs]) pairs.append(pair) return pairs def create_player_groups(players): player_groups = {} for level in range(1, 301, 5): player_groups[level] = [] for player in players: level = player['level'] player_groups[level].append(player) final_groups = [] for level in range(1, 301, 5): group = player_groups[level] num_players = len(group) if num_players >= 32: num_full_groups = num_players // 32 remaining_players = num_players % 32 for i in range(num_full_groups): full_group = group[i * 32:(i + 1) * 32] paired_players = pair_players(full_group) final_groups.append(paired_players) if remaining_players >= 2: partial_group = group[num_full_groups * 32:] paired_players = pair_players(partial_group) final_groups.append(paired_players) return final_groups # Beispielaufruf all_players = [ {'name': 'Spieler1', 'level': 20}, {'name': 'Spieler2', 'level': 25}, {'name': 'Spieler3', 'level': 30}, {'name': 'Spieler4', 'level': 35}, {'name': 'Spieler5', 'level': 40}, {'name': 'Spieler6', 'level': 45}, # Fügen Sie weitere Spieler mit ihren entsprechenden Leveln hinzu ] player_groups = create_player_groups(all_players) # Ausgabe der Spielergruppen for i, group in enumerate(player_groups): print(f"Gruppe {i + 1}:") for pair in group: print(pair) print() |
![]() |
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
import random def pair_players(players): random.shuffle(players) # Zufällige Reihenfolge der Spielerliste pairs = [] num_players = len(players) num_pairs = num_players // 2 for i in range(num_pairs): pair = (players[i], players[i + num_pairs]) pairs.append(pair) return pairs def calculate_activity_factor(level): if level <= 100: return 1.0 elif level <= 200: return 1.2 else: return 1.5 def create_player_groups(players): player_groups = {} for level in range(1, 301, 5): player_groups[level] = [] for player in players: level = player['level'] activity_factor = calculate_activity_factor(level) player['activity_factor'] = activity_factor player_groups[level].append(player) final_groups = [] for level in range(1, 301, 5): group = player_groups[level] num_players = len(group) if num_players >= 32: num_full_groups = num_players // 32 remaining_players = num_players % 32 for i in range(num_full_groups): full_group = group[i * 32:(i + 1) * 32] paired_players = pair_players(full_group) final_groups.append(paired_players) if remaining_players >= 2: partial_group = group[num_full_groups * 32:] paired_players = pair_players(partial_group) final_groups.append(paired_players) return final_groups # Beispielaufruf all_players = [ {'name': 'Spieler1', 'level': 20}, {'name': 'Spieler2', 'level': 80}, {'name': 'Spieler3', 'level': 120}, {'name': 'Spieler4', 'level': 180}, {'name': 'Spieler5', 'level': 220}, {'name': 'Spieler6', 'level': 280}, # Fügen Sie weitere Spieler mit ihren entsprechenden Leveln hinzu ] player_groups = create_player_groups(all_players) # Ausgabe der Spielergruppen for i, group in enumerate(player_groups): print(f"Gruppe {i + 1}:") for pair in group: print(pair) print() |
![]() |
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
import random def pair_players(players): random.shuffle(players) # Zufällige Reihenfolge der Spielerliste pairs = [] num_players = len(players) num_pairs = num_players // 2 for i in range(num_pairs): pair = (players[i], players[i + num_pairs]) pairs.append(pair) return pairs def calculate_activity_factor(level): if level <= 100: return 1.0 elif level <= 200: return 1.2 else: return 1.5 def create_player_groups(players): player_groups = {} for level in range(1, 301, 5): player_groups[level] = [] for player in players: level = player['level'] activity_factor = calculate_activity_factor(level) player['activity_factor'] = activity_factor player_groups[level].append(player) final_groups = [] for level in range(1, 301, 5): group = player_groups[level] num_players = len(group) if num_players >= 32: num_full_groups = num_players // 32 remaining_players = num_players % 32 for i in range(num_full_groups): full_group = group[i * 32:(i + 1) * 32] paired_players = pair_players(full_group) final_groups.append(paired_players) if remaining_players >= 2: partial_group = group[num_full_groups * 32:] paired_players = pair_players(partial_group) final_groups.append(paired_players) return final_groups def simulate_tournament(player_groups): tournament_results = {} for i, group in enumerate(player_groups): group_results = [] for pair in group: result = random.choice(['win', 'loss', 'draw']) # Simulieren Sie das Ergebnis des Spiels group_results.append({'pair': pair, 'result': result}) tournament_results[i] = group_results return tournament_results def update_player_levels(all_players, tournament_results): for group_results in tournament_results.values(): for game_result in group_results: pair = game_result['pair'] result = game_result['result'] for player in pair: if result == 'win': player['level'] += 10 elif result == 'loss': player['level'] -= 5 else: player['level'] += 5 # Sortiere Spieler nach Level absteigend all_players.sort(key=lambda x: x['level'], reverse=True) # Die besten 8 Spieler steigen auf, die letzten 8 Spieler steigen ab promoted_players = all_players[:8] relegated_players = all_players[-8:] # Aktualisiere Level der aufgestiegenen Spieler for player in promoted_players: player['level'] += 50 # Aktualisiere Level der abgestiegenen Spieler for player in relegated_players: player['level'] -= 50 return all_players # Beispielaufruf all_players = [ {'name': 'Spieler1', 'level': 20}, {'name': 'Spieler2', 'level': 80}, {'name': 'Spieler3', 'level': 120}, {'name': 'Spieler4', 'level': 180}, {'name': 'Spieler5', 'level': 220}, {'name': 'Spieler6', 'level': 280}, # Fügen Sie weitere Spieler mit ihren entsprechenden Leveln hinzu ] player_groups = create_player_groups(all_players) tournament_results = simulate_tournament(player_groups) all_players = update_player_levels(all_players, tournament_results) # Ausgabe der aktualisierten Spielerliste for player in all_players: print(f"{player['name']}: Level {player['level']}") |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Chief Joseph« (21. Mai 2023, 04:59)
Benutzer, die sich für diesen Beitrag bedankt haben:
Thor von Venja (21.05.2023)
Also; für uns Spieler es werden Ligen generiert welche folgende Spieler Bedingungen haben:mmh, das Problem ist, die Spieler sollen deinen Vorschlag verstehen, nicht der Progger.
Wenn du deinen Vorschlag Spielerfreundlicher machst wäre das also besser.
Ob etwas umgesetzt wird entscheiden wir Spieler, also müssen wir auch wissen was du meinst.
Der Progger kommt danach dran. Das du seine Arbeit übernommen hast mag ja hilfreich sein.
Aber zunächt sollte jeder verstehen was du meinst.
Forensoftware: Burning Board®, entwickelt von WoltLab® GmbH
Forum online seit 15 Jahren, 6 Monaten, 24 Tagen und 6 Stunden