羊の人工知能研究 ~将棋AI開発の日々~

将棋、リバーシのAIプログラミングを中心にその開発過程及び記録を頑張って更新していきます。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

1次元配列の盤面表現

 今回は1次元配列のときの盤面表現についてです。

 1次元配列の場合は次の図5のように8×8の盤の回りに2次元配列の時とは少し違った歪な形の壁を設けます。



図5:1次元配列の盤面表現


 この歪な形の壁にはちゃんとした意味があります。次の図6のように1次元配列で盤面を表現した場合、配列の番号は0~90の合計91の要素を持つ配列を宣言することになります。



図6:1次元配列の配列要素番号


 上の図6より、次のことがわかります。ある点、例えば配列番号50から見て、左上は40であり-10した番号になると思います。同じように上は-9、右上は-8・・・右下は+10という風になり、これをまとめると下の図7のようになります。



図7:8方向への配列番号の増分


 ここで、これで本当に機能するのかと疑問に思った方もいるんじゃないでしょうか?

 例えば、配列番号44(H4)について考えてみみようと思います。左上,上,左、左下,下方向については-10,-9,-1,+8をすると,34(G3),35(H3),43(G4),52(G5),53(H5)であり、問題ありません。残りの右上,右,右下方向についても同じように考えてみます。各-8,+1,+10をすると、それぞれ36(壁),45(壁),54(壁)であり、正常に壁が機能していることがわかります。



参考ソースファイル
board2.h [DL]
board2.c [DL]




↓読んだらクリックお願いします↓

スポンサーサイト

コメントの投稿

URL
コメント
パスワード
秘密
管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://hitsujiai.blog48.fc2.com/tb.php/3-74e29b1c
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。