泡沫排序法
程式碼:
//int [ ]a=new int[10]; //Java's Array
//int [ ]a={3,0,1,8,7,2,5,4,6,9};
//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={0,9,1,2,3,5,4,6,7,8}; //對於快要排好的東西, 特別快!!!
int [ ]a={9,8,7,6,5,4,3,2,1,0}; //最糟的狀況:全倒
void setup(){
size(500,800);
//for(int i=0;i<10;i++){
// 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);
}
小精靈嘴開合
程式碼:
void setup( )
{
size(400,400);
}
int X=100,Y=100,angle=45,diff=1;
void draw( )
{
background(0);
arc(X , Y , 80 , 80 , radians(angle) , radians(360-angle) , PIE);
angle+=diff;
if(angle>60) diff=-1;
if(angle<0) diff=1;
}
小精靈移動
程式碼:
void setup( )
{
size(400,400);
}
int X=100 , Y=100 , dx=1 , dy=0 , angle=45 , diff=2; //設移動方向
void draw( )
{
background(0);
arc(X , Y , 80 , 80 , radians(angle) , radians(360-angle) , PIE);
angle+=diff;
if(angle>60) diff=-2;
if(angle<0) diff=2;
X+=dx; Y+=dy;
}
void keyPressed( )
{
if(keyCode==RIGHT)
{
dx=+1;dy=0;
}
if(keyCode==LEFT)
{
dx=-1;dy=0;
}
if(keyCode==DOWN)
{
dx=0;dy=+1;
}
if(keyCode==UP)
{
dx=0;dy=-1;
}
}
小精靈轉方向
程式碼:
void setup( )
{
size(400,400);
}
int X=100,Y=100,dx=1,dy=0,angle=45,diff=2,dir=0; //旋轉角度90 180 270 360
void draw( )
{
background(0);
arc(X,Y,80,80,radians(dir+angle),radians(dir+360-angle),PIE);
angle+=diff;
if(angle>60) diff=-2;
if(angle<0) diff=2;
X+=dx; Y+=dy;
}
void keyPressed( )
{
if(keyCode==RIGHT)
{
dx=+1;dy=0;dir=0;
}
if(keyCode==LEFT)
{
dx=-1;dy=0;dir=180;
}
if(keyCode==DOWN)
{
dx=0;dy=+1;dir=90;
}
if(keyCode==UP)
{
dx=0;dy=-1;dir=270;
}
}
小精靈吃豆子
程式碼:
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,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,1,1,1},
{1,1,1,1,1, 1,1,1,1,1,1},
};
void setup( )
{
size(400,400);
}
int X=100 , Y=100 , dx=1 , dy=0 , angle=45 , diff=2 , dir=0;
void draw( )
{
background(0);
fill(255);
for(int y=0;y<10;y++) //迴圈畫豆子
{
for(int x=0;x<10;x++)
{
if(bean[y][x]==0)continue;
ellipse(20+x*40,20+y*40, 10,10);
if(dist(X,Y,20+x*40,20+y*40)<20) bean[y][x]=0;
}
}
fill(#FFCF0D);
arc(X , Y , 80 , 80 , radians(dir+angle) , radians(dir+360-angle) , PIE);
angle+=diff;
if(angle>60) diff=-2;
if(angle<0) diff=2;
X+=dx; Y+=dy;
}
void keyPressed( )
{
if(keyCode==RIGHT)
{
dx=+1;dy=0;dir=0;
}
if(keyCode==LEFT)
{
dx=-1;dy=0;dir=180;
}
if(keyCode==DOWN)
{
dx=0;dy=+1;dir=90;
}
if(keyCode==UP)
{
dx=0;dy=-1;dir=270;
}
}
沒有留言:
張貼留言