Excelはオセロになりますか?その3
前回からの続きです
Excelはオセロになりますか?第3弾でございます
前回は"左右"方向の反転判定まで実装が完了しました
今回は挟んだ石を実際に反転させることと、"上下"方向の反転判定及び石の反転を実装していきたいと思います
挟んだ石を反転させたい
前回は「置いた石」の左方向に反転する石があるか?判定まで可能になりました
今回は実際に反転するための機能を実装していきます
ドゥカウント(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 を引くといった形で実装が可能です
右方向へも反転を実装する
ファンクション自体は前回までに作成していたため、赤線で囲った箇所を追記していきます
上方向への反転実装
新規ファンクション(UpRevCheck)を作成していきます
下方向への反転実装
新規ファンクション(DownRevCheck)を作成していきます
新規ファンクションを呼び出す構文を付け加える
今回追加したのは"UpRevCheck"と"DownRevCheck"です
これにて構文は完了なので、実際に反転するのか見ていきます
実際に石を置いてみましょう
ちゃんと反転しています!(^^)!
上方向も見ていきます
きちんと反転してますね('ω')ノ
上下左右の反転はこれにて完了です!
斜め方向はまた気が向いたら実装しましょう
需要はないかと思いますがこれまでのソースコード全文は次回記事で公開します
Excelオセロはまだまだ未完成です
斜め方向の反転は未実装ですし、今は盤面であればどこにでも石を置くことができます
そのためこんな戦略を取ることも可能です
初手四隅!!