sakurapyon’s blog

sakurapyon’s blog

指し手にどんな情報を含めるべきか?

1から作ると自分が納得できるように書けるんだけど、自分でも悩んでいるところが書きにくい。
(れさぴょん流用のときは悩まずに済んだわけで、その意味でもライブラリには価値がありますね)

  • 駒はunsigned
  • 32bit に pack (64bitは止めた)
  • 6..0bitに移動先
  • 13..7bitに移動元
  • 14bitに成り

ここまではすんなり決まったけど、残りが難しい。

  • 移動する駒/取った駒は駒種だけでいいか、プレイヤー情報も入れるか?
    • 入れておくと、手情報だけで先後も表示できるからデバッグは楽
    • れさぴょんは両方とも入れている。bonanzaは両方なし。
  • 打つ場合、打つ駒の情報はどこに入れるか?
    • 移動元+80?
    • れさぴょんはfrom=0にしてるけど、座標に0を使ってる場合はこの手は使えない

連続していた方がうれしいbitってのもあるから難しいんだよなあ。

chessなんかだと、駒種すら持たないものもあるようだけど(どうせ盤面にあるからFrom/Toから生成できる)、ちょっと試したらデバッグが大変だったので止めた。かなりbit数を減らせるんだけどね。