Classiclll's Blog

an old boy

We need a loop! - 次は繰り返し(ちょっぴりややこしい話付き)

イメージ 1



まずは、【ちょっぴり】ややこしい話から(上の画像のこと) 
**(下でのThoruさんのコメントで【ずいぶん】から【ちょっぴり】に変わったので、
   大幅改定(4月9日)

スクリプト(コードとも言う)が長くなるとファイルを分割した方が何かにつけてやり易くなります。
なので、今後ファイルを分けてアプレット起動ページを作ることにしました。
ただ、ファイルを分ける手順がちょっとややこしいんで、あらかじめ解説しておきます。
1.アップレット起動ページに張ってあるSourceCodeのリンクエントリーが複数になります。
     (図の右上)
2.P5で普通にやると一つのタブが出来て、一つのファイルしか編集できないけど、タブペインの
  矢印ボタン(図の左上)を押して、新しいタブを追加する。
3.新しいタブの名前を聞いてくるので、名前を入力する。(図の右下)
4.あら不思議、P5エディタに入力した名前のついたタブが出現。(図の左下)
5.あとは普通に作業すればOK


本論-We need a loop !

// 前と同じで、やるべきことは二つの関数を用意すること
// あとはKAMEコマンドを呼ぶだけ

void setup(){
size(300,300); //窓の大きさは300×300
}
void draw() {
kami(128,220,198); //緑が強めの青緑の紙
iro(128,220,198); //紙と同じ色!!
saisho(mouseX, mouseY); //書き始めはマウスの【現在】位置
for (int len=0;len<90;len++) { //0から90までlenを増やしながら
akarusa(len*2.6); //明るさ(明度)だけ変化させて書く
mae(len); //線を書きながらlenだけ前に進む
migi(73); //右に73°向く
}
}

ここまでを【Uzumaki】にコピペし、追加分のKAMEのスクリプトを上を参考に【KAME】にコピペすれば
とりあえず明るさ(明度)も変化する渦巻きを見れる。


本論はここから
繰り返しは、
for(【最初に行うこと】;【繰り返しを続ける条件】;【繰り返しごとに最後にすること】){
【繰り返したいこと】
}
のように記述する。
上の例では、


【最初に行うこと】は、int len=0。
 整数(・・・-1000,..-1,0,1,2,....,10000・・・)の値を保持するlenという名前の変数を作り、
まずはその値をゼロにする。


【繰り返しを続ける条件】は、len<90。
 変数lenが90より小さいあいだ。(最初はゼロだから繰り返しは続く)


【繰り返しごとに最後にすること】は、len++。
 変数lenをカウントアップ。(len=len+1でもlen+=1でもおんなじ。ちなみにlen--はカウントダウン)


【繰り返したいこと】は、mae(len)とmigi(73)。
 前にlen歩進んで右に73°の方向を向く。(akarusaはとりあえず無視)


こんだけ
繰り返しのおかげで、
mae(0);migi(73);mae(1);migi(73);・・・・mae(89);migi(73);(90回コピペと修正!!)
なんてことをしなくてもすんでしまう。


なお、日本語サポートサイトからたどれるP5インフォメーション→言語が参考になる。
(解説してあるのは一昔前の版だから注意が必要だけど、loop()→draw()の読み替えだけで大抵OK)
例題集は習作集と区別するためにこちらに置いた。
次は、【条件分岐とKAMEコマンドの解説】