salt

Results 7 issues of salt

benchmark.py ```py from pgx._mahjong._mahjong2 import ( Mahjong, _discard, _selfkan, _riichi, _tsumo, _ron, _pon, _minkan, _pass, ) import jax import time import sys # func(state, action) functions1 = {"_discard": _discard, "_selfkan":...

## できていること - [x] データクラスの実装 - [x] draw - [x] discard - [x] riichi - [x] pon - [x] chi - [x] kan - [x] カンドラ - [x] 終局処理 -...

残り - [x] リーチ横向き - [ ] ツモ一番右に - [x] 鳴かれた牌半透明 - [x] 中央の情報

現状可視化時の牌はフォント(GL-MahjongTile)をbase64形式にしてsvg内に埋め込むことで表示しているが、これは不安定で、 - [Cairosvg](https://cairosvg.org/) - [svglib](https://github.com/deeplook/svglib) などの変換ツールでpng形式にうまく変換できない。 https://danmarshall.github.io/google-font-to-svg-path/ これを用いて牌一つひとつの画像を作ってしまえば、svg画像内にフォントを埋め込む必要がなくなる。

[pymahjong](https://github.com/Agony5757/mahjong/tree/master/pymahjong)にて用いられている特徴量をmjxでも考える。 定義:[ここ](https://github.com/Agony5757/mahjong/blob/master/pymahjong/observation_action_explanation.pdf) 日本語版 |index|定義| |:----|:----| |0|その牌が手牌に1つ以上含まれている| |1|その牌が手牌に2つ以上含まれている| |2|その牌が手牌に3つ以上含まれている| |3|その牌が手牌に4つ含まれている| |4|その牌をこのゲーム内で捨てている(リーチ直後も含む)| |5|その牌が赤牌で、手配に含まれている| |6|その牌が副露に1つ以上含まれている| |7|その牌が副露に2つ以上含まれている| |8|その牌が副露に3つ以上含まれている| |9|その牌が副露に4つ含まれている| |10|その牌が他人の河から拾ったもので、副露に含まれている| |11|その牌が赤牌で、副露に含まれている| |12|その牌が下家の副露に1つ以上含まれている| |13|その牌が下家の副露に2つ以上含まれている| |14|その牌が下家の副露に3つ以上含まれている| |15|その牌が下家の副露に4つ含まれている| |16|その牌が他人の河から拾ったもので、下家の副露に含まれている| |17|その牌が赤牌で、下家の副露に含まれている| |18|その牌が対面の副露に1つ以上含まれている| |19|その牌が対面の副露に2つ以上含まれている| |20|その牌が対面の副露に3つ以上含まれている| |21|その牌が対面の副露に4つ含まれている| |22|その牌が他人の河から拾ったもので、対面の副露に含まれている| |23|その牌が赤牌で、対面の副露に含まれている| |24|その牌が上家の副露に1つ以上含まれている|...

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 #...

#972 と同じようなものを、ブラウザ上で操作できるようにする。 すなわち、盤面と選択肢を表示し、入力を受け取ってゲームを進める動きを作る。