忍者ブログ
Admin*Write*Comment
35歳からのC言語ゲームプログラミング
[35]  [34]  [33]  [32]  [31]  [30]  [29]  [28]  [27]  [26]  [25
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

プログラムの設計について

睡眠時間を削りながら、僕なりにぶっ飛ばして作業してきたんで、一つ一つの処理についてはあまり触れてこなかったんだけども、よく考えたらブログのタイトルからしても僕のようにC言語やプログラミングを始めたばかりの人も見ていると思うので、少しだけ説明しとこうと思う。
もちろん僕の復習も兼ねる。
ベテラン・プログラマーの方には「何を今さら」的な内容だと思うんだけど、僕にとっては最新のトピックスなので偉そうな説明を笑って許してちょーだい。

で、例えば落下するぷよの回転について。
えっと、まず、今回の場合、厳密に言うと回転では無いです。
座標を中心点を軸にして回転する公式とかを使ってるわけじゃないってこと。
ぷよの場合、上下左右の4方向の要素しかないんで、んな面倒なことは必要ない。

落下スタート時点で下になってるぷよを軸にして、上のぷよをZキーが押されるたびに配置換えしてるだけ。
下のぷよを①、上のぷよを②、最初の縦に並んだ状態を状態0として、

状態0 状態1 状態2 状態3
②    
①   ②①   ①   ①②


こんな感じで①を中心に②の配置を状態別に決定している。
ぷよの状態を表す変数を用意してZキーが押されるたびに1を足してゆく、んで4になっちゃったら0に戻す。
僕のプログラムでは操作に対する座標の移動は①に対してのみやっていて、あとは状態変数の値から②の座標を求めるようになっている。
まず、これが原則になるルールね。

そして、それを踏まえた上で、例外状況の処理を考える。
どういった例外が考えられるだろうか。

例えば、状態0で左に壁がある時にZキーが押された場合。
そのまま、状態1に移行すると②が壁の中に入ってしまう。
そういった時にどういう処理をするか、ルールをあらかじめ決めておかないと実際プログラムを書く時に迷ってしまう。
僕のプログラムでは、この場合①と②を入れ替えて状態3になるように処理している。
手元に実物が無いので、本物がどういう処理をしているかはわかんないけど、まったく同じにしたければ調べて同じになるようにルールを決めれば良い。
ここで言いたいのは例外状況や決まりを、あらかじめ洗い出して、どう処理をするか決めておく事が大切だと言う事だ。
そうじゃないと今回作っている程度の規模のプログラムでさえ、途中から何処で何をしようとしていたかを把握できなくなる。
で、バグった時に前々回の僕の記事のように混乱するわけだ(笑)。
それでも解決できれば良いのだけど、そうじゃない時は何時間も間違い探しをしているうちにモチベーションが下がって投げ出してしまうかもしれない。
設計をあらかじめ考えて書き出しておくことは大切だなあと、本当に思った。
RIMG0702.JPG


















RIMG0703.JPG

















RIMG0704.JPG

















RIMG0705.JPG

















RIMG0706.JPG

















RIMG0707.JPG

















RIMG0708.JPG

















「試しにぷよを再現してみるか」ってボンヤリ考え出したころからのメモ。
ほとんどが色が同じで隣り合っているぷよを配列内でどうやって検索するのが効率的か検討する内容だ。
こういう工程が僕は一番楽しい。
解決法を発見できた時の達成感は名作ゲームをクリアできた時に匹敵するくらいだ。
って言うか、これがほぼ固まってしまうと、プログラムを書くこと自体は作業のよう。


PR
この記事にコメントする
お名前
タイトル
メール
URL
コメント
文字色
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret
この記事へのトラックバック
この記事にトラックバックする:
  • ABOUT
やってやれないことはないっ!たぶん・・・
  • カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  • 最新コメント
[11/09 CALL MY NAME]
[11/09 erin]
[08/18 うずランド]
[07/11 うずランド]
[06/23 うずランド]
  • プロフィール
HN:
Call my name
年齢:
50
性別:
男性
誕生日:
1974/05/22
職業:
スロ屋店員
趣味:
いろいろ
自己紹介:
やる気だけはあるつもりです。
はい。
  • バーコード
  • ブログ内検索
  • カウンター
  • アクセス解析
Copyright © 35歳からのC言語ゲームプログラミング All Rights Reserved.*Powered by NinjaBlog
Graphics By R-C free web graphics*material by 工房たま素材館*Template by Kaie
忍者ブログ [PR]