2020年5月21日 星期四

week13

程式設計二
瘋狂程設 

1.進階題:進階題:函數反序排列數字

2.進階題:2進位轉10進位

Codeblocks
1.CPE練習
程式:
///245+2+4+5=256 技巧3:了解核心
///198+1+9+8=216 genrator算法
///1979+1+9+7+9=2005
#include <stdio.h>
int genBig(int n)///從小數字,產生大數字
{
    int ans=n;
    while(n>0){
        int now=n%10;
        n/=10;
        ans+=now;
    }
    return ans;
}
int main(){
    int T;
    scanf("%d",&T);
    for(int t=0;t<T;t++){
    int n;
    scanf("%d",&n);
    int ans=0;///技巧4:暴力法,全部都試,看誰剛好是n
    for(int small=1;small<=n;small++){
        if(genBig(small)==n){
            ans=small;
            break;
            }
        }
        printf("%d\n",ans);
    }
}




Processing

1.Angry Bird可以跟著滑鼠移動

程式:
PImage imgBird;
void setup(){
   size(500,400);
   imgBird=loadImage("bird.jpg");
   imageMode(CENTER);///以正中心,當座標
}
void draw(){
  background(255);
  image(imgBird,mouseX,mouseY,100,100);
}

2.當滑鼠點擊會有導引線
程式:
PImage imgBird;
void setup(){
   size(500,400);
   imgBird=loadImage("bird.jpg");
   imageMode(CENTER);
}
float birdX=100,birdY=300,oldX,oldY;///之前的鳥在哪裡
void draw(){
  background(255);
  image(imgBird,birdX,birdY,100,100);///不能一直跟著mouse動,改用birdX,birdY
  if(mousePressed) line(birdX,birdY,oldX,oldY);
}
void mousePressed(){///按下去才會開始動
  birdX=mouseX;birdY=mouseY;
}

3.憤怒鳥會彈出去且碰到邊界會反彈














程式:
PImage imgBird;
void setup(){
   size(500,400);
   imgBird=loadImage("bird.jpg");
   imageMode(CENTER);
}
float birdX=100,birdY=300,oldX,oldY,vx=0,vy=0;
boolean bMoving=false;
void draw(){
  background(255);
  image(imgBird,birdX,birdY,100,100);
  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;
  }
}
void mousePressed(){
  if(dist(mouseX,mouseY,birdX,birdY)<50){
  oldX=birdX;oldY=birdY;
  bMoving=true;
  }
}
void mouseDragged(){
  if(bMoving){
    birdX=mouseX;birdY=mouseY;
  }
}

沒有留言:

張貼留言