Skip to main content

aiwolf-nlp-json-converter

Project description

aiwolf-nlp-json-converter

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

対象者

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

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

インストール方法

以下のコマンドでインストールできます。

pip install aiwolf-nlp-json-converter

[!WARNING] aiwolf-nlp-json-converter==0.2.0, aiwolf-nlp-common==0.3.5であることを確認してください。

使い方

ゲームサーバから受け取った文字列の情報をそのまま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.3.0.tar.gz (8.8 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.3.0-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for aiwolf_nlp_json_converter-0.3.0.tar.gz
Algorithm Hash digest
SHA256 65067c8341d2ec966cccb012a3d1cc0d833c834977127402800d0edc65987362
MD5 86b4dd265b3bbea1ac7254e273f05a15
BLAKE2b-256 b3ff68bcc2da6951672f3c68a73ac7d27496a43a04a1cc1380682853c3f52acc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiwolf_nlp_json_converter-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 25a5e9e858687502111c9a38dc84a4b2946c1c6ecbf29752b09ed114e4e3bd86
MD5 cd7cd8e9b64eabe113aff9f8cf6e2e52
BLAKE2b-256 761377ca5927be1febf4d23f611693e827ad8b12fae35e94b9ae12e5b752359e

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