マクロnakaji【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!14この記事は2016年10月26日に書かれたものです。内容が古い可能性がありますのでご注意ください。等々、プログラミングって結構敷居が高い!気持ちはわかります。私は、最初にJavaを触りましたが、わからなくて何も面白くなかったです。!普段使っているExcelならわかりやすいはず!というわけで、Excelでオセロを作ってプログラミングを楽しく学んでいきましょう。Excelでオセロを作ろう14オセロを作って楽しくプログラミングを学ぼう!第9回から石を置くことによって変わる石が存在するかどうかの判定を作っています。前回から斜め方向へのチェックを実装し、前回は左下を実装しました。今回は、右上と右下へのチェックを実装していきます。石が変わる条件のおさらい第9回でまとめた条件をおさらいします。盤の外側に出てしまう場合これをプログラムで実現していきます。前回の左上と左下と同じように左上と右上とのチェック差を考えていきます。左上へのチェックと右上へのチェックでの違いに関しても下記の二つがあります。左上へと右上ではチェックする方向が違うので、右上のチェックでは列を「-1」ではなく「+1」していきます。盤外に出た時の判定は、上方向へは共通ですが、横方向に違いがあります。左上へのチェックでは左方向に、右上へのチェックでは右方向になります。右上へのチェックとの差を理解したところで、右上方向に変わる石があるかどうかのチェックを実装していきましょう。左上と同様に行と列両方の変更を同時に行っていきます。前回までに作ってきたメソッドと同様に「othello」に「right_up_change_check」メソッドを作成していきます。初期位置が右上から横方向と縦方向ともに2マス以上離れていること(1)と右上の石が置いた石と反対の石であることのチェック(2)します。Function次にチェック処理を記載していきます。二つの変数iとj(行と列のそれぞれの動きを管理する変数)を用意していきます(1)。その変数をwhile文の中で列は「+1」、行は「-1」していきます(2)。while文を続ける条件は、用意したiとjの値が盤の右上の座標よりも外の場合は、処理を続けていきます(3)。Function最後に、ループを抜ける条件をループ内に記載していきます。自分と同じ色の石が置いてある場合はチェックをtrueとしてループを抜けます(1)。チェック先に石が置かれていない場合はループを抜けます。Functionこれで右上方向へのチェックメソッドの完成です。チェックがうまくできるか確かめる上で作成したメソッドを石を置く前に呼び出してしっかりと動くか確認していきます。メソッドを記述セルがクリックされたときに呼び出されるメソッド「cell_DoubleClick」の中で石を置いたあとにチェックしてメッセージボックスを出すようにします。左下方向のチェックを動かしているのでそれを編集して右上方向に修正しましょう。"右上側に裏返す石がありません。If「cell_DoubleClick」メソッド全体を見ると以下のようになっています。右上に裏返せる石がある状態とない状態で試してしっかりと動作する確認します。問題なく右上側に裏返す石があるかどうかのチェックができています。同様の要領で右下のチェックを実装していきます。右下のチェックのメソッドは下記のようになります。チェックがうまくできるか確かめる上で作成したメソッドを石を置く前に呼び出してしっかりと動くか確認していきます。メソッドを記述セルがクリックされたときに呼び出されるメソッド「cell_DoubleClick」の中で石を置いたあとにチェックしてメッセージボックスを出すようにします。右上方向のチェックを動かしているのでそれを編集して右下方向に修正しましょう。"右下側に裏返す石がありません。If「cell_DoubleClick」メソッド全体を見ると以下のようになっています。右下に裏返せる石がある状態とない状態で試してしっかりと動作する確認します。問題なく右下側に裏返す石があるかどうかのチェックができています。次回は、今まで作ってきたチェック処理をまとめていきます。