私はまだまだプログラミングについて学んでいる身で発展途上の段階です。
わかってらっしゃる方にとっては釈迦に説法ではあると思いますが、自分の学びの軌跡として、記事にしています。
なのでほんとに、自己満でしかないです。説明も不足しがちで、よくわからない文章になっているかも笑
それでもこの記事でエクセルのvbaに興味を持ってくれたら、とても嬉しいです。
オセロって簡単なルールで戦略が奥深く、広く人々から親しまれているゲームであるが、これをゲームとして動かすのにどのようなプログラミングが必要なのだろうか?
今回はエクセルのvbaで作成するということで、考えてみます。
あれ、エクセルのvbaのコードってどうやって開くんだ!??
いろいろ調べていると、なにやらシートの名前のところを右クリックしたら「コードを表示する」があり、そこから編集できるようだ。
private sub worksheet selection change〜〜〜
この英語と英語の間に書き込めば、セルをクリックすると起動するプログラムを作成できるぞ!
End sub
また、何か図形を挿入し、その図形をクリックしたらプログラムが開始するものも作れるぞ!
それじゃあ、試合開始ボタンを作って、それをクリックしたら、盤面がリセットされて、試合が始められるようにするプログラムを作ろうか。
ゲームを開始するとき、最初に先手後手を決めたいな。
ここは、ランダムでするのか、あらかじめどちらか一方が先手と固定して始めるのか、、、楽なのはこちらで決めておく方だろうね笑
最初は白からスタートすることにしよう。
現在白の番なのか、黒の番なのかパソコン側がわかっていないと、判断ができなくなるので、白黒がわかる変数を用意したい。
vbaでは、変数を定義することで使えるようになる。
Dim sirokuro as long
このように打つと、sirokuroという名前の変数が使えるようになる。
As longはlong型(一般的な数のこと)の変数を使うという意味です。
じゃあ、ー1をかけると白黒に入れ替えやすいという利点を活用して、白なら1、黒ならー1としておく。
人間がオセロする時は、今どこに自分のコマが置けるのかについて、パパッと見当をつけて探せるのだが、コンピュータはそうはいかない。機械はクソ真面目なので、見当をつけるとか曖昧なものは存在しないのだ。もう全てのマスについて、「置けるのか置けないのかどっちなんだい!?」判定をしてもらう必要がある。
さて、全てのマスを自動的にチェックしてくれるようにするには、どのように命令すればよいだろう、、、
ここで便利なのがfor構文だ!これは決められた回数だけ同じ作業を繰り返す命令だ。
Vbaといえばこのfor構文でしょう!めっちゃ使えます。
今日はここまで、次回はfor構文についてもう少し詳しくお伝えできたらと思います。
ではでは。