広告
↓発売日:2018年09月22日↓
新品価格 |
初日の今回はブロックパズル作りの大まかな流れだけを説明したいと思います!
まずはこちらの画像をご覧ください。
こんな感じのブロックパズルの中身をのぞいて見ると・・・。
こんな感じになっていたりします!
びっくりですね!
だいぶ見づらいですが、壁が「9」、ブロックが「1」、空間が「0」に置きかわってます!
この数字を使って計算する事でブロックパズル全体の動きを表現します。
もう少し詳しく見てみましょう!
2次元配列を平面のようにとらえて数字を当てはめていきます。
ブロック情報を保存します。
固まったブロックなど途中の状態を保存します。
※ステージの幅がさきほどの画像より少し大きいのは後ほど説明いたします!
広告
「0」・・・何もない
「1~6」・・・ブロック
「9」・・・壁
この数字を使って落下、移動、回転、固定、クリアなどを計算していきます!
ブロックが「1~6」となっているのは他の種類のブロックの分です。
今回は6種類のブロックを発生させたいので「1~6」となっております。
「 」・・・何もない
「□」・・・ブロック
「■」・・・壁
表示する時にブロックなどに置きかえます!
ブロック(block[4][4])
0,0,0,0
0,1,1,0
0,1,1,0
0,0,0,0
↓表示↓
ステージ(stage[23][18])
9,0,0,0,0,9
9,0,0,0,0,9
9,0,0,0,0,9
9,0,0,0,0,9
9,0,0,0,0,9
9,0,0,0,0,9
9,9,9,9,9,9
↓表示(省略版)↓
これらを重ね合わせます。
ここで先ほどの「stage[23][18]」の幅が少し大きい理由ですが、今回の作り方だと重ね合わせた時にブロックの種類によっては配列の端からはみ出てしまう(バッファオーバーフロー)ブロックが出てくるので、そのはみ出る分多めに配列の要素を確保したというワケです。
ブロックを表す「1~6」の左右が何もない「0」だったら移動させます。
ブロックを表す「1~6」の下が何もない「0」だったら落下させます。
ブロックを表す「1~6」の下が何もない「0」じゃなければ(壁・固定されたブロックだったら)ブロックを固定します。
横一列の何もない「0」の個数が0個だったら(ブロックで埋まっていたら)クリアします。
先に回転後の仮のブロックを作って、そのブロックと重なる部分が全て何もない「0」だったら回転させます。
こんな感じの計算を組み合わせてブロックパズルを作っていきます。
では次回はさっそくブロックと壁を表示するプログラムを組んでみましょう。
広告
↓発売日:2016年02月29日↓
12歳からはじめる ゼロからのC言語 ゲームプログラミング教室 新品価格 |
↓発売日:2018年06月22日↓
新品価格 |
↓発売日:2018年03月09日↓
新品価格 |
↓発売日:2017年06月14日↓
新品価格 |
↓発売日:2018年05月21日↓
新品価格 |
↓発売日:2017年12月07日↓
新品価格 |
↓発売日:2017年02月08日↓
新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ) 新品価格 |
↓発売日:2017年09月26日↓
新品価格 |