二人用将棋

先手番を完成させたら後手番を作るのは簡単でした。トラブルというのは思いもかけないところから出てくるもので、先手番を完成させるまでが大変だったんですが。写真の左下のは成った後の駒をあらわしていて、"个"は歩が成ったもの、"仝"は香車が成ったものです。
後は細かいところを調整すれば「Excelで遊べる将棋」の完成だ!(←っておい)。手直しすべきところはこんな感じ。

  1. 先手と後手をもっとはっきり区別したい。
  2. カーソル移動が遅い。
  3. 使うボタンを減らす。
  4. 棋譜を出力できるようにしたい。
  5. 盤面を保存できるようにしたい。

カーソルを移動させるためにフォームのボタンを使っていて、

Private Sub Up_Click()
Rowpos = Rowpos - 1
Cells(Rowpos, Colpos).Select
End Sub

みたいなにしているのだけど、非常に動きが遅い。どうにかしないとちょっと実用に耐えないと思う。確かキーの押下を感知する方法があったはずなので、それを試してみようか。もしくはscreen updateをオフにしてみるか。
もうそろそろまじめにCOMの思考方法を考えていかなければならない。一体どうすればいいのか見当もつかないんですが、今考えているのは次のような方法。
 

  1. 全部の駒が移動できるマスを数える(赤いマスの数)
  2. 取れる駒の数を数える(黄色いマスの数)
  3. 相手の黄色と赤のマスも数える。
  4. 自分のマスの数から相手の数を引いて、それを点数にする。
  5. 全ての駒を一手動かしてみて、一番点数が高いのを選ぶ。

 
う〜ん、本当にここまでやれるのか?