Skip to main content

aiwolf-nlp-json-converter

Project description

aiwolf-nlp-json-converter

人狼知能コンテスト自然言語処理部門は2024冬季 国内大会からゲームサーバの変更を行いました。
これに伴い、情報伝達を行う際に旧サーバプログラムとは異なるJsonが使用されるようになりました。
このプログラムは新規サーバプログラムから伝達される情報を旧サーバプログラムから伝達される情報に変換するプログラムです。

対象者

人狼知能コンテスト2024冬季以前に人狼知能コンテスト(自然言語処理部門)の大会に参加された方で、過去のプログラムを流用したい方。

[!WARNING] このプログラムは2024冬季大会の開催告知から開催までの期間が短いため作成しました。
今後のアップデートや2025年春大会以降の13人人狼に必要な情報に対応しない可能性があります。

使い方

ゲームサーバから受け取った文字列の情報をそのままAIWolfNLPJsonConverterに渡すことで、旧ゲームサーバから伝達される情報に変換します。

from aiwolf_nlp_json_converter import AIWolfNLPJsonConverter

recv:str = """{"request":"INITIALIZE","info":{"day":0,"agent":"Agent[05]","statusMap":{"Agent[01]":"ALIVE","Agent[02]":"ALIVE","Agent[03]":"ALIVE","Agent[04]":"ALIVE","Agent[05]":"ALIVE"},"roleMap":{"Agent[05]":"VILLAGER"}},"setting":{"playerNum":5,"maxTalk":5,"maxTalkTurn":20,"maxWhisper":5,"maxWhisperTurn":20,"maxSkip":0,"isEnableNoAttack":false,"isVoteVisible":false,"isTalkOnFirstDay":true,"responseTimeout":120000,"actionTimeout":60000,"maxRevote":1,"maxAttackRevote":1,"roleNumMap":{"BODYGUARD":0,"MEDIUM":0,"POSSESSED":1,"SEER":1,"VILLAGER":2,"WEREWOLF":1}}}"""
json_data = AIWolfNLPJsonConverter.get_json_dict(received_str=recv)

print(type(json_data))
print(json_data)

結果

<class 'dict'>
{'request': 'INITIALIZE', 'gameInfo': {'agent': 'Agent[05]', 'attackVoteList': [], 'attackedAgent': None, 'day': 0, 'divineResult': None, 'executedAgent': None, 'lastDeadAgentList': [], 'roleMap': {'Agent[05]': 'VILLAGER'}, 'statusMap': {'Agent[02]': 'ALIVE', 'Agent[04]': 'ALIVE', 'Agent[01]': 'ALIVE', 'Agent[03]': 'ALIVE', 'Agent[05]': 'ALIVE'}, 'voteList': []}, 'gameSetting': {'enableNoAttack': False, 'enableNoExecution': False, 'maxAttackRevote': 1, 'maxRevote': 1, 'maxSkip': 0, 'maxTalk': 5, 'maxTalkTurn': 20, 'maxWhisper': 5, 'maxWhisperTurn': 20, 'playerNum': 5, 'roleNumMap': {'SEER': 1, 'VILLAGER': 2, 'MEDIUM': 0, 'BODYGUARD': 0, 'POSSESSED': 1, 'WEREWOLF': 1}, 'talkOnFirstDay': True, 'responseTimeout': 120, 'actionTimeout': 60, 'voteVisible': False}, 'talkHistory': [], 'whisperHistory': []}

対応していないキー

旧ゲームサーバから与えられる情報の内、本プログラムではいくつか含まれていない情報が存在します。
下記に詳細を記載しますので、ご確認の上ご使用ください。

ゲームの現状態を示す情報 (gameInfo)

  • cursedFox: 妖狐は5人、13人人狼で使用しない予定の役職なので対応していません。
  • englishTalkList: 過去にここに割り当てられていた内容がTalkListと同一であったため、不要と判断し対応していません。
  • existingRoleList: gameSettingroleNumMapから把握できる内容であるため不要と判断し対応していません。
  • guardedAgent: 騎士は5人人狼で使用しない予定の役職なので対応していません。
  • latestAttackVoteList: 5人人狼において使用されない項目の上、attackVoteListから確認できる内容であるため不要と判断し対応していません。
  • latestExecutedAgent: executedAgentの値から確認できる内容であるため不要と判断し対応していません。
  • latestVoteList: voteListから確認できる内容であるため不要と判断し対応していません。
  • mediumResult: 5人人狼において使用されない項目であるため不要と判断し対応していません。
  • remainTalkMap: 旧サーバにおいてINITIALIZE,DAILY_INITIALIZEでのみ付与されていた情報である上、maxTalkから取得可能な内容であるため不要と判断し対応していません。
  • remainWhisperMap: 5人人狼においてwhisperは行われないため不要と判断し対応していません。
  • talkList: 旧サーバにおいてINITIALIZE,DAILY_INITIALIZEでのみ付与されていた情報である上、talkHistoryから取得可能な内容であるため不要と判断し対応していません。
  • whisperList: 5人人狼において使用されない項目であるため不要と判断し対応していません。

ゲームの設定を示す情報 (gameSetting)

  • enableRoleRequest: 新サーバにおいて削除された機能であるため対応していません。
  • validateUtterance: 新サーバにおいて削除された機能であるため対応していません。
  • votableInFirstDay: 大会において初日は挨拶の日であり、その人に投票は行わないため対応していません。
  • whisperBeforeRevote: 5人人狼において使用されない項目であるため不要と判断し対応していません。

注意点が存在するキー

旧ゲームサーバから与えられる情報の内、本プログラムでは情報が少し変形された格納されている情報が存在します。
下記に詳細を記載しますので、ご確認の上ご使用ください。

ゲームの設定を示す情報 (gameSetting)

  • responseTimeout: ゲームサーバからはmsで渡されますが、本プログラムを使用した場合、sに変換されて返却されます。
  • actionTimeout: ゲームサーバからはmsで渡されますが、本プログラムを使用した場合、sに変換されて返却されます。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiwolf_nlp_json_converter-0.1.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiwolf_nlp_json_converter-0.1.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file aiwolf_nlp_json_converter-0.1.0.tar.gz.

File metadata

File hashes

Hashes for aiwolf_nlp_json_converter-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ceb4642dc94ac95b9f67da14a843fa61f1d13102873e46a24e72d460dff2903d
MD5 56c1e8de79c7d2e6bc9a77cf544feb3f
BLAKE2b-256 5c70402ea7d00565d0fbe5e2f41ef5f6f1c4f0c76792636ebbc4273da797890f

See more details on using hashes here.

File details

Details for the file aiwolf_nlp_json_converter-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aiwolf_nlp_json_converter-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d5289811274d88803e81697d951760f677a699642d63d0a9b42151611f4ad12f
MD5 b9b0fba5e419a3f5220b5210cc3d4f3f
BLAKE2b-256 26e03fc6b201e2b4fbf6d376ae1632628acf54b798cb458bf4382488dba80413

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page