今天我們要來了解泡泡排序法的奧妙以及讓小精靈吃豆豆
那麼就開始吧!
//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={11,5,4,71,50,32,8,97,9,6};//最糟的狀況
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]){
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);
}
//https://www.youtube.com/watch?v=lyZQPjUT5B4
(大家可以點進去瞧瞧)
小精靈之糟糕版本~轉吧轉吧小精靈
void setup()
{
size(400,400);
}
int X=100, Y=100, angle=45, diff=1; //diff視角度angle的改變量,先放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, angle=45, diff=1; //diff視角度angle的改變量,先放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=5;
void draw()
{
background(0);
fill(#F791F7);//換個顏色如何呀
arc(X,Y,80,80,radians(angle),radians(360-angle),PIE);
angle+=diff;
if(angle>60)diff=-5;///diff數字越大,嘴巴開和速度愈快
if(angle<0)diff=+5;///diff數字越大,嘴巴開和速度愈快
X+=dx; Y+=dy;
}
void KeyPressed()//打錯字(大寫)的話就無法繼續讀取下面程式哦!
{
if(keyCode==RIGHT){ dx= +1;dy=0;}
if(keyCode==LEFT){ dx= -1;dy=0;}
if(keyCode==UP){ dx= 0;dy=-1;}
if(keyCode==DOWN){ dx= 0;dy=+1;}
}
為了不讓小精靈跑出框外,就使用的的方向鍵吧!
void setup()
{
size(400,400);
}
int X=100, Y=100,dx=1,dy=0, angle=45, diff=5;
void draw()
{
background(0);
fill(#F791F7);
arc(X,Y,80,80,radians(angle),radians(360-angle),PIE);
angle+=diff;
if(angle>60)diff=-5;///diff數字越大,嘴巴開和速度愈快
if(angle<0)diff=+5;///diff數字越大,嘴巴開和速度愈快
X+=dx; Y+=dy;
}
void keyPressed()//不小心發現,換方向時,舊的還在走
{
if(keyCode==RIGHT){ dx= +1;dy=0;}
if(keyCode==LEFT){ dx= -1;dy=0;}
if(keyCode==UP){ dx= 0;dy=-1;}
if(keyCode==DOWN){ dx= 0;dy=+1;}
}
小精靈能夠自由地走到上下左右了呢!
{
size(400,400);
}
int X=100, Y=100,dx=1,dy=0, angle=45, diff=5,dir=0; //dir:0,90,180,270
void draw()
{
background(0);
fill(#F791F7);
arc(X,Y,80,80,radians(dir+angle),radians(dir+360-angle),PIE);
angle+=diff;
if(angle>60)diff=-5;///diff數字越大,嘴巴開和速度愈快
if(angle<0)diff=+5;///diff數字越大,嘴巴開和速度愈快
X+=dx; Y+=dy;
}
void keyPressed() //增加方向的dir: 0,90,180,270給第7行用
{
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={ //左邊是y座標,右邊是x座標
{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,a=45,diff=5,dir=0; //dir:0,90,180,270
void draw()
{
background(#FAFF0D); //換顏色?
fill(#553DE0); //換顏色?
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(#F791F7);arc(X,Y,40,40, radians(dir+a),radians(dir+360-a),PIE);
a+=diff;
if(a>60) diff=-5;
if(a<=0) diff=+5;
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;}
}
這週我們知道如何讓小精靈吃豆子,加上上次的課堂內容,終於學會了整個小精靈遊戲,很開心!!!








沒有留言:
張貼留言