泡沫排序
當左邊的數字沒有大於右邊的數字時,會換成右邊的數字再去跟右邊比大小。
每次比完一輪後會再從頭開始,兩兩比較,較小的數字會繼續在原地不動
,越大越往後面走。
,越大越往後面走。
接上次小精靈
畫出會張嘴的精靈
鍵盤下上左右跟著移動的精靈
嘴巴跟著左右鍵,改變方向

程式碼
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,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;}
}







沒有留言:
張貼留言