カタツムリ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にご協力をお願いします。↓↓↓

にほんブログ村 経営ブログへランキングUP!

ランキングUP!

banner2.gif 人気blogランキング!

投稿者 shiozumi : 17:11