二人用将棋
先手番を完成させたら後手番を作るのは簡単でした。トラブルというのは思いもかけないところから出てくるもので、先手番を完成させるまでが大変だったんですが。写真の左下のは成った後の駒をあらわしていて、"个"は歩が成ったもの、"仝"は香車が成ったものです。
後は細かいところを調整すれば「Excelで遊べる将棋」の完成だ!(←っておい)。手直しすべきところはこんな感じ。
- 先手と後手をもっとはっきり区別したい。
- カーソル移動が遅い。
- 使うボタンを減らす。
- 棋譜を出力できるようにしたい。
- 盤面を保存できるようにしたい。
カーソルを移動させるためにフォームのボタンを使っていて、
Private Sub Up_Click()
Rowpos = Rowpos - 1
Cells(Rowpos, Colpos).Select
End Sub
みたいなにしているのだけど、非常に動きが遅い。どうにかしないとちょっと実用に耐えないと思う。確かキーの押下を感知する方法があったはずなので、それを試してみようか。もしくはscreen updateをオフにしてみるか。
もうそろそろまじめにCOMの思考方法を考えていかなければならない。一体どうすればいいのか見当もつかないんですが、今考えているのは次のような方法。
- 全部の駒が移動できるマスを数える(赤いマスの数)
- 取れる駒の数を数える(黄色いマスの数)
- 相手の黄色と赤のマスも数える。
- 自分のマスの数から相手の数を引いて、それを点数にする。
- 全ての駒を一手動かしてみて、一番点数が高いのを選ぶ。
う〜ん、本当にここまでやれるのか?