Проблема заключается в точном обновлении совокупной частоты приобретения собственности игроком в каждой игре и расчете рPython

Программы на Python
Anonymous
Проблема заключается в точном обновлении совокупной частоты приобретения собственности игроком в каждой игре и расчете р

Сообщение Anonymous »


property_acquisition_pattern = r"(Celebfin|Angelll|antoleu85|SHE3Pj|boardgamelife|ammegapro|Thauri|Jehle|computer82|bjarnimari|EaglePervik|MaxCostello|BillyJoBob|Pelé-BRU|WTD69|Gersow|VitelNet|tukky_galaxy|contedelsagrato| Богдарин| Katrien79|jorgeanchovy|10 июля|vegaorion|Buxpb|settebello|Kg1239|animalonthedrums|TenaciousDFence|TheLoser|Stoemper|Стран Ник|Рикс|10 июля) (проходит и платит|выигрывает раунд и платит) (\d+) k$ за имущество (\d+)"

текущий_номер_игры = 1 player_property_values ​​= {} player_final_outcomes = {} game_rankings_property = {} game_rankings_outcome = {}

property_bids = {} property_frequency = {}

pass_and_pay_pattern = r"(\w+) передает и платит (\d+) тыс. долларов за имущество (\d+)" win_round_pattern = r"(\w+) выигрывает раунд и платит (\d+) тыс. долларов за имущество (\d+)"

player_name = "Celebfin"

для индекса, строка в df.iterrows(): gamelog = row['gamelog'] game_lines = gamelog.split('\n')

если текущий_номер_игры не указан в player_property_values: player_property_values[current_game_number] = {} player_final_outcomes[current_game_number] = {}

current_game_properties = {} current_game_outcomes = {}

для строки в game_lines: property_acquisition_match = re.search(property_acquisition_pattern, line)

если property_acquisition_match: игрок, _, значение, номер_свойства = свойство_acquisition_match.groups() значение = целое число (значение) номер_свойства = int(номер_свойства)

if player == player_name:

если номер свойства_номер не указан в свойстве_биды: property_bids[property_number] = [значение] еще: property_bids[property_number].append(значение)

Сохранять частоты объектов недвижимости для Celebfin если номер_свойства не указан в параметре property_frequency: property_frequency[property_number] = 1 еще: property_frequency[property_number] += 1

Используйте частоту вместо средней ставки. частота = частота_свойства[номер_свойства] значение = частота

если игрока нет в current_game_properties: current_game_properties[player] = {}

current_game_properties[игрок][номер_свойства] = значение

если в строке «имеет» и в строке «итого»: result_match = re.search(r"(Celebfin|Angèlll|antoleu85|SHE3Pj|boardgamelife|ammegapro|Thauri|Jehle|computer82|bjarnimari|EaglePervik|MaxCostello|BillyJoBob|Pelé-BRU|WTD69|Gersow|VitelNet|tukky_galaxy|contedelsagrato|Богдарин |Katrien79|jorgeanchovy|10 июля|vegaorion|Buxpb|settebello|Kg1239|animalonthedrums|TenaciousDFence|TheLoser|Stoemper|Стран Ник|Rix|10 июля) имеет (\d+) k$ монет и (\d+) k$ валюты карты на общую сумму (\d+)k$", линия)

если result_match: игрок, _, _, результат = result_match.groups() результат = int(результат) current_game_outcomes[игрок] = результат

для игрока, свойства в current_game_properties.items(): если игрока нет в player_property_values[current_game_number]: player_property_values[current_game_number][игрок] = 0

player_property_values[current_game_number][player] += sum(properties.values())

для игрока, результат в current_game_outcomes.items(): если игрока нет в player_final_outcomes[current_game_number]: player_final_outcomes[current_game_number][игрок] = 0

player_final_outcomes[current_game_number][игрок] += результат

если в журнале игры написано «Конец игры»: текущий_номер_игры += 1

Замените свойства в каждой игре соответствующими частотами для Celebfin. для game_number, player_values ​​в player_property_values.items(): для игрока свойства в player_values.items(): if isinstance(properties, dict): # Проверяем, являются ли свойства словарем обновленные_свойства = установить() для property_number, частота в Properties.items(): update_properties.add(частота_свойства[номер_свойства] * частота) player_property_values[game_number][игрок] = сумма(обновленные_свойства) Рассчитать рейтинг для каждой игры на основе значений частоты. для game_number, player_values ​​в player_property_values.items(): Ranked_players = sorted(player_values, key=player_values.get,verse=True) game_rankings_property[game_number] = рейтинговые_игроки

Я работаю над сценарием Python, использующим Pandas, для расчета совокупной частоты значений свойств в наборе данных игрового журнала. Набор данных включает в себя информацию об игроках, приобретении собственности и результатах в нескольких играх. Я хочу учитывать как предыдущие, так и последующие игры при расчете совокупных частот игрока "celebfin".

Текущая реализация использует совокупные частоты только для предыдущих игр, что приводит к неправильному рейтингу игрока по имени Celebfin. Проблема особенно наблюдается в рейтингах на основе частоты, где совокупные частоты не обновляются должным образом после каждой игры.

Я поделился текущим кодом и результатами, и мне нужна помощь в изменении кода, чтобы правильно учитывать совокупные частоты для Celebfin во всех играх. Мы будем очень признательны за любые идеи или предложения по решению этой проблемы.

Вернуться в «Python»