2020年5月23日 星期六

豆豆好吃Week11

泡泡排序法☍


                                  //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;}

                           }

沒有留言:

張貼留言