Processing 程式碼
畫出25*25方格 填上25個1void 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) { text("1", 50, y); text("1", 150, y); text("1", 250, y); text("1", 350, y); text("1", 450, y); } }畫出25*25方格 填上25個1 但是只用兩個for迴圈void setup(){ size(500, 500); textSize(50); textAlign(CENTER, CENTER); } void draw(){ for(int i=0;i<5;i++){ //對y座標 for(int j=0;j<5;j++){ //對x座標 fill(255); rect(j*100, i*100, 100, 100); fill(0); text("1", 50+j*100, 50+i*100); } } }用 array 讓數字隨機出現 但數字會重複int [][] table = new int[5][5]; //Java陣列宣告 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++){ //對y座標 for(int j=0;j<5;j++){ //對x座標 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]; //0...25 共26個 int [][] table = new int[5][5]; //Java陣列宣告 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++) { //對y座標 for (int j=0; j<5; j++) { //對x座標 fill(255); rect(j*100, i*100, 100, 100); fill(0); text("" + table[i][j], 50+j*100, 50+i*100); } } }當 mousePressed 時 格子要變色int [] used = new int[26]; //0...25 共26個 int [][] table = new int[5][5]; //Java陣列宣告 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++) { //對y座標 for (int j=0; j<5; j++) { //對x座標 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; }當 mousePressed 時 必須要按照數字順序按int [] used = new int[26]; //0...25 共26個 int [][] table = new int[5][5]; //Java陣列宣告 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++) { //對y座標 for (int j=0; j<5; j++) { //對x座標 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++; } }加上 millis 讓遊戲開始會開始計時int [] used = new int[26]; //0...25 共26個 int [][] table = new int[5][5]; //Java陣列宣告 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 startT = 0; int [][] pressed = new int[5][5]; void draw() { background(#FFFFF2); for (int i=0; i<5; i++) { //對y座標 for (int j=0; j<5; j++) { //對x座標 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()-startT)/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++; } }加上 nf 讓計時有小數點int [] used = new int[26]; //0...25 共26個 int [][] table = new int[5][5]; //Java陣列宣告 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 startT = 0; int [][] pressed = new int[5][5]; void draw() { background(#FFFFF2); for (int i=0; i<5; i++) { //對y座標 for (int j=0; j<5; j++) { //對x座標 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++; } }讓程式執行更快int [] used = new int[26]; //0...25 共26個 int [][] table = new int[5][5]; //Java陣列宣告 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--){ //shuffle演算法有點噁心 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++]; } } } int startT = 0; int [][] pressed = new int[5][5]; void draw() { background(#FFFFF2); for (int i=0; i<5; i++) { //對y座標 for (int j=0; j<5; j++) { //對x座標 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++; } }
沒有留言:
張貼留言