読者です 読者をやめる 読者になる 読者になる

B1勉強会 #02-配列変数

6/6(土) 13:00より宮下研にて配列変数の勉強会を開催しました。

atnd.orgatnd.org


人数が人数だったので一方的に教えるのではなく一緒に考えながら進めていきました。

二次配列まで教えましたが、実際に使うのは一次配列だと思うので、一次配列を使って実際にプログラムを組んでもらいました。

さらにfor文while文との組み合わせも教えました。

今回は中村先生のパワポとホワイトボードで説明しました。

ネット上に残せる資料を作ってないです。すいませんm(__)m

ランダムな10個の四角を描くプログラムを実際に組みました。

方針としてはX座標とY座標を管理する二つの変数の要素をそれぞれ10個準備して、その中にrandomで代入します。

float [] boxX = new float[10];//boxXの配列の要素10個を確保
float [] boxY = new float[10];//boxYの配列の要素10個を確保

void setup() {
 size(300, 300);
 background(255, 255, 255);
 for(int i=0; i<10; i++){//for文の中を10回繰り返す(iは0~9)
  boxX[i]= random (290) ;
  boxY[i] = random (290) ;
 }
}

そして、draw部分は

void draw() {
 background(255,255,255);
 for (int i=0; i<10; i+=1) {//for文の中を10回繰り返す(iは0~9)
  rect(boxX[i], boxY[i], 10, 10);
 }
}

という風に書けばランダムに10個の四角を描くことが出来ます。

このあと個の四角をそれぞれ動かすというこをしたかったのですが、時間がなくてできませんでした。

ソースだけ貼っとくので良かったらどうぞ

float [] boxX = new float[10];
float [] boxY = new float[10];
float [] dX = new float[10];
float [] dY = new float[10];
void setup() {
  size(300, 300);
  background(255, 255, 255);
  for (int i=0; i<10; i++) {
    boxX[i]= random (290) ;
    boxY[i] = random (290) ;
    dX[i] = random (10) ;
    dY[i] = random (10) ; 
  }
}

void draw() {
  background(255, 255, 255);
  for (int i=0; i<10; i+=1) {
    rect(boxX[i], boxY[i], 10, 10);
    boxX[i]+=dX[i];//boxX[i]=boxX[i]+dX[i]と同じこと
    boxY[i]+=dY[i];//boxY[i]=boxY[i]+dY[i]と同じこと
    if ( boxX[i]<0 || width<boxX[i]+10 ){
      dX[i]=-dX[i];//壁に当たったらboxXに足す数の符号を変える
    }
    if ( boxY[i]<0 || height<boxY[i]+10 ){
      dY[i]=-dY[i];//壁に当たったらboxYに足す数の符号を変える
    }
  }
}

もし、なにか詰まったことがあったら、聞いてください。

次回予告はtwitterで告知しますのでお待ちください。

もしかしたら@ta_OwO_kaに任せるかもしれません。