顯示具有 04160754_陶軒宇 標籤的文章。 顯示所有文章
顯示具有 04160754_陶軒宇 標籤的文章。 顯示所有文章

2020年6月18日 星期四

程式設計 week17



void setup(){
    size(300,300);
}
void draw(){
    background(#002966);///填充背景顏色
    fill(#b7efff);
    noStroke();
    ellipse(100,150, 13,13);///放原點
    ellipse(200,150, 13,13);
}



void setup(){
    size(300,300);
}
void draw(){
    background(#002966);
    stroke(#b7efff);
    line(100,150, 200,150);///拉白線
   
    fill(#b7efff);
    noStroke();
    ellipse(100,150, 13,13);
    ellipse(200,150, 13,13);
}



void setup(){
    size(300,300);
}
float x=200, y=150;
void draw(){
    background(#002966);
    stroke(#b7efff);
    line(100,150, x,y);
   
    fill(#b7efff);
    noStroke();
    ellipse(100,150, 13,13);
    ellipse(x,y, 13,13);///第二顆球設變數可移動
}

void mouseDragged(){
    x=mouseX; y=mouseY;
}



void setup(){
    size(300,300);
}
float x=200, y=150;
void draw(){
    background(#002966);
    stroke(#b7efff);
    line(100,150, x,y);
   
    fill(#b7efff);
    noStroke();
    ellipse(100,150, 13,13);
    ellipse(x,y, 13,13);
    if(! mousePressed){
      float dx=x-100, dy=y-150;
      float len=sqrt(dx*dx+dy*dy);
      x -= dx*(len-100)/len*0.1;
      y -= dy*(len-100)/len*0.1;///*0.1讓回彈更滑順
    }///滑鼠放開彈回
}



void mouseDragged(){
    x=mouseX; y=mouseY;
}





void setup(){
    size(300,300);
}
float x=200, y=150;
float vx=0, vy=0;
void draw(){
    background(#002966);
    stroke(#b7efff);
    line(100,150, x,y);
   
    fill(#b7efff);
    noStroke();
    ellipse(100,150, 13,13);
    ellipse(x,y, 13,13);
    if(! mousePressed){
      float dx=x-100, dy=y-150;
      float len=sqrt(dx*dx+dy*dy);
      vx -= dx*(len-100)/len*0.001;
      vy -= dy*(len-100)/len*0.001;
      x += vx;
      x += vy;
    }
}



void mouseDragged(){
    x=mouseX; y=mouseY;
}




void setup(){
    size(400,300);
}
float x=200, y=150;
void draw(){
    background(#002966);
    fill(255);
    rect(x,y, 80,20);
    float dx=x-mouseX, dy=y-mouseY;
   
    x -= dx*0.1;
    y -= dy*0.1;
    }

2020年6月11日 星期四

week16 程式設計

https://www.openprocessing.org/sketch/911326



PImage img;
void setup(){
size(500,500);
img=loadImage("img.jpg");
imageMode(CENTER);
}
void draw(){
background(255);
//image( img, 0,0);
image(  img.get(141*a, 211*b, 141,211), x,y);///換張圖
if(frameCount%30==0) a++;///一秒鐘走一步
if(a>=4) a=0;///大於4後回到第1張圖
}
int a=0, b=0, x=250, y=250;
void keyPressed(){
if(keyCode==RIGHT){ b=3; x++; }
if(keyCode==LEFT) { b=2; x--; }
if(keyCode==UP) { b=1; y--; }
if(keyCode==DOWN){ b=0; y++; }
}

lord image按上下左右操作方向

2020年5月28日 星期四

程式設計 week14

week12拉線

PImage imgBird;
void setup(){
  size(500,400);
  imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer
  imageMode(CENTER);//以正中心,當座標
}
float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;//之前的鳥在哪裡
boolean bMoving=false;//if(判斷) ex. if(bMoving)...
void draw(){
  background(255);//清背景
  image(imgBird, birdX,birdY,100,100);//不能一直跟著mouse動,改用birdX,birdY
  if(bMoving) line(birdX,birdY, oldX,oldY);//有按到,才能動它
  birdX+=vx; birdY+=vy;//鳥要照速度去飛!!!
  if(birdX>450 || birdX<50) vx = -vx*0.95;//撞到邊界,會改變方向,相反的方向
  if(birdY>350 || birdY<50) vy = -vy*0.95;//撞到邊界,會改變方向,相反的方向
}
void mouseReleased(){
  if(bMoving){
    bMoving=false;//放開時,就不能動了
    vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;// 0.1倍
  }
}
void mousePressed(){//按下去,才會開始動
  if( dist(mouseX,mouseY, birdX,birdY)<50){
    oldX=birdX; oldY=birdY;
    bMoving=true;///按下去時,如果有按到,才能動它
  }
}
void mouseDragged(){//按下去,才會開始動
  if(bMoving) {//有按到,才能動它
    birdX=mouseX; birdY=mouseY;
  }
}

播音樂的程式

import ddf.minim*;
Minim minim;
AudioPlayer player;
void setup(){
   minim = new Minim(this);
   player = minim.loadFile("song.mp3");
}




import ddf.minim.*;
Minim minim;
AudioPlayer player;
PImage imgBird;
void setup(){

  size(500,400);
  minim = new Minim(this);
  player = minim. loadFile("song.mp3");
  player.play();
  imgBird=loadImage("bird.png");//圖檔如果沒有放好,會當掉 pointer

  imageMode(CENTER);//以正中心,當座標

}

float birdX=100, birdY=300, oldX, oldY, vx=0, vy=0;//之前的鳥在哪裡

boolean bMoving=false;//if(判斷) ex. if(bMoving)...

void draw(){

  background(255);//清背景

  image(imgBird, birdX,birdY,100,100);//不能一直跟著mouse動,改用birdX,birdY

  if(bMoving) line(birdX,birdY, oldX,oldY);//有按到,才能動它

  birdX+=vx; birdY+=vy;//鳥要照速度去飛!!!

  if(birdX>450 || birdX<50) vx = -vx*0.95;//撞到邊界,會改變方向,相反的方向

  if(birdY>350 || birdY<50) vy = -vy*0.95;//撞到邊界,會改變方向,相反的方向

}

void mouseReleased(){

  if(bMoving){

    bMoving=false;//放開時,就不能動了

    vx=(oldX-mouseX)/10; vy=(oldY-mouseY)/10;// 0.1倍

  }

}

void mousePressed(){//按下去,才會開始動

  if( dist(mouseX,mouseY, birdX,birdY)<50){

    oldX=birdX; oldY=birdY;

    bMoving=true;///按下去時,如果有按到,才能動它

  }

}

void mouseDragged(){//按下去,才會開始動

  if(bMoving) {//有按到,才能動它

    birdX=mouseX; birdY=mouseY;

  }

}
void mousePressed(){
    if(mouseButton==RIGHT){
       player2.rewind();
       player2.play();
       pigX[pigN]=mouseX;
       pigY[pigN]=mouseY;
       pigN++;
    }
    if( dist(mouseX,mouseY, birdX,birdY)<50){
        oldX=birdX; oldY=birdY;
        bMoving=true;
    }
}

2020年5月21日 星期四

week13 程式設計



PImage imgBird, imgPig;
float birdX=200, birdY=200, oldX, oldY, vx=0, vy=0;
void setup(){
    size(400,400);
    imgBird=loadImage("bird.png");
    imageMode(CENTER);///正中心當作標
}
void draw(){
    background(255);///清殘影
    image(imgBird, mouseX,mouseY, 100,100);
   
}


PImage imgBird, imgPig;
void setup(){
    size(400,400);
    imgBird=loadImage("bird.png");
    imageMode(CENTER);
}
float birdX=100, birdY=300, oldX, oldY;
void draw(){
    background(255);
    image(imgBird, birdX,birdY, 100,100);
    if(mousePressed) line(birdX,birdY,oldX,oldY);///滑鼠點擊位移產生直線
}
void mousePressed(){
    oldX=birdX; oldY=birdY; ///點擊移動
}
void mouseDragged(){
    birdX=mouseX; birdY=mouseY;
}


PImage imgBird, imgPig;
float birdX=200, birdY=200, oldX, oldY, vx=0, vy=0;
void setup(){
    size(500,400);
    imgBird=loadImage("bird.png");
    imageMode(CENTER);
}
boolean bMoving=false;
void draw(){
    background(255);
    image(imgBird, birdX,birdY, 100,100);
    if(bMoving) line(birdX,birdY,100,100);
    birdX+=vx; birdY+=vy;
    if(birdX>450 || birdX<50) VX=-VX*0.95;
    if(birdY>350 || birdY<50) VX=-VX*0.95;
}
void mousePressed(){
    if(dist(mouseX,mouseY, birdX,birdY)<50){
        oldX=birdX; oldY=birdY;
        bMoving=ture;
    }
}
void mouseDragged(){
    if(bMoving)
}
void mouseReleased(){
  if(bMoving){
    bMoving=false;
    vx=(oldX-mouseX)/10;vy=(oldY-mouseY)/10;
}

2020年5月14日 星期四

week12 程式設計



PImage imgBird, imgPig;
float birdX=200, birdY=200, oldX, oldY, vx=0, vy=0;
void setup(){
    size(400,400);
    imgBird=loadImage("bird.png");
    imgPig =loadImage("pig.gif");
    imageMode(CENTER);
}
void draw(){
    background(255);
    image(imgBird, birdX,birdY, 100,100);
    birdX+=vx; birdY+=vy;
}
void mousePressed(){
    oldX=birdX; oldY=birdY; ///點擊滑鼠移動
}
void mouseDragged(){
    birdX=mouseX; birdY=mouseY;
}
void mouseReleased(){///放開滑鼠往反方向飛
  vx = (oldX-birdX)/10;
  vy = (oldY-birdY)/10;
}

2020年5月7日 星期四

week11 程式設計

泡泡排序
int []a=new int[10];//Java's Array
//int []a={6,3,5,9,1,0,4,2,7,8};
//int []a={1,2,3,5,0,4,6,7,8,9};
//int []a={9,8,7,6,5,4,3,2,1,0};
void setup(){
  size(500,800);
  for(int i=0;i<10;i++){//random choose number
    a[i]=int(random(10));//亂數決定數字
  }
  textSize(36);
  textAlign(LEFT,TOP);
  showArray(y);
}
int y=0;
void showArray(int y){
  for(int i=0;i<10;i++){
    fill(255);  rect(i*50, y, 50,50);
    fill(0);         text(a[i], i*50, y);
  } 
}
void draw(){
 
}
void mousePressed(){
  for(int i=0; i<10-1;i++){
    if(a[i] > a[i+1]){
      int temp=a[i];
      a[i]=a[i+1];
      a[i+1]=temp;
      fill(255,0,0,128); rect(i*50, y, 100,50);
    }
  }
  y+=50;
  showArray(y);
}



size(200,200);
rect(50,50,50,50);
textSize(40); textAlign(LEFT,TOP);
fill(#ff0000); text("A", 50,50);



大小寫轉換

#include <stdio.h>
int main(){
char a[100];
scanf("%s", a);
for(int i=0;a[i]!=0;i++){
///char c=a[i];
if(a[i]>='A' && a[i]<='Z'){
a[i]=a[i]-'A'+'a';///減掉大寫加小寫
}
else if(a[i]>='a' && a[i]<='z'){
a[i]=a[i]-'a'+'A';
}
}
printf("%s\n", a);
}
A的B次方函數 

#include <stdio.h>
int MYPOWER(int a,int b){///呼叫
int ans=1;
for(int i=0;i<b;i++){
ans*=a;///a乘b次
}
return ans;
}
int main(void)
{
int a,b;
scanf("%d%d",&a,&b);
printf("[%d]",MYPOWER(a,b));
return 0;
}



void setup(){
    size(300,500);
    colorMode(HSB);
}
int ansX=2, ansY=3;
int N=5;///5X5
int H=255,S=255,B=255;///色調,色相,飽和
void draw(){
    background(0);
    int R=300/N, w=R/2;
    for(int x=0;x<N;x++){
        for(int y=0;y<N;y++){
            if(x==ansX && y==ansY) fill(H+10, S-35, B-45);///更改圓顏色
            else fill(H, S, B);
            ellipse(0+w+x*R, 200+w+y*R, R,R);
        }
    }
}
void mousePressed(){
    ansX = int(random(N)); ansY = int(random(N));///隨機換圓
    H+=16;
    if(H>255)H=0;
}

2020年4月30日 星期四

week10 程式設計

cpe cola

#include <stdio.h>
int main(){
int n;
while(scanf("%d", &n)==1){
int ans=n;
while(n>=3){///當空瓶>3再換一瓶
int more=n/3;///more空瓶多換的可樂
n=n%3;///還剩多少空瓶
ans+=more;///把換的可樂加上
n+=more;///把換的可樂和掉的空瓶加上
}
if(n==2) ans++;///當空瓶剩兩瓶借一瓶空瓶再換一瓶可樂
printf("%d\n", ans);
}
}




void setup(){
size(300,500);
}
int r=0;
void draw(){
  background(0);
  ellipse(70,200+75,r,r);
  ellipse(70,200+75+150,r,r);
  ellipse(70+150,200+75,r,r);
  ellipse(70+150,200+75+150,r,r);
  if(r<145) r+=2;///圓圈放大
  else r=0;///放大後歸零
}



void setup(){
size(300,500);
}
int r=0;
void draw(){
  background(0);
  for(int x=0;x<3;x++){
     for(int y=0;y<3;y++){
  ellipse(50+x*100,200+50+y*100,r,r);///for迴圈3x3
     }
  }
  if(r<100) r+=2;
  else r=0;
}

2020年4月23日 星期四

week09程式設計



fill(#F5ED02);///填充黃色
arc(50,50,100,100,radians(45),radians(315), PIE);///缺角圓型


void setup(){
  size(600,300);
}
int x=50, y=50, a=45, da=1;
void draw(){
 background(0);
fill(#F5ED02);
arc(x,y,100,100,radians(a),radians(360-a), PIE);
x++;
a+=da;
if(a>60) da=-1;
if(a<=0) da=+1;///控制嘴巴張開
}


void setup(){
  size(600,300);
}
int [][]bean={
  {1,1,1,1,1,1,1,1},
  {1,1,1,1,1,1,1,1},
  {1,1,1,1,1,1,1,1},
  {1,1,1,1,1,1,1,1},
  {1,1,1,1,1,1,1,1},
  {1,1,1,1,1,1,1,1}};///布置黃點
int x=50, y=50, a=45, da=1;
void draw(){
 background(0);
fill(#F5ED02);
for(int i=0;i<6;i++){
    for(int j=0;j<8;j++){
        if(bean[i][j]==1) ellipse( j*100+50, i*100+50, 6,6);
        if(dist(x,y, j*100+50, i*100+50)<50 ) bean[i][j]=0;///經過黃點後消除
    }
}
arc(x,y,100,100,radians(a),radians(360-a), PIE);
x++;
a+=da;
if(a>60) da=-1;
if(a<=0) da=+1;
}

2020年4月16日 星期四

程式設計week08

void setup(){
    size(300,300);
}
int angle=45;
void draw(){
    background(255);
    angle = mouseX;///移動滑鼠控制角度
    arc(100,100,100,100,radians(angle),radians(360-angle), PIE);
}



void setup(){
    size(300,300);
}
int angle=45;
void draw(){
    background(255);
    angle = (frameCount*2)%120;
    if(angle>60) angle=120-angle;///控制圓形張開角度
    arc(100,100,100,100,radians(angle),radians(360-angle), PIE);
}



void setup(){
    size(300,300);
}
int angle=45;
void draw(){
    background(255);
    angle = (frameCount*2)%120;
    if(angle>60) angle=120-angle;
    fill(255,251,0);///填充黃色
    arc(100,100,100,100,radians(angle+mouseX),radians(360-angle+mouseX), PIE);///滑鼠移動方向
}

2020年4月9日 星期四

程式設計week07

PImage img,img3,img1,img2;
void setup(){
    size(300,300);
    img1 = loadImage ("01.png");
    img2 = loadImage ("02.png");
    img3 = loadImage ("03.png");
    img = img3;
}
void draw(){
    background(255);
    image(img, 100,100);
}
void keyPressed(){
    if(keyCode==LEFT) img=img2;
    if(keyCode==RIGHT) img=img1;
}
void keyReleased(){
  img=img3;
}


#include <stdio.h>
2int main(){
3    int a=100;
4    int b=200;
5    int *p;
6    p=&a;
7
8    printf("%d\n", *p);
9    p=&b;
10    printf("%d\n", *p);
11    }



PImage img,img3,img1,img2;
float x=100,y=100,vx=0;
void setup(){
    size(300,300);
    img1 = loadImage ("03.png");
    img2 = loadImage ("02.png");
    img3 = loadImage ("01.png");
    img = img3;
}
void draw(){
    background(255);
    image(img, x,y);
    x+=vx;
}
void keyPressed(){
    if(keyCode==LEFT){
      img=img2; vx=-1;///左鍵向左,圖片變為向左
    }
    else if(keyCode==RIGHT){
      img=img1; vx=+1;///右鍵向右,圖片變為向右
    }
}
void keyReleased(){
  img=img3; vx=0;
}





#include <stdio.h>
char s1[30]="hello world";
char s2[30]="I am a book";
int main(){
    int *p;
    char a[10];
    p=s1;
    printf("%s\n", p);
    p=s2;
    printf("%s\n", p);
    }

PImage img1;
float x=100,y=100,vx=3,vy=0;
void setup(){
    size(500,500);
    img1 = loadImage ("03.png");
    
}
void draw(){
    background(255);
    image(img1, x,y,100,100);
    x+=vx;
    y+=vy;
    vy+=0.98;
    if(x>400) vx=-3;
    if(x<0) vx=+3;
    if(y>400) vy = -vy*0.8;
}///反彈

2020年3月26日 星期四

程式設計 week04

int []x=new int [1000];///java語言宣告
int []y=new int [1000];
color [] c=new color[1000];///顏色
int n=0;
void setup(){
    size(400,400);
}
void draw(){
    background(255);
    for(int i=0;i<n;i++){
        fill(c[i]);
        circle(x[i],y[i], 30);
        y[i]+=2;
    }
}
void mousePressed(){
    x[n]=mouseX;
    y[n]=mouseY;
    c[n]=color(random(255), random(255), random(255));///點擊產生隨機顏色球
    n++;
}


int []x=new int [1000];
int []y=new int [1000];
int []r=new int [1000];
color [] c=new color[1000];
int n=0;
void setup(){
    size(400,400);
}
void draw(){
    background(255);
    for(int i=0;i<n;i++){
        fill(c[i]);
        circle(x[i],y[i], r[i]);///求半徑設變數
        y[i]--;
    }
    if(mousePressed) r[n-1]++;///點擊增加球半徑
}
void mousePressed(){
    x[n]=mouseX;
    y[n]=mouseY;
    r[n]=10;///半徑最大設10
    c[n]=color(random(255), random(255), random(255));
    n++;
}


class Bubble{
    int x;
    int y;
    int r;
    color c;
}
Bubble [] b=new Bubble[1000];
int n=0;
void setup(){
    size(400,400);
}
void draw(){
    background(255);
    for(int i=0;i<n;i++){
        fill(b[i].c);
        circle(b[i].x,b[i].y, b[i].r);
        b[i].y--;
    }
    if(mousePressed) b[n-1].r++;
}
void mousePressed(){
    b[n]=new Bubble();
    b[n].x=mouseX;
    b[n].y=mouseY;
    b[n].r=10;
    b[n].c=color(random(255), random(255), random(255));
    n++;
}

class Bubble{
    int x;
    int y;
    int r;
    color c;
     Bubble (int _x, int _y,int _r){
       x=_x; y=_y; r=_r;
       c=color(random(255), random(255), random(255));
}
void drawAndUpdate(){
    fill(c);
    circle(x,y,r);
    y--;
  }

}



size(300,300);
int [][]table={{0,0,0,0,0},{1,1,1,0,1},{0,0,1,1,0},{0,0,1,1,0}};
for(int i=0;i<4;i++){
    for(int j=0;j<5;j++){
      if(table[i][j]==1) fill(255,0,0);
      else fill(128);
      rect( j*50,i*50, 50, 50);///i=y, j=x
    }
}

void setup(){
size(300,300);
}
void draw(){
    background(128);
    for(int i=0;i<6;i++){
        for(int j=0;j<6;j++){
            if(table[i][j]==1) fill(255,0,0);
            else fill(128);
            rect(j*50,i*50,50,50);
        }
    }
   }
  void mousePressed(){
      int x = (mouseX)/50;
      int y = (mouseY)/50;
      table[y][x]=1;
  }

2020年3月19日 星期四

程式設計week03


PImage img0,img1,img2;
void setup(){
    size(400,400);
    img0 = loadImage ("1.png");///導入圖片
}
void draw(){
    background(128);
    image(img0, mouseX,mouseY);///圖片跟著滑鼠
}

PImage img0,img1,img2;
void setup(){
    size(400,400);
    img0 = loadImage ("02.png");
    img1 = loadImage ("03.png");
    img2 = loadImage ("04.png");
}
  int userX=250,userY=250;
void draw(){
    background(128);
    if(keyPressed && keyCode==LEFT){///鍵盤點左,人物往左跑

      image(img0, userX,userY);
      userX--;
    }
    else if(keyPressed && keyCode==RIGHT){///方向鍵點右,往右跑

      image(img1, userX,userY);
      userX++;
}else image(img2, userX,userY);
}


PImage img,img0,img1,img2;
void setup(){
    size(768,1280);
    img = loadImage ("5.png");///增設背景
    img0 = loadImage ("02.png");
    img1 = loadImage ("03.png");
    img2 = loadImage ("04.png");

}
  int userX=250,userY=250;
void draw(){
    background(img);
    if(keyPressed && keyCode==LEFT){
      image(img1, userX,userY);
      userX--;
    }
    else if(keyPressed && keyCode==RIGHT){
      image(img2, userX,userY);
      userX++;
}
else if(keyPressed && keyCode==UP){///上鍵往上
      image(img0, userX,userY);
      userY--;
}
else image(img0, userX,userY);
}



PImage img,img0,img1,img2;
void setup(){
    size(768,1280);
    img = loadImage ("5.png");
    img0 = loadImage ("02.png");
    img1 = loadImage ("03.png");
    img2 = loadImage ("04.png");

}
  int userX=250,userY=250;
  int []bulletX={0,0,0,0,0};
  int []bulletY={0,0,0,0,0};
  int []bulletFlying={0,0,0,0,0};
  int n=0;
void draw(){
    background(img);
    if(keyPressed && keyCode==LEFT){
      image(img1, userX,userY);
      userX--;
    }
    else if(keyPressed && keyCode==RIGHT){
      image(img2, userX,userY);
      userX++;
}
else if(keyPressed && keyCode==UP){
      image(img0, userX,userY);
      userY--;
}else image(img0, userX,userY);
for(int i=0;i<n;i++){
if(bulletFlying[i]==1)
    ellipse(bulletX[i], bulletY[i], 5,10);
    bulletY[i]-=2;
}

}
void mousePressed(){
    bulletX[n]=userX;
    bulletY[n]=userY;
    bulletFlying[n]=1;
    n++;
}

2020年3月12日 星期四

互動程式設計 week02


processing 點案左鍵畫線

processing 點案左鍵新增圓球掉落
background(255);///設定背景白色
    circle(x,y, 10);///新增半徑5的圓
    y++;///圓球掉落=y++

新增圓球,最多5個
if(y[i]>=200-5) y[i]=200-5;///圓球掉落至y=200,5為扣掉球前半徑
void mousePressed(){
    if(n<5){///設定最大為5顆,小於5次才可++
        x[n]=mouseX;
        y[n]=mouseY;
        n++;
    }
}