Tonyu Lab
Contents

 
Top
About Us
About Tonyu
Tonyu Program Tech
0.基礎
1.条件節
2.クラスの継承
3.メソッド
4.コンストラクター
BBS
Link
 
Author: Nuntora

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個所の変更で済むことがお分かりいただけると思います。処理自体も単純に早くなります。

(注: クラスの継承を利用すれば、これはさらに短くなります。)