2020年5月8日 星期五

week11

今日上課內容:
1.複習瘋狂程設題目

/// 讀入整數反序列印


#include <stdio.h>
int a[20];
int main()
{
int i=0;
while(i<10)
{
scanf("%d",&a[i]);
if(a[i]==0)break;
i++;
}
for (int j=i-1;j>=0;j--)
{
printf("%d ",a[j]);
}
printf("\n");
return 0;
}

///大小寫轉換



#include <stdio.h>
char line[20];
int main()
{
scanf("%s", line);

for (int i=0; line[i]!=0;i++)
{
char c=line[i];
if(c>='A' && c<='Z')
{
line[i]=c-'A'+'a';
}
else if(c>='a'&&c<='z')
line[i]=c-'a'+'A';

}
printf("%s\n", line);

}

2.泡泡排序法



//int []a=new int[10];//Java's Array
//int []a={3,0,1,8,7,2,5,4,6,9};  //https://www.youtube.com/watch?v=lyZQPjUT5B4
//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};    //最糟的狀況:全倒 => 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]){
      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);
}

3.小精靈顯示



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;

}

4.小精靈移動



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==UP)    {dx=0;dy=-1;}
  if(keyCode==DOWN)  { dx=0;dy=+1;}
}

5.小精靈依控制鍵盤改變方向



***加這三行***
 ////int X=100, Y=100 ,dx=1,dy=0,angle=45, diff=2,dir=0;
////arc( X,Y, 80,80, radians(dir+angle), radians(dir+360-angle), PIE);
//// 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, 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;
  }
  }
  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;}
}

沒有留言:

張貼留言