長崎の仙人-時間があれば釣りにいきたい-

佐世保市を中心に釣れない釣りブログをやってます。釣れないので時事ネタなんかも扱ってます。

Excelはオセロになりますか?その2

前回からの続きです

nagasaki.hateblo.jp

今日も元気にExcelでオセロを作成していきましょう('ω')ノ

 

前回までに実装できている機能といえば、、、

・ゲームスタートボタン押下で初期盤面の作成

・ダブルクリックで石の配置

・白石と黒石を交互に配置

・盤面以外への石配置禁止

・既に石が置かれている所への石配置禁止

くらいでした

 

本日はオセロの根幹ともいえる、反転する石が存在するかどうか判定する機能を盛り込んでいきます

 

f:id:nagasaki_hermit:20190304203623p:plain

ゲームスタートボタンで初期配置の完成

f:id:nagasaki_hermit:20190304203712p:plain

ソースコードに反転する石という概念を追加

コード上では"RevStn"と記載しております

白石を置いたとき、反転対象となる石は黒石

黒石を置いたとき、反転対象となる石は白石といった感じです

新たに反転判定を行うファンクションを作成しました

左向きに反転判定を行うファンクションを"LeftRevCheck"

右向きに反転判定を行うファンクションを"RightRevCheck"と記載してます

引数として、両ファンクションに"ダブルクリックした行番号、列番号、置いた石の色、反転対象となる石の色"を渡しております

 

反転判定結果については、とりあえず"Debug.Print"でイミディエイトウィンドウへ出力するようにしています

 

ファンクションのコードは下記の通り

f:id:nagasaki_hermit:20190304204227p:plain

f:id:nagasaki_hermit:20190304204243p:plain

実際石を置いてみて判定結果を見てみましょう

f:id:nagasaki_hermit:20190304204425p:plain

ダブルクリックして石を置いてみます

f:id:nagasaki_hermit:20190304204459p:plain

イミディエイトウィンドウの判定結果はというと

f:id:nagasaki_hermit:20190304204533p:plain

なんとなくちゃんと判定できているような気がします

もう一つ石を置いてみます

次は黒石です

f:id:nagasaki_hermit:20190304204717p:plain

判定結果は

f:id:nagasaki_hermit:20190304204739p:plain

ちょっとわかりずらいですが、3~4行目が黒石の判定結果です

※1~2行目は白石の判定結果

判定自体は問題なく行えてそうですね

とはいっても、まだ実際反転する機能は組み込めてません

判定するだけです

また、オセロは左右の反転だけではないのでゲームとしては当然まだまだ未完成品といったところです(; ・`д・´)

 

次回は上下の反転判定機能と実際に裏返しちゃう機能を盛り込めればいいかなと思っております( *´艸`)