2024年10月14日 星期一

weeeeeeeeek066666666666666

 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) {

    text("1", 50, y);

    text("1", 150, y);

    text("1", 250, y);

    text("1", 350, y);

    text("1", 450, y);

  }

}

---------------

002.

//int [] used = new int[26];
int [][] table = new int[5][5];
void setup() {
  size(500, 600);
  textSize(30);
  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++) {
      //int now = int(random(1, 26));
      //while (used[now]==1) now = int(random(1, 26));
      //table[i][j] = now;
      //used[now] = 1;
      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(225);
      rect(j*100, i*100, 100, 100);
      fill(0);
      text(""+table[i][j], 50+j*100, 50+i*100);
    }
  }
  text("you used\n[ "+nf((millis()-startT)/1000.0, 3, 1)+" ]\nseconds", 250, 550);
}
int want = 1;
void mousePressed() {
  int i = mouseY/100, j= mouseX/100;
  if (i>= 0&& i<5 && j>=0 && j<5) {
    if (table[i][j]==want) {
      pressed[i][j]=1;
      want++;
    }
  }
}
------
003.
int[][] table = new int[5][5]; // 儲存格子的狀態
boolean[][] revealed = new boolean[5][5]; // 儲存格子是否已被揭露
int numMines = 5; // 地雷數量
boolean gameOver = false; // 遊戲是否結束

void setup() {
  size(500, 600);
  textSize(30);
  textAlign(CENTER, CENTER);
  // 初始化地雷表
  placeMines();
}

void draw() {
  background(#FFFFF2);
  for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
      if (revealed[i][j]) {
        if (table[i][j] == -1) {
          fill(255, 0, 0); // 地雷顏色
          rect(j * 100, i * 100, 100, 100);
          fill(0);
          text("💣", 50 + j * 100, 50 + i * 100);
        } else {
          fill(255); // 安全格子顏色
          rect(j * 100, i * 100, 100, 100);
          fill(0);
          text("" + table[i][j], 50 + j * 100, 50 + i * 100);
        }
      } else {
        fill(225); // 未揭露格子顏色
        rect(j * 100, i * 100, 100, 100);
      }
    }
  }
  
  if (gameOver) {
    fill(0);
    text("Game Over!", 250, 550);
  }
}

void mousePressed() {
  int i = mouseY / 100, j = mouseX / 100;
  if (i >= 0 && i < 5 && j >= 0 && j < 5 && !gameOver) {
    if (table[i][j] == -1) {
      revealAll(); // 揭露所有格子
      gameOver = true; // 點擊到地雷,結束遊戲
    } else {
      reveal(i, j); // 揭露安全格子
    }
  }
}

// 隨機放置地雷
void placeMines() {
  int minesPlaced = 0;
  while (minesPlaced < numMines) {
    int i = int(random(5));
    int j = int(random(5));
    if (table[i][j] != -1) {
      table[i][j] = -1; // 放置地雷
      minesPlaced++;
      incrementNeighborCounts(i, j); // 更新周圍格子的地雷數
    }
  }
}

// 更新周圍格子的地雷數
void incrementNeighborCounts(int x, int y) {
  for (int i = -1; i <= 1; i++) {
    for (int j = -1; j <= 1; j++) {
      if (x + i >= 0 && x + i < 5 && y + j >= 0 && y + j < 5 && table[x + i][y + j] != -1) {
        table[x + i][y + j]++;
      }
    }
  }
}

// 揭露格子
void reveal(int x, int y) {
  if (x < 0 || x >= 5 || y < 0 || y >= 5 || revealed[x][y]) return;
  revealed[x][y] = true; // 揭露格子

  // 如果該格子是0,則遞歸揭露鄰近格子
  if (table[x][y] == 0) {
    for (int i = -1; i <= 1; i++) {
      for (int j = -1; j <= 1; j++) {
        reveal(x + i, y + j);
      }
    }
  }
}

// 揭露所有格子
void revealAll() {
  for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
      revealed[i][j] = true; // 揭露所有格子
    }
  }
}


沒有留言:

張貼留言