mjx
mjx copied to clipboard
Mjx: A framework for Mahjong AI research
cf. #1012 ```py # serve.py import agent rulebased_agent = agent.RuleBasedAgent() rulebased_agent.serve("127.0.0.1:9090", 1, 0, 0) ``` ```py # serve2.py import agent human_control_agent = agent.HumanControlAgentOnBrowser() human_control_agent.serve("127.0.0.1:9091", 1, 0, 0) ``` ```py #...
例えば、いまprotobufを更新すると、mjx-mjai-translatorのテスト資材を毎回更新しなおしている。 これはバグが入りやすいし、面倒なので、テスト資材を生成するようのdeterministicなコードを追加する。
# 気になっている点 - [x] `Agent.TakeAction` - [x] `ACTION_TYPE_NO` - [x] `draw_history` - [x] `NoWinner` 実際、三家和了のときはNoWnnerといっていいのかよくわからない。Drawとしても混乱はなさそうか。 - [x] `game_id` in `Action` - [x] `Event` と `Action` の要素の並び順が違う - [ ] roundという単語はよくないかもしれない(東場、南場の意味で使われる)...
なぜかソースからビルドしはじめるので、grpcとかダウンロード・ビルドし始めて時間がめちゃかかる
いちいち `id()` を呼ぶのは煩雑 https://stackoverflow.com/questions/3238350/subclassing-int-in-python
現状、 `legal_actions` が設定されておらず、不適切。
obs_dictを可視化するときなどが不便
#972 と同じようなものを、ブラウザ上で操作できるようにする。 すなわち、盤面と選択肢を表示し、入力を受け取ってゲームを進める動きを作る。
mjaiとの速度比較で、mjaiは通信待ちしている時間が長いので、それとの比較検証という意味でもこちらもgRPCを使ってみる