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

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

スポンサーサイト

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

将棋基礎の基礎

 今日は将棋AIの更新!!と行きたいところだけどなかなか難しくて進みません。。。現在の進行状況を報告します。

 今の予定としては、AIのことを考え駒を双方向リストで扱う予定です。将棋の場合、『駒をどう動かすか?』というのが一つの手になるので、全ての駒を双方向リストにして扱うと楽ではないかという理由(汗)

 盤面は、リバーシと同じように盤面を配列として扱う。2次元配列を使うか、1次元配列を使うかだが、配列のインデックス計算の量の考えるとやはり1次元配列のほうを使いたくなる。

 そして、盤面の周りに壁を設けるわけだけど、リバーシの場合と違って変な動きをする駒が多数存在する。『桂馬』や『飛車』『角将』に代表する『飛び駒』等である。『飛び駒』の場合はそれらを、別リストとして扱い、一歩しか動けない駒との処理を完全区別する。が、問題は『桂馬』です。桂馬は2マス先の右か左に動けるという特殊な動きをするので、壁を考えると前後に最低2マスの厚みの壁を設ける必要があることがわかる。左右の壁については、特に気にする必要がないと思うが、一応左右についても2マスの厚みの壁を設けることにする。これはタダ、縦と横のサイズを同じにしたかったという単純な理由も含まれている・・・



図13:将棋の基本盤面




今後の予定
盤面を作る
駒を双方向リストで扱う
Undo(一手戻せるようにする)

これはAIを作る時に重要になってくるポイントで、毎回駒を進めて打っていくわけだが、全ての操作を1つの盤面で行います。なぜなら、毎回盤面を作っていては重すぎてやっていられないからです。そこで、前回打った手を戻して前の盤面に戻すという操作が重要になってくる。



↓無料でクリエイター診断できます結構イイ↓

スポンサーサイト

はじめまして

私もコンピュータ将棋を作っているので、この先が楽しみです。

ところで壁の厚さですが、“歩・香車・桂馬はそこから先に移動出来ない位置には移動出来ない”というルールがあるので、厚さ1マスで充分だと思います。
実際、私は1マスで作っていますが今のところ問題は起きていません。

参考になれば幸いです。それでは。

はじめまして

コメントありがとうございます☆
あぁそっかナルホド!!
最終ラインまで来ると成らなければダメだよね・・・

ヤッパリ将棋超初心者↓↓↓
でもまじナイスアドバイスです。

リバーシの方でカナリ凄いところまでいったと自分で思っているので、将棋の方も期待してて下さい(b≧∇)

  • 2006年02月06日月
  • URL
  • 羊 #AN1TInro
  • 編集

コメントの投稿

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

トラックバック

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