グローディアのサービス一覧はこちら
 

Excel VBAでチェスをつくってみよう(初心者向け)その1

こんにちは。
今年の4月からエンジニアになった者です。日々奮闘中。

簡単なゲームでもつくってみようかとおもいます。


Excelで。


なににしよう。
チェスにしてみよう。簡単そうな気がする。

まずはシートで初期画面をつくりましょう。


画像を貼ってもいいですが面倒なので漢字にしてみました。
なんだか将棋みたいですが、将棋は駒を奪われて使われる処理がめんどくさそうなので
このままチェスでいきます。

書くプログラムは大きく分けて2つです。

・駒を移動するプログラム
・画面を初期化するプログラム(はじめから)

ではまず、駒を移動するプログラムを書いていきましょう。

動作タイミングは、「ワークシートの選択セルが変更された時」=
Worksheet_SelectionChangeです。


これこれ。

次に、「選択セルの変更」の動作パターンを細分化します。

・自分の駒を選択→移動可能場所表示
・それ以外を選択→何もしない(プログラム終了)

また、「自分の駒が選択され移動可能場所が表示された状態」で
・移動可能場所を選択→移動
・それ以外を選択→なにもしない(プログラム終了)
も、あるとおもいます。

さらに、この時点で
・「どちらのターンか」=「自分の駒」とは何色なのか
・6種類の「自分の駒」
も判別したいです。

文章だとよくわからないですが、試しに、「もし白のターンに白のポーンを選択したら」まで
書いてみましょう。(初期位置の場合)



実行結果(H8セルを選択)


なんかすごくダサイですけどまぁいいか。。。

「後ほどPublic化」とのコメントがありますが、
「はじめから」で実装しようとしている部分で、今は仮です。

じゃないと
ずっとオレのターン
になりますからね!!

ここまで書いて、更にやらなきゃいけないことが見えてきました。
・枠外へ移動できない処理
・移動可能範囲に他の駒がある場合の飛び越えられない処理
・ポーンの挙動(初期位置からは2マス、それ以外は1マス、斜め前に敵がいる場合・・・)

つかれたので、今回はここまでにしましょうか。
次はいつになるかわかりませんが・・・。ではまた次回!

(ていうか簡単そうだと思ってチェスにしたけどなかなか大変そうだぞこれ・・・)

※記事の内容は保証はしておりません(執筆時期や実施環境により挙動が変わるものがある為)。
別途検証してご利用いただくことをおすすめいたします。

グローディアのサービス一覧はこちら