手番をbooleanではなくnumberで表現するよう変更する
na2hiro opened this issue · comments
内容
- 先手をtrue,後手をfalseで表しているが,これを先手を0,後手を1で表すように変更する.
理由
- 対局者は真偽ではなくenumで表すのが自然であり,enumはnumberと1対1対応が取られるのが普通.
- 実際,handsは0番目が先手,1番目が後手の持駒を保持する配列である.
- Shogi.jsでも先手を0,後手を1としている.(jkfの先手trueとShogi.jsの後手1が互いにキャストされうるので両方を触るプログラムにおいてバグの原因になる)
- 将来3人以上のプレイヤーが存在するルールへの対応も可能になる.
今後の対応
- 現在browserifyブランチでテストの記述 #17 が進んでおり,曖昧だった実装・仕様が固まりつつある.ここで手番をnumberに変更する.テストを十分に記述できこのブランチがmasterにマージされた時点でバージョン1.0.0としてリリースする.
- 古いJKFファイルに向け,手番の場所に真偽値が入っている場合はconsole.warn等で警告を出力しつつ,これまでの仕様として解釈する.またNormalizerはこれをnumberに修正する.