2024年9月23日 星期一

WEEK03-翁逸豪

WEEK03-1

PImage img=loadImage("arufa.jpg");
size(600,400);//這是圖檔的大小
image(img,0,0);
顯示一張圖片

WEEK03-2

PImage img;
void setup()
{
  size(600,400);
  img=loadImage("arufa.jpg");
}
void draw()
{
  image(img,0,0);
  noStroke();//無邊框
  fill(200,200,255,128);//前3數字為顏色設定,後面的數字為透明度
  rect(mouseX,mouseY,70,50);
}
增加一個半透明的長方形

WEEK03-3

void draw(){
  image(img,0,0);
  noStroke();
  noCursor();//無游標
  fill(200,200,255,128);
  
  rect(mouseX,mouseY-80,70,50);
  
  rect(mouseX+30,mouseY-40,70,50);
  rect(mouseX-30,mouseY-40,70,50);
  
  rect(mouseX,mouseY,70,50);
  rect(mouseX-60,mouseY,70,50);
  rect(mouseX+60,mouseY,70,50);
  
  rect(mouseX+30,mouseY+40,70,50);
  rect(mouseX-30,mouseY+40,70,50);
  rect(mouseX+90,mouseY+40,70,50);
  rect(mouseX-90,mouseY+40,70,50);
  
  rect(mouseX,mouseY+80,70,50);
  rect(mouseX-60,mouseY+80,70,50);
  rect(mouseX+60,mouseY+80,70,50);
  
  rect(mouseX+30,mouseY+120,70,50);
  rect(mouseX-30,mouseY+120,70,50);
  
  rect(mouseX,mouseY+160,70,50);
}
慢慢做出一個屏障

WEEK03-4

PImage img;
void setup(){
  size(600,400);
  img=loadImage("arufa.jpg");
}
void draw(){
  image(img,0,0);
  noStroke();
  noCursor();//無游標
  fill(200,200,255,128);
  
  for(int i=1;i<=4;i++){
    for(int j=0;j<i;j++){
      float y=i*40,x=-i/2*60+j*60+((i%2==0)?30:0);
      rect(mouseX+x,mouseY-80+y,70,50);
    }
  }
  for(int i=3;i>=1;i--){
    for(int j=0;j<i;j++){
      float y=(4-i)*40+160,x=-i/2*60+j*60+((i%2==0)?30:0);
      rect(mouseX+x,mouseY-80+y,70,50);
    }
  }
}
簡化屏障的程式碼(利用for迴圈)

WEEK03-5

size(450,450);
background(220,179,92);
strokeWeight(2);
for(int i=0;i<9;i++)
{
  line(25,25+i*50,425,25+i*50);
  line(25+i*50,25,25+i*50,425);
}
用一次迴圈配2個line畫棋盤(用線畫棋盤)

size(450,450);
background(220,179,92);
strokeWeight(2);
noFill();
for(int i=0;i<8;i++)
{
  for(int j=0;j<8;j++)
  {
    rect(25+j*50,25+i*50,50,50);
  }
}
用兩次迴圈配1個rect畫棋盤(用格子拼出棋盤)

WEEK03-6

void setup()
{
  size(450, 450);
}
void draw()
{
  background(220, 179, 92);
  strokeWeight(2);
  for (int i=0; i<9; i++)
  {
    line(25, 25+i*50, 425, 25+i*50);
    line(25+i*50, 25, 25+i*50, 425);
  }
  ellipse(mouseX,mouseY,45,45);
}
加入棋子

WEEK03-7

int [][] board = new int [9][9];
void setup()
{
  size(450, 450);
}
void draw()
{
  background(220, 179, 92);
  strokeWeight(2);
  for (int i=0; i<9; i++)
  {
    line(25, 25+i*50, 425, 25+i*50);
    line(25+i*50, 25, 25+i*50, 425);
  }
  for (int i=0; i<9; i++)
  {
    for (int j=0; j<9; j++)
    {
       if(board[i][j]==1)ellipse(25+j*50, 25+i*50, 45, 45);
    }
  }
  ellipse(mouseX, mouseY, 45, 45);
}
void mousePressed()
{
  int i=mouseY/50,j=mouseX/50;
  board[i][j]=1;
}
點擊滑鼠放下棋子且棋子在點上

WEEK03-8

int goColor = -1;
int [][] board = new int [9][9];
void setup(){
  size(450, 450);
}
void draw(){
  background(220, 179, 92);
  strokeWeight(2);
  for (int i=0; i<9; i++){
    line(25, 25+i*50, 425, 25+i*50);
    line(25+i*50, 25, 25+i*50, 425);
  }
  for (int i=0; i<9; i++){
    for (int j=0; j<9; j++){
      if(board[i][j]==0)continue;
      if(board[i][j]==1)fill(255);
      if(board[i][j]==-1)fill(0);
      ellipse(25+j*50, 25+i*50, 45, 45);
    }
  }
  if(goColor==-1)fill(0,128);
  else fill(255,128);
  ellipse(mouseX, mouseY, 45, 45);
}
void mousePressed(){
  int i=mouseY/50,j=mouseX/50;
  board[i][j]=goColor;
  goColor=goColor*-1;
}
點擊滑鼠放下黑棋與白棋

WEEK03-9

int []boardX={0, -30, 30, 60, 0, -60, -90, -30, 30, 90, 60, 0, -60, -30, 30, 0};
int []boardY={-80, -40, -40, 0, 0, 0, 40, 40, 40, 40, 80, 80, 80, 120, 120, 160};
PImage img;
void setup() {
  size(600, 400);
  img=loadImage("arufa.jpg");
}
void draw() {
  image(img, 0, 0);
  noStroke();
  noCursor();//無游標
  fill(200, 200, 255, 128);
  for(int i=0;i<16;i++)
  {
    rect(mouseX+boardX[i],mouseY+boardY[i],70,50);
  }
}
回頭用陣列解決複雜迴圈內的算式


沒有留言:

張貼留言