2020年3月26日 星期四

可憐的大三重修仔_week04

2020/3/26_week04
Part1:練習實習課程式x3

分開整數的每個數字:


函數判斷質數:


擲骰統計:


Part2:上課內容

有1000個隨機顏色的circle往下掉


可以放大的氣球往上飛

程式碼:
int []x = new int[1000];
int []y = new int[1000];
int []r = new int[1000];
color[]c = new color[1000];
int n=0;
void setup(){
  size(400,400);
}
void draw(){
  background(255);
  for(int i=0;i<n;i++){
    fill(c[i]);
    circle(x[i],y[i],r[i]);
    y[i]--;
  }
  if(mousePressed)  r[n-1]++;
}
void mousePressed(){
  x[n]=mouseX;
  y[n]=mouseY;
  r[n]=10;
  c[n]=color(random(255),random(255),random(255));
  n++;
}
---------------------------------------------------------------------------
可以放大的氣球往上飛(另一種打法)

程式碼:
class Bubble{
  int x;
  int y;
  int r;
  color c;
}
Bubble [] b = new Bubble[1000];
int n = 0;
void setup(){
  size(400,400);
}
void draw(){
  background(255);
  for(int i=0;i<n;i++){
    fill(b[i].c);
    circle(b[i].x, b[i].y, b[i].r);
    b[i].y--;
  }
  if(mousePressed) b[n-1].r++;
}
void mousePressed(){
  b[n] = new Bubble();
  b[n].x = mouseX;
  b[n].y = mouseY;
  b[n].r = 10;
  b[n].c = color(random(255),random(255),random(255));
  n++;
}
-----------------------------------------------------------------------------------
上一個的簡化版(分出Bubble)



程式碼:
Bubble [] b = new Bubble[1000];
int n = 0;
void setup(){
  size(400,400);
}
void draw(){
  background(255);
  for(int i=0;i<n;i++){
    b[i].drawAndUpdate();
  }
  if(mousePressed) b[n-1].r++;
}
void mousePressed(){
  b[n] = new Bubble(mouseX,mouseY,10);
  n++;
}

程式碼:
class Bubble{
  int x;
  int y;
  int r;
  color c;
  Bubble(int _x, int _y, int _r){
    x=_x;
    y=_y;
    r=_r;
    c=color(random(255),random(255),random(255));
  }
  void drawAndUpdate(){
    fill(c);
    circle(x,y,r);
    y--;
  }
}
--------------------------------------------------------------------------------
了解陣列:


程式碼:
size(300,300);

int[][] table={ {0,1,0,1,1},
                 {1,0,1,1,0},
                 {1,1,0,0,0},
                 {0,0,1,1,0}};
for(int i=0;i<4;i++){
  for(int j=0;j<5;j++){
    if(table[i][j]==1)  fill(255,0,0);
    else  fill(128);
    rect(j*50,i*50,50,50);
  }
}
--------------------------------------------------------------------
了解陣列2:


程式碼:
int [][]table = new int [6][6];

void setup(){
  size(300,300);
}
void draw(){
  background(128);
  for(int i=0;i<6;i++){
    for(int j=0;j<6;j++){
      if(table[i][j]==1)  fill(255,0,0);
      else  fill(128);
      rect(j*50,i*50,50,50);
    }
  }
}
void mousePressed(){
  int x = (mouseX)/50;
  int y = (mouseY)/50;
  table[y][x]=1;
}

沒有留言:

張貼留言