2011年01月20日
「プログラムでは、ループを作れ!」
みなさん、おはようございます。
今日のニュースによれば、
ハドソンが上場廃止となり、
コナミの完全子会社になりましたね~
時代の変化による業界再編は、
まだまだ今後も続くのでしょうか?
引き続き、プログラムって、
どんな構造になっているのか?
フローで大きく捉えると、
スタートがあって、途中の処理があって、最後にエンド(終了)がある。
たった、この3つです。
そして、途中の中身は、
殆どが、ループ処理(繰り返し)です。
ということは、繰り返しとなるように、
プログラムを作れば、良いことになります。
これを実現するために、
データー構造としては、配列や構造体があるのです。
そして、プログラム自身も同じように処理するために、
クラスなどが活用できます。
例えば、犬と猫が競走するゲームを設計するならば・・・
その共通プログラムが、たくさんあります。
例えば、移動する処理、描画する処理、
異なるのは、移動するスピード、描画する絵。
前者は、プログラムは共通です。
後者は、データーとして異なります。
もし移動する関数を、
move( x, y, spd_x, spd_y )
{
x = x + spd_x;
y = y + spd_y;
}
と書けば、プログラムは共通となり、
変数(引数)のみが、個々に合わせて異なるのです。
あとは、その上位で、ループさせます。
for(i=0;i<2;i++)
{
move( x[i] , y[i] , spd_x[i] , spd_y[i] );
}
・・・あ~これでは、計算結果を保存していないので、
座標は、変わりませんね~(^^;;
では、ちょっと書きますと・・・
C言語の場合では、配列をグローバル変数でとって、
殆どがポインター処理です。
//
// データー構造体
//
typedef struct _OBJWORK {
int x;
int y;
} OBJWORK;
//
// データーの領域を確保
//
OBJWORK objwork[2];
//
// 移動処理(下位)
//
move( OBJWORK * wk )
{
wk->x += wk->spd_x;
wk->y += wk->spd_y;
}
//
// 移動の連続処理(上位)
//
for(i=0;i<2;i++)
{
move( &objwork[i] );
}
大体、こんな感じのイメージが掴めれば、
プログラムも得意になると思います。
今日も「いいスマイル」で行きましょう!
ツイッターはじめました~フォロー待ってま~す!!
↓↓↓下記の3つのバナーをクリックして下さい。ランキングUPにご協力をお願いします。↓↓↓
投稿者 shiozumi : 17:11