« イージーパレットで長文打ち込み(W52T) | トップページ | C#でマインスイーパを作ってみる(その3) »

C#でマインスイーパを作ってみる(その2)

前回の宣言から数ヶ月。ちゃんと進展してますよ。
<<基本アルゴリズムを考えた>>
  • 【デザインを決める】

    15x15のパネルを配置させて、ユーザのクリック毎にその場所に対応した仮想画面から値を読み出してきて、内容に応じたパネルに張替えをすることでゲームの表示を可能とする。
  • 【爆弾配置】
    仮想画面は2次元配列で「15x15」でなく「17x17」と左右上下に1マス多くした
    なので実際にゲームで使うのは[1]~[15]の範囲とする。([0]と[16]は捨てる。参照しない。)
    この[1]~[15]にランダムに爆弾を(仮想画面へ)配置する。(ただし同じ場所には置かないようにする)
    爆弾は自分のその周り1マス’1’の数字を持ち、配置時に重なったら互いの数字同士を足していく。

    [0]、[16]の行・列を無視するので爆弾が端に配置したときのはみ出しを考える必要がないため単純な処理ができる。
  • 【パネルめくり】
    クリックされたときに仮想画面から値を読み取るのであるが、何もない(=空欄)ところが続く範囲はいっせいにパネルをあける必要がある。
    ここのアルゴリズムをいろいろ考えた結果

    クリックした場所を調査する処理()
    1. 爆弾ならば、すべてのパネルをさらしてゲームオーバー
    2. 数字ならば数字にあったパネルを表示
    3. 空欄ならばその位置の周りをクリックしたことにして、さらに調査を深める。
    これを繰り返す(再帰処理)することで、バァっとパネルがめくれる。
以上のことを考えて「Visual C# 2005」でプログラム開発をする。(つづく)

| |

« イージーパレットで長文打ち込み(W52T) | トップページ | C#でマインスイーパを作ってみる(その3) »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: C#でマインスイーパを作ってみる(その2):

» C#でマインスイーパを作ってみる(その3) [じむの(とりあえず)やってみたの巻]
マインスイーパの処理の考え方は俺的にまとまったので、後は「Visual C# 2 [続きを読む]

受信: 2007/06/18 01:50

« イージーパレットで長文打ち込み(W52T) | トップページ | C#でマインスイーパを作ってみる(その3) »