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

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

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

前回からの続きです

nagasaki.hateblo.jp

 

Excelはオセロになりますか?第3弾でございます

前回は"左右"方向の反転判定まで実装が完了しました

今回は挟んだ石を実際に反転させることと、"上下"方向の反転判定及び石の反転を実装していきたいと思います

 

挟んだ石を反転させたい

前回は「置いた石」の左方向に反転する石があるか?判定まで可能になりました

今回は実際に反転するための機能を実装していきます

f:id:nagasaki_hermit:20190308202451p:plain

ドゥカウント(DoCnt)の実装

DoCntは「Do While~Loop」まで何度ループしたか?を格納する変数です

ループした回数というのは、"自分の石と石"の間に何個"相手の石"があるかをそのまま表しているためこれを使用します

For j = 1 to DoCnt ~ Next j で DoCnt分相手の石を反転させましょう

Cells(click_row,click_column - j).value = Stn

左方向への反転のため、click_columnから j を引いてあげることが重要です

右方向であれば、click_columnに j を加える

上方向であれば、click_rowに j を引くといった形で実装が可能です

 

右方向へも反転を実装する

ファンクション自体は前回までに作成していたため、赤線で囲った箇所を追記していきます

f:id:nagasaki_hermit:20190308203831p:plain

 

上方向への反転実装

新規ファンクション(UpRevCheck)を作成していきます

f:id:nagasaki_hermit:20190308204116p:plain

 

下方向への反転実装

新規ファンクション(DownRevCheck)を作成していきます

f:id:nagasaki_hermit:20190308204221p:plain

新規ファンクションを呼び出す構文を付け加える

f:id:nagasaki_hermit:20190308205315p:plain

今回追加したのは"UpRevCheck"と"DownRevCheck"です

これにて構文は完了なので、実際に反転するのか見ていきます

 

f:id:nagasaki_hermit:20190308205432p:plain

 

実際に石を置いてみましょう

f:id:nagasaki_hermit:20190308205504p:plain

 

ちゃんと反転しています!(^^)!

 

f:id:nagasaki_hermit:20190308205546p:plain

 

上方向も見ていきます

f:id:nagasaki_hermit:20190308205627p:plain

 

きちんと反転してますね('ω')ノ

 

上下左右の反転はこれにて完了です!

斜め方向はまた気が向いたら実装しましょう

需要はないかと思いますがこれまでのソースコード全文は次回記事で公開します

Excelオセロはまだまだ未完成です

斜め方向の反転は未実装ですし、今は盤面であればどこにでも石を置くことができます

そのためこんな戦略を取ることも可能です

f:id:nagasaki_hermit:20190308210256p:plain

初手四隅!!