Skip to content

かんたんプログラミング #4 コンピュータが判断する?

alanです。
さて、前回は関数の作り方を勉強しました。

これまで、この連載では変数、命令、そしてループについて学び、それから前回、関数を作ることで自分だけの命令を定義できることを学びました。

さて、これでプログラムを作るための部品はけっこう揃って来たのですが、もうひとつ、大切なものがあります。
それは条件判断です。

○○から起きたら、××する、というような命令の仕方です。
あまりにもよく使う命令ですが、プログラミングの経験がないと、すぐには必要な場面が思いつかないかもしれません。

たとえば、ゲームでキャラクターを動かしたりするときによく使います。

「右キーが押されていた」ら、「キャラクターを右に動かす」というような感じです。

「右キーが押されている」という条件を判断し、「キャラクターを右に動かす」という動作を行うわけです。

つまりif文はいわばコンピュータの頭脳そのもの。
プログラムのなかでif文をどう上手く使うかが、すなわちプログラミング能力そのものと言ってもいいかもしれません。

(続きは以下のリンクから)

前回の練習問題で円を描くプログラムの話をしました。
どんな感じになるかというと


function circle(){
        for(i=0;i<360;i++){
            move(1);
            turn(1);
        }
}

function onLoad(){
    logo.init();
    penDown();
    for(j=0;j<4;j++){
        circle();
        turn(90);
     }
    penUp();
}

とこうなるはずです。

この場合、円は90度ずつ回転しながら四つ描かれるのでこんな感じになるわけです。

この図形をif文を使ってさらに変化させてみましょう。

circle関数の中身を以下のように書き換えます。


function circle(){
        for(i=0;i<360;i++){

   if( i<30 ){
    move(5);
   }
            move(1);
            turn(1);
        }
}

ifという文が真ん中に現れました。
forループと似ていますね。

ifの場合、ifに続く括弧の中身は「条件式」と呼ばれるものになります。
この条件式が成立すると、括弧の中身が実行されるわけです。
この場合だと、iが30未満の間は、move(5)が毎回実行されるわけです。

これを実行してみましょう。

とっても奇妙なカタチがあらわれました。
これは4つつなげたものなので、ひとつだけ表示するようにプログラムを書き換えましょう。

円の一部が間延びしたような、変なカタチになっていますね。
これは、iが30未満の間だけ、moveが多く実行されている証拠です。

さらに変えてみましょう。


function circle(){
        for(i=0;i<360;i++){

   if( i == 180 ){
        turn(90);
   }else{
            move(1);
            turn(1);
           }
        }
}
[/pre] こんどはiが180のときだけ90度回転するという大胆なプログラムにしてみます。 ifの{}の後ろにelseという見慣れない命令文も出て来ています。 このelseはifとセットになっていて、if文で示された条件式が成立していない場合に実行される文です。 この場合だと、iが180ピッタリのときは90度回転し、そうでないときは通常の円を描くのと同じように動くことになります。 これ、どんな図形になるか想像できますか? 以下のような感じです。


ループで四つつづけて書くと、美しい花のような模様が現れました。
このように、if文を使うといろいろな遊びが出来るようになります。

さて、ここまでで一通りのプログラミングに必要な部品は揃いました。

次回はいよいよ、いきなりゲームを作ってみたいと思います。
ご期待ください。
このエントリーをはてなブックマークに追加
はてなブックマーク - かんたんプログラミング #4 コンピュータが判断する?
Post to Google Buzz
Share on GREE

Related posts:

  1. かんたんプログラミング #1:亀の子グラフィック
  2. かんたんプログラミング #3 関数ってどんな数?
  3. かんたんプログラミング #2:亀で学ぶ楽しいループの仕組み

Comments Closed