Проблема заключается в точном обновлении совокупной частоты приобретения собственности игроком в каждой игре и расчете р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 во всех играх. Мы будем очень признательны за любые идеи или предложения по решению этой проблемы.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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