Excel実践

トップ > Excel > Excel実践 > 記事
Excelトップへ
Excel実践一覧へ



2021年12月29日【ID:254】

【趣味】コンピュータ対戦可能なオセロゲーム

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


・cal (続き)

次に、 下記のような内容を記述します。

こちらは、実際に駒を置けるのかを判定し、駒を置く機能になります。

引数には以下の4つが存在します。
・val _str:「●」か「○」、どちらの番なのかを判定するためのものです。「●」か「○」を渡します。
・row_no:盤のどこに駒を置くのか行番号を渡します。
・col_no :盤のどこに駒を置くのか列番号を渡します。
・ck:駒を置ける場合、実際に配置するのか、配置しないのかを判定するためのものです。「True」か「False」を渡します。

 

Dim data As Variantとありますが、こちらが盤面データを格納するための変数になります。
毎回、盤面を見に行っていると実行時間が長くなってしまうため、配列として受け取ります。
また、こちらに配置後の盤面データを用意し、プログラムの最後に一括配置するようになっています。
※引数ckがFalseの場合は、配置しません。

 

次に、上下左右斜めと8方向分のプログラムが記述されています。
全てを解説すると長くなるため、「上」のみ解説します。

※こちらは上の内容の一部を抜粋したものです。

やっている作業は単純です。
置こうとしている駒のマスを基準に考えます。
基準より1つ上のマスには、相手の駒があるかどうかを一番最初に確認します。
→相手の駒がなければ、基準より上のマスで、裏返る駒がないことになります。

1つ上の駒が相手の駒だった場合、さらに上へ上と確認します。
その時に、自分の駒がある場合、間の駒を自分の駒に置き換えるようにしています。
ただ、自分の駒が見つかる前に、空白のマスがあった場合は、相手の駒を囲むことができないため、その時点で終了します。

これと同じ作業を、8方向分実行しています。

 

最後のIF文(If cancel_flg Then)では、上下左右斜めと確認して1つも裏返すことが出来なかった場合、このcheck関数(プロシージャ)では、Falseを返すように実装されています。
1つでも裏返すことが出来る場合は、引数ckがTrueの場合、盤面に反映します。

 
4ページ
前のページへ 次のページへ

 

※ こちらのコンテンツには準備ファイルはありません。


▼完成ファイル▼

ダウンロード
※メンバー限定

 




Excelで警告が表示される場合


【標準モジュール】cal

※メンバーページと連携すると、開発したプログラムの内容が表示されます。


【標準モジュール】computer

※メンバーページと連携すると、開発したプログラムの内容が表示されます。


【シートモジュール】Sheet1(オセロ)

※メンバーページと連携すると、開発したプログラムの内容が表示されます。


【ブックモジュール】ThisWorkbook

※メンバーページと連携すると、開発したプログラムの内容が表示されます。


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


メンバー募集 メンバー募集





リンクの共有はこちらから行えます。

  リンクコピー    X Facebook はてなブックマーク Pocket
トップ > Excel > Excel実践 > 記事
Excelトップへ
Excel実践一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

7151105

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール
✨困ったとき✨ Excel
保護解除ツール


トップ > Excel > Excel実践 > 記事
Excelトップへ
Excel実践一覧へ