程式設計二
瘋狂程設
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;
}
}
沒有留言:
張貼留言