C#でマインスイーパを作ってみる(その2)
前回の宣言から数ヶ月。ちゃんと進展してますよ。
<<基本アルゴリズムを考えた>>
<<基本アルゴリズムを考えた>>
- 【デザインを決める】
15x15のパネルを配置させて、ユーザのクリック毎にその場所に対応した仮想画面から値を読み出してきて、内容に応じたパネルに張替えをすることでゲームの表示を可能とする。 - 【爆弾配置】
仮想画面は2次元配列で「15x15」でなく「17x17」と左右上下に1マス多くした。
なので実際にゲームで使うのは[1]~[15]の範囲とする。([0]と[16]は捨てる。参照しない。)
この[1]~[15]にランダムに爆弾を(仮想画面へ)配置する。(ただし同じ場所には置かないようにする)
爆弾は自分のその周り1マスに’1’の数字を持ち、配置時に重なったら互いの数字同士を足していく。
[0]、[16]の行・列を無視するので爆弾が端に配置したときのはみ出しを考える必要がないため単純な処理ができる。 - 【パネルめくり】
クリックされたときに仮想画面から値を読み取るのであるが、何もない(=空欄)ところが続く範囲はいっせいにパネルをあける必要がある。
ここのアルゴリズムをいろいろ考えた結果
これを繰り返す(再帰処理)することで、バァっとパネルがめくれる。クリックした場所を調査する処理() - 爆弾ならば、すべてのパネルをさらしてゲームオーバー
- 数字ならば数字にあったパネルを表示
- 空欄ならばその位置の周りをクリックしたことにして、さらに調査を深める。
| 固定リンク | 0
コメント