泡泡排序法☍
//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={2,8,4,5,0,3,6,7,1,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};//最糟的狀況:全倒 => QQ
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]){ (如果左邊的數字比較大的話)
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(豆豆的初始位子),
dx=1,dy =0(豆豆的移動數值),angle=45(豆豆開口的角度),
dir=0,diff=2;
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==UP(按下上鍵的時候)) {dx=0;dy-=1;dir=270;}
if(keyCode==DOWN(按下下鍵的時候)) {dx=0;dy+=1;dir=90;}
}
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},
};
void setup(){
size(400,400);
}
int X=100,Y=100,dx=1,dy=0,angle=45,dir=0,diff=2;
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; (如果小點點的位址是0的話就繼續跑)
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,40,40,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==UP(按下上鍵的時候)) {dx=0;dy-=1;dir=270;}
if(keyCode==DOWN(按下下鍵的時候)) {dx=0;dy+=1;dir=90;}
}




沒有留言:
張貼留言