将棋を一手指すことに成功 2011/11/27

2011-11-27 21:58:02

2011年11月27日の夜の 8時過ぎ、自作中のコンピュータ将棋プログラムで一手指すことに成功しました。

最初の実行ファイルを作成したのは 11月23日のことですが、将棋で一手指すことが出来るようになるまでに意外に多くの日数がかかってしまいました。

ちなみに、思考処理は未実装で、現在は無条件に最後に生成した手を選択しています。
しかも、「一手指した後に盤面のデータを更新する処理」を作ってないため、一手目と同じ手を指そうとして反則負けしてしまいます。

指し手の生成関係で未実装の部分は、以下の通りです。

  • 王手がかかっている場合の処理
  • 飛び駒の効きで動きが制限される駒の処理
  • 打ち歩詰めのチェック処理
  • 駒の効きの部分更新処理

    • 上記のうち、「飛び駒の効きで動きが制限される駒の処理」については、既に一度コードを書いたのですが、この数日でデータ構造を大きく変更したため、書き直す必要があります。

      駒の効きの部分更新については、「ルール通りに将棋を指すだけのプログラム」を作ることを考えるなら、作成不要です。
      ただ、当面の優先度は低いですが、高速化のためには避けて通れない問題です。

      とりあえず、目先は未実装の処理のうち、最初の 3点について作業するつもりです。