ENGLISH | JAPANESE

ゲームログの保存と表示

2015/09/23

ゲームログは,コンソールに出力される以外に,ログファイルに出力することが出来ます.
AIWolfGameを実行する際に,以下のように設定すれば,ログファイル(この例では,PathToLogFile)にゲームログが出力されます.

File logFile = new File(PathToLogFile);
AIWolfGame game = new AIWolfGame(gameSetting, gameServer);
game.setRand(new Random(gameSetting.getRandomSeed()));
game.setLogFile(logFile);
game.start();

ただし,コンソールログとは異なる形式なのでご注意ください.

0,status,1,WEREWOLF,ALIVE,GofukuLab
0,status,2,VILLAGER,ALIVE,IPA
0,status,3,MEDIUM,ALIVE,wasabi
0,status,4,BODYGUARD,ALIVE,饂飩
0,status,5,POSSESSED,ALIVE,Y・Y
0,status,6,WEREWOLF,ALIVE,Team Fenrir
0,status,7,VILLAGER,ALIVE,itolab
0,status,8,VILLAGER,ALIVE,iace10442
0,status,9,VILLAGER,ALIVE,CanvasSoft
0,status,10,SEER,ALIVE,働きの悪い村
0,talk,0,2,Skip
0,talk,1,3,ESTIMATE Agent[04] VILLAGER
0,talk,2,10,VOTE Agent[01]
0,talk,3,1,Over
0,talk,4,8,Over
・・・

のような形式になります.
csv形式で,一行が一つのログとなっています.
最初のカラムが日にち,次が行動の種類を表し,その次以降は行動に依存します.
具体的な内容は以下の通りです.

行動タイプ 内容 データ
status 各プレイヤーの状態 日付.status,PlayerID,役職,生存,プレイヤー名
talk 発話 日付,talk,talk_id,話者ID,発話内容
whisper ささやき 日付,whisper,whisper_id,話者ID,ささやき内容
vote 追放投票 日付,vote,投票者ID,投票先ID
attackVote 襲撃先投票 日付,attackVote,投票者ID,襲撃先ID
divine 占い先指定 日付,divine,占い師のID,占い対象ID,結果
guard 護衛先指定 日付,guard,ボディーガードID,護衛対象ID,護衛対象の役職
execute 追放結果 日付,execute,追放者ID,追放者役職
attack 襲撃結果 日付,attack,襲撃先ID,襲撃の成否
result ゲームの結果 日付,result,村人生存数,人狼生存数,勝利陣営

ログのテキストだけ見るのは大変なので,ログビュアも作成しました.
logViewer-0.2.6.zip
こちらをDLして,
Windowsの方はLogViewer.exe
Mac,Linuxの方は,LogViewer.sh
を実行してください.
LogViewer
のようなWindowが開きますので,ログファイルをDrag&Dropしてください.
ログをGUIで確認することが出来ます.
LogViewerLogSample

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です