|
1. 条件節 Programを見やすくして、さらに後々の変更にも対応できるようにするためにはProgramをコンパクトにすることが大切です。以下の例を見てみましょう。
--------------------------------------------------------------- teki.tonyu @atarihantei Method --------------------------------------------------------------- for (t in $chars) { if ( t is Tama && crashTo(t) ) { hp=hp-1; //hpが1減る $score=$score+1; //Scoreに10ポイント加算 t.die(); //弾を消す if (hp<1) die(); //hpが1未満の場合はdie()を呼ぶ } } for (t in $chars) { if ( t is Tama2 && crashTo(t) ) { hp=hp-1; //hpが1減る $score=$score+1; //Scoreに10ポイント加算 t.die(); //弾を消す if (hp<1) die(); //hpが1未満の場合はdie()を呼ぶ } } --------------------------------------------------------------- このようなプログラムを良く見かけます。これは、自機が撃った弾が2種類(tama1.tonyu,tama2.tonyuが)あるために、それぞれに対応させるために作成されるのだと思います。 しかし、実際には同じ操作を2度繰り返している事がおわかり頂けるかと思います。同じ操作が繰り返されていると思ったときには、プログラムを短くするチャンスだと思ってください。OR文(||:または)を利用することで格段に短くすることができます。まず、以下を参照して下さい。 --------------------------------------------------------------- teki.tonyu @atarihantei Method --------------------------------------------------------------- for (t in $chars) { if ( ((t is Tama)||(t is Tama2)) && crashTo(t) ) { hp=hp-1; //hpが1減る $score=$score+1; //Scoreに10ポイント加算 t.die(); //弾を消す if (hp<1) die(); //hpが1未満の場合はdie()を呼ぶ } } --------------------------------------------------------------- このようにすることで、Programを見やすく、後に$scoreを10点加点を20点に変更したい時にも1個所の変更で済むことがお分かりいただけると思います。処理自体も単純に早くなります。 (注: クラスの継承を利用すれば、これはさらに短くなります。) |