今天第一個程式:
第一個:
void setup() { size(500, 500); } void draw() { background(255, 255, 255); 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 i=50; i<=450; i+=100) { text("1", 50, i); text("1", 150, i); text("1", 250, i); text("1", 350, i); text("1", 450, i); } }
第二個(用for迴圈把前面很長的程式縮短):
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); } } }
第三個(用2D矩陣亂數填數字,但是會有重複):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); } } } 第四個(用另外一個陣列去檢查25個數字有沒有重複,檢查完再放進2D陣列裡面):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); } } }
第五個(加入滑鼠互動,滑鼠點擊完後方格會變色):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; }
第六個(用新的陣列去檢查[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); } } } int want=1; void mousePressed() { int i=mouseY/100, j=mouseX/100; if (table[i][j]==want) { pressed[i][j]=1; want++; } }
第七個(加上計時器):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+" second",200,550); } int want=1; void mousePressed() { int i=mouseY/100, j=mouseX/100; if (table[i][j]==want) { pressed[i][j]=1; want++; } }
第八個(秒數加上小數點):int []used=new int[26]; int [][]table=new int[5][5]; void setup() { size(500, 600); textSize(40); 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; } } starT=0; } int starT=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()-starT)/1000.0,0,1)+" second", 200, 550); } int want=1; void mousePressed() { int i=mouseY/100, j=mouseX/100; if (table[i][j]==want) { pressed[i][j]=1; want++; } }
第九個(最終版本):int []used=new int[26]; int [][]table=new int[5][5]; void setup() { size(500, 600); textSize(40); 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++]; } } starT=0; } int starT=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()-starT)/1000.0, 0, 1)+" second", 200, 550); } int want=1; void mousePressed() { int i=mouseY/100, j=mouseX/100; if (i>=0&&i<5&&i>=0&&i<5) { if (table[i][j]==want) { pressed[i][j]=1; want++; } } }
快捷鍵:
ctrl+R 執行
ctrl+T 自動排版
ctrl+N 新檔案
Git 指令
cd desktopgit clone https://github.com/mickey1132/2024-Interactioncd 2024-Interactiongit statusgit add .git statusgit config --global user.email mickylin1132@gmail.comgit config --global user.name mickey1132git commit -m WeekXXgit push
沒有留言:
張貼留言