2024年10月14日 星期一

week06

 week06


week06_1_schule_table_line_fill_textSize_text_for




1.用直覺的方法嘗試完成


程式碼

///week06_1_schule_table_line_fill_textSize_text_for


void setup(){

  size(500,500);

}


void draw(){

  background(#FFFFF2);

  line(0,100,500,100);///畫出格子

  line(0,200,500,200);

  line(0,300,500,300);

  line(0,400,500,400);

  

  line(100,0,100,500);///畫出格子

  line(200,0,200,500);

  line(300,0,300,500);

  line(400,0,400,500);

  fill(0);

  textSize(60);

  textAlign(CENTER,CENTER);

  for(int y=50;y<=450;y+=100) {

    text("1",50,y);

    text("1",150,y);

    text("1",250,y);

    text("1",350,y);

    text("1",450,y);

  }

}


week06_2_schule_table02_for_for




1.FOR取代重複性過高的程式碼


程式碼


///week06_2_schule_table02_for_for


void setup(){

  size(500,500);

  textSize(60);

  textAlign(CENTER,CENTER);

}


void draw(){

  background(#FFFFF2);

  for(int i=0;i<5;i++){

    for(int j=0;j<5;j++){

      fill(255); rect(j*100,i*100,100,100);

      fill(0); text("1",50+j*100,50+i*100);

    }

  }

}



week06_3_schulte_table03_random_2d_array




1.使用random隨機填數字

2.兩層陣列


程式碼

///week06_3_schulte_table03_random_2d_array



int [][] table = new int[5][5];

void setup(){

  size(500,500);

  textSize(60);

  textAlign(CENTER,CENTER);

  for(int i=0;i<5;i++) {

    for(int j=0;j<5;j++) {

      table[i][j] = int(random(1,26));

    }

  }

}


void draw(){

  background(#FFFFF2);

  for(int i=0;i<5;i++){

    for(int j=0;j<5;j++){

      fill(255); rect(j*100,i*100,100,100);

      fill(0); text(""+table[i][j],50+j*100,50+i*100);

    }

  }

}



week06_4_schulte_table04_no_repeat_used_array_while




1.用陣列做出空間

2.while一直做判斷


程式碼

///week06_4_schulte_table04_no_repeat_used_array_while


int [] used = new int[26];

int [][] table = new int[5][5];

void setup(){

  size(500,500);

  textSize(60);

  textAlign(CENTER,CENTER);

  for(int i=0;i<5;i++) {

    for(int j=0;j<5;j++) {

      int now = int(random(1,26));

      while(used[now]==1) now = int(random(1,26));

      table[i][j] = now;

      used[now] = 1;

    }

  }

}


void draw(){

  background(#FFFFF2);

  for(int i=0;i<5;i++){

    for(int j=0;j<5;j++){

      fill(255); rect(j*100,i*100,100,100);

      fill(0); text(""+table[i][j],50+j*100,50+i*100);

    }

  }

}



week06_5_schulte_table05_void_mousePressed_pressed_i_j



1.做出按下去顯示


程式碼


///week06_5_schulte_table05_void_mousePressed_pressed_i_j


int [] used = new int[26];

int [][] table = new int[5][5];

void setup(){

  size(500,500);

  textSize(60);

  textAlign(CENTER,CENTER);

  for(int i=0;i<5;i++) {

    for(int j=0;j<5;j++) {

      int now = int(random(1,26));

      while(used[now]==1) now = int(random(1,26));

      table[i][j] = now;

      used[now] = 1;

    }

  }

}

int [][] pressed = new int[5][5];

void draw(){

  background(#FFFFF2);

  for(int i=0;i<5;i++){

    for(int j=0;j<5;j++){

      if(pressed[i][j]==1) fill(128);

      else fill(255);

      rect(j*100,i*100,100,100);

      fill(0); text(""+table[i][j],50+j*100,50+i*100);

    }

  }

}

void mousePressed(){

  int i = mouseY/100,j = mouseX/100;

  pressed[i][j] = 1;

}


week06_6_schulte_table06_int_answer_check





1.限制只有對的才給按


程式碼


///week06_6_schulte_table06_int_answer_check


int [] used = new int[26];

int [][] table = new int[5][5];

void setup(){

  size(500,500);

  textSize(60);

  textAlign(CENTER,CENTER);

  for(int i=0;i<5;i++) {

    for(int j=0;j<5;j++) {

      int now = int(random(1,26));

      while(used[now]==1) now = int(random(1,26));

      table[i][j] = now;

      used[now] = 1;

    }

  }

}

int [][] pressed = new int[5][5];

void draw(){

  background(#FFFFF2);

  for(int i=0;i<5;i++){

    for(int j=0;j<5;j++){

      if(pressed[i][j]==1) fill(128);

      else fill(255);

      rect(j*100,i*100,100,100);

      fill(0); text(""+table[i][j],50+j*100,50+i*100);

    }

  }

}

int answer = 1;

void mousePressed(){

  int i = mouseY/100,j = mouseX/100;

  if(table[i][j]==answer){

    pressed[i][j] = 1;

    answer++;

  }

}



week06_7_schulte_table07_millis




1.加入計時器


程式碼


///week06_7_schulte_table07_millis


int [] used = new int[26];

int [][] table = new int[5][5];

void setup(){

  size(500,600);

  textSize(60);

  textAlign(CENTER,CENTER);

  for(int i=0;i<5;i++) {

    for(int j=0;j<5;j++) {

      int now = int(random(1,26));

      while(used[now]==1) now = int(random(1,26));

      table[i][j] = now;

      used[now] = 1;

    }

  }

}

int [][] pressed = new int[5][5];

void draw(){

  background(#FFFFF2);

  for(int i=0;i<5;i++){

    for(int j=0;j<5;j++){

      if(pressed[i][j]==1) fill(128);

      else fill(255);

      rect(j*100,i*100,100,100);

      fill(0); text(""+table[i][j],50+j*100,50+i*100);

    }

  }

  text("timer : "+millis()/1000,200,550);

}

int answer = 1;

void mousePressed(){

  int i = mouseY/100,j = mouseX/100;

  if(table[i][j]==answer){

    pressed[i][j] = 1;

    answer++;

  }

}


程式碼改


///week06_7a_schulte_table07_millis


int [] used = new int[26];

int [][] table = new int[5][5];

void setup(){

  size(500,600);

  textSize(60);

  textAlign(CENTER,CENTER);

  for(int i=0;i<5;i++) {

    for(int j=0;j<5;j++) {

      int now = int(random(1,26));

      while(used[now]==1) now = int(random(1,26));

      table[i][j] = now;

      used[now] = 1;

    }

  }

  startT = millis();

}

int startT = 0;

int [][] pressed = new int[5][5];

void draw(){

  background(#FFFFF2);

  for(int i=0;i<5;i++){

    for(int j=0;j<5;j++){

      if(pressed[i][j]==1) fill(128);

      else fill(255);

      rect(j*100,i*100,100,100);

      fill(0); text(""+table[i][j],50+j*100,50+i*100);

    }

  }

  text("timer : "+ nf((millis() - startT)/1000.0,0,1),200,550);

}

int answer = 1;

void mousePressed(){

  int i = mouseY/100,j = mouseX/100;

  if(table[i][j]==answer){

    pressed[i][j] = 1;

    answer++;

  }

}


week06_8_schulte_table09_mousePressed_crash_if_project_shuffle_random


1.優化


程式碼


///week06_8_schulte_table09_mousePressed_crash_if_project_shuffle_random

int [] used = new int[26];
int [][] table = new int[5][5];
void setup(){
  size(500,600);
  textSize(60);
  textAlign(CENTER,CENTER);
  int []nums = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
  for(int i = nums.length - 1;i>0;i--) {
    int j = nums[int(random(i + 1))];
    
    int temp = nums[i];
    nums[i] = nums[j];
    nums[j] = temp;
  }
  int index=0;
  for(int i=0;i<5;i++) {
    for(int j=0;j<5;j++) {
      table[i][j] = nums[index++];
    }
  }

  startT = millis();
}
int startT = 0;
int [][] pressed = new int[5][5];
void draw(){
  background(#FFFFF2);
  for(int i=0;i<5;i++){
    for(int j=0;j<5;j++){
      if(pressed[i][j]==1) fill(128);
      else fill(255);
      rect(j*100,i*100,100,100);
      fill(0); text(""+table[i][j],50+j*100,50+i*100);
    }
  }
  text("timer : "+ nf((millis() - startT)/1000.0,0,1),200,550);
}
int answer = 1;
void mousePressed(){
  int i = mouseY/100,j = mouseX/100;
  if(table[i][j]==answer){
    pressed[i][j] = 1;
    answer++;
  }
}


沒有留言:

張貼留言