//week06_01_schulte_table01_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(50);
textAlign(CENTER,CENTER);
for(int y=50;y<=450;y+=100){
for(int x=50;x<=450;x+=100)
text("1",x,y);
}
}
生成一個5X5的格子然後每個裡面都有數字1
//week06_01_schulte_table02 void setup(){ size(500,500); textSize(50); textAlign(CENTER,CENTER); } void draw(){ 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_03_schulte_table03_random_array int[][]table = new int[5][5]; void setup(){ size(500,500); textSize(50); 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(){ 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); } } } 增加1到25的變數,但會有重複的數字//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(50); 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(){ 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_mousePressed_i_j int [] used = new int[26]; int [][] table= new int[5][5]; void setup(){ size(500,500); textSize(50); 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(){ 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_want_1_if_table_i_j_want int [] used = new int[26]; int [][] table= new int[5][5]; void setup(){ size(500,500); textSize(50); 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(){ 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 want =1; void mousePressed(){ int i = mouseY/100,j = mouseX/100; if(table[i][j]==want){ pressed[i][j] = 1; want++; } } 增加了要按照順序才會變黑的功能//week06_7_schulte_table07_millis int [] used = new int[26]; int [][] table= new int[5][5]; void setup(){ size(500,600); textSize(50); 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("You used:"+millis()/1000,200,550); } int want =1; void mousePressed(){ int i = mouseY/100,j = mouseX/100; if(table[i][j]==want){ pressed[i][j] = 1; want++; } } 增加計時功能但部會在結束時自動暫停//week06_9_schulte_table09_mousePressed_crash_if_protect_shuffle_random int [][] table= new int[5][5]; void setup(){ size(500,600); textSize(50); textAlign(CENTER,CENTER); int []numbers ={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 = numbers.length-1;i>0;i--){ int j = int(random(i+1)); int temp = numbers[i]; numbers[i] = numbers[j]; numbers[j] = temp; } int index=0; for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ table[i][j] = numbers[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("You used:"+nf((millis()-startT)/1000.0,0,1),200,550); } int want =1; void mousePressed(){ int i = mouseY/100,j = mouseX/100; if(table[i][j]==want){ pressed[i][j] = 1; want++; } } 解決了點計時那邊的時候會當掉的bug
沒有留言:
張貼留言