from data import data_api from mmr_calculations import * # Mach die DB abfrage für die Relevanten Daten. Von hier aus werden die "Aufgaben" und Daten dann an die kleineren Berechnungs Funktionen verteilt. def calculate_inserted_match (gamesystem, match_id): match_data = data_api.get_match_by_id(match_id) if not match_data: print("Fehler: Match nicht gefunden!") return # Laden und umsetzen der Match Daten p1_id = match_data['player1_id'] p2_id = match_data['player2_id'] p1_score = match_data['score_player1'] p2_score = match_data['score_player2'] sys_name = match_data['gamesystem_name'] sys_id = match_data['gamesystem_id'] rules = load_mmr_rule_matrix(systemname) draw_diff = rules["draw_point_difference"] calculated = False winner_id = None looser_id = None match_is_draw = False winner_score = 0 looser_score = 0 # Abgrenzen ob das Match schon berechnet wurde. Weil ein Draw kan 4 Punkte unterschied haben # 43-41 ist ein Draw aber rein Mathematisch würde es auch ein anderes if triggern while not calculated: # Match is a Draw if -draw_diff <= (p1_score-p2_score) <= draw_diff: match_is_draw = True winner_id = p1_id looser_id = p2_id winner_score = p1_score looser_score = p2_score calculated = True break # p1 ist der Sieger. if score_p1 > score_p2: winner_id = p1_id looser_id = p2_id winner_score = p1_score looser_score = p2_score calculated = True break # p2 ist der Sieger. if score_p1 < score_p2: winner_id = p2_id looser_id = p1_id winner_score = p2_score looser_score = p1_score calculated = True break calc_mmr_change.calc_mmr_change(sys_name, winner_id, looser_id, winner_score, looser_score, match_is_draw)