オセロ制作の続きです。


書いてて薄々思っていたのですが、これを読んでオセロのプログラミングが作れるとかではないです。細かいvbaの基本とかは、省略しているので、基礎知識ない人にとってはさっぱりわからないし、普通に知ってる人にとっては、特におもしろみもないです。


自分でプログラミングしてみて考えたことを記録しているだけです。


For文を使って、オセロで使われる全てのセルについて作業を繰り返すプログラミングを作ることができました。


指定したセルについて判断するためのプログラミングを考えていきます。


場合分けとしては、何もコマが置かれていない空白のセル、黒のコマがが置かれたセル、白のコマが置かれたセルの3パターンとなりますね。


さらに条件を判断するためには、今、黒か白のどちらがコマを置く番なのか知る必要があります。


そのために変数を定義します。定義の仕方として、黒なら1を、白なら-1にしておきます。こうすると、変数に-1をかけるだけで黒と白を入れ替えることができて便利です。


If文は基本的に


If 条件 then

作業内容1

Else

作業内容2

End if


と書けば動きます。これは、


もし条件に当てはまっていた場合

作業内容1を作動する

そうでなければ作業内容2を作動する


ということをコンピュータに伝えています。


elseの後の作業内容2は無ければ省略しても大丈夫です。その場合は、条件に当てはまっていなければ何もせず終了することになります。


必ずend ifで締め括らないと、エラーが出て怒られます。


最初の条件として、セルが空白かそうでないかを判定します。


コマは文字の「●」を使い、そのフォントカラーで白黒を表現します。だから条件は、そのセルに●があるかないかです。


If Target.value=‘’ then


これで、指定したセルが空白であるかという条件を表せます。


そして、この条件に当てはまった時に、さらに条件分岐します。それが


If a=1 then

もし、今の番が黒なら


例えばこんなかんじです。(aは変数の文字として定義してます)


これにも当てはまったら、


このセルからタテヨコナナメの全8方向に向かってひっくり返せるものをあぶり出し、ひっくり返していきます。


この辺りが、オセロゲームプログラミングの1番悩ましいところだと思います。


続く