【VBA】エクセル将棋

エクセル将棋作ってみた

エクセルVBAを覚え始めて1年ほどの腕試しで、シェイプを使った将棋を作ってみた。

まずは人対人の対戦が出来るように作ってみて、
唯一躓いたのはシェイプのペーストエラーが出る時と出ない時があって困った。

セルの文字を動かすエクセル将棋はよく見かけるので
シェイプを動かして駒を持ち上げる表現をつけるだけで面白くなった。

将棋は簡単なルールが分かるくらいなので、
打ち歩詰めとか他にも知らないところで実装できていない部分もあり。

相手駒も自分で動かす将棋はなんとなく出来た。

最弱レベルのコンピュータ対戦

次にコンピュータ対戦は出来るのかちょっとだけ作ってみた。

AIと呼べるものではなく、ただランダムに指すだけ。
取れる駒があったら必ず取る、なければ完全にランダムという設定なら可能。

なんとなくそれっぽい手を指す時もたまにはあるかも。。


一手先まで読むくらいは作れそうだけどそれではそこまで強くないし、
これ以上は難しそうなため、いったんここまでとした。

駒をクリックした時の処理

シェイプクリック時の処理を分岐させている。

駒を選択状態にする
→駒を浮かす表現(少し上に移動して影を付ける)

駒がすでに選択状態だったら

・選択状態と同じ駒をクリック
 駒選択キャンセル
 →駒を浮かす表現を元に戻す

・選択状態の駒以外をクリック
 ・相手駒の取れる駒だったら
  駒を取る
  →自身駒として持ち駒台に移動
 ・それ以外の駒だったら
  何もしない

作ってみて

プログラム自体は作るのはそんなに難しところはなかったが、
将棋はルールだけ分かる程度だったので調べていたら将棋自体に興味が出てきた。

将棋ウォーズやってみようかな!


【読書する人】

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA