CitronStudio / Mahjong

Mahjong
0 stars 0 forks source link

mahjong #2

Open CitronStudio opened 1 year ago

CitronStudio commented 2 weeks ago

この部分のコードは、ゲームごとのプレイヤーのテーブル配置を記録し、それをピボット解除して再ピボットすることで、各プレイヤーの各ゲームでのテーブル配置を整理して表示する処理です。以下に、コードの各部分とその意味について詳しく解説します。

データフレームの作成

# ピボット解除して再ピボットするためのデータフレームを作成
columns = ['Game', 'Table', 'Player']
df = pd.DataFrame(game_records, columns=columns)

game_records には、各ゲームのテーブル配置が記録されています。このデータを使ってデータフレーム df を作成します。このデータフレームには、各ゲーム (Game)、テーブル (Table)、およびプレイヤー (Player) に関する情報が含まれます。

各プレイヤーのテーブル配置を追跡

# 各プレイヤーの各ゲームごとのテーブルを追跡
player_tables = {}
for game, table, player in game_records:
    if player not in player_tables:
        player_tables[player] = {}
    player_tables[player][f'Game{game}'] = table

ここでは、game_records をループして各プレイヤーのテーブル配置を追跡します。

再ピボット

# 再ピボット
df_pivot = pd.DataFrame.from_dict(player_tables, orient='index').fillna('')

player_tables を再ピボットするためにデータフレームを作成します。

プレイヤーを昇順にソート

# プレイヤーを昇順にソート
df_pivot = df_pivot.sort_index()

データフレーム df_pivot のインデックス(プレイヤー番号)を昇順にソートします。これにより、プレイヤー番号が1から順に並んだ状態で表示されます。

最終表示

# 表示
print(df_pivot)

最終的に、ソートされたデータフレーム df_pivot を表示します。これにより、各プレイヤーが各ゲームでどのテーブルに配置されたかを確認できます。

関数の使い方

これらの関数を組み合わせることで、プレイヤーの各ゲームでのテーブル配置を整理し、見やすい形式で出力しています。