2022年9月19日 星期一

互動程式week03

撲克牌洗牌(改進)

void setup()
{
  size(500,500);
  PFont font = createFont("標楷體",30);
  textFont(font);
  myShuffle();
}
void myShuffle()
{
  String [] flower = {"黑桃","紅心","方塊","梅花"};
  String [] number = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
  face1 = flower[int(random(4))]+number[int(random(13))];
  face2 = flower[int(random(4))]+number[int(random(13))];
  face3 = flower[int(random(4))]+number[int(random(13))];
  face4 = flower[int(random(4))]+number[int(random(13))];
}
void mousePressed()
{
  myShuffle();
}
int w = 20;
String face1,face2,face3,face4;
void draw()
{
  drawPokercard(100,100,face1);
  drawPokercard(130,150,face2);
  drawPokercard(160,200,face3);
  drawPokercard(190,250,face4);
}
void drawPokercard(int x,int y ,String face)
{
  fill(255);
  rect(x-w/2,y-w/2,150+w,230+w,20);
  fill(#E3FCD6);
  rect(x,y,150,230,20);
  if(face.indexOf("黑桃") == -1 && face.indexOf("梅花") == -1)fill(#FF0000);
  else fill(0);
  textSize(30);
  text(face,x,y+30);
}

52張撲克牌

void setup()
{
  size(801,721);
  PFont font = createFont("標楷體",16);
  textFont(font);
}
String [] faces =
{
  "黑桃A","黑桃2","黑桃3","黑桃4","黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K",
  "紅心A","紅心2","紅心3","紅心4","紅心5","紅心6","紅心7","紅心8","紅心9","紅心10","紅心J","紅心Q","紅心K",
  "方塊A","方塊2","方塊3","方塊4","方塊5","方塊6","方塊7","方塊8","方塊9","方塊10","方塊J","方塊Q","方塊K",
  "梅花A","梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10","梅花J","梅花Q","梅花K"
};
void draw() 
{
  for(int i=0;i<52;i++)
  {
    int x=(i%10)*80;
    int y=(i/10)*120;
    fill(255);
    rect(x,y,80,120,10);
    fill(#98FFAB);
    rect(x+5,y+5,70,110,10);
    if(faces[i].indexOf("黑桃") == -1 && faces[i].indexOf("梅花") == -1)fill(#FF0000);
    else fill(0);
    text(faces[i],x+10,y+20);
  }
}

排序

int a;
int b;
int t = a;
a = b;
b = t;

滑鼠點擊、滑動函式

void mousePressed(){}
void mouseDragged(){}

撲克牌洗牌

void setup()
{
  size(801,721);
  PFont font = createFont("標楷體",16);
  textFont(font);

}
String [] faces =
{
  "黑桃A","黑桃2","黑桃3","黑桃4","黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K",
  "紅心A","紅心2","紅心3","紅心4","紅心5","紅心6","紅心7","紅心8","紅心9","紅心10","紅心J","紅心Q","紅心K",
  "方塊A","方塊2","方塊3","方塊4","方塊5","方塊6","方塊7","方塊8","方塊9","方塊10","方塊J","方塊Q","方塊K",
  "梅花A","梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10","梅花J","梅花Q","梅花K"
};
void draw() 
{
  for(int i=0;i<52;i++)
  {
    int x=(i%10)*80;
    int y=(i/10)*120;
    fill(255);
    rect(x,y,80,120,10);
    fill(#98FFAB);
    rect(x+5,y+5,70,110,10);
    if(faces[i].indexOf("黑桃") == -1 && faces[i].indexOf("梅花") == -1)fill(#FF0000);
    else fill(0);
    text(faces[i],x+10,y+20);
  }
}
void mouseDragged()
{
  int a = int(random(52));
  int b = int(random(52));
  String t = faces[a];
  faces[a] = faces[b];
  faces[b] = t;
}

撲克牌洗牌(完成版)

void setup()
{
  size(500,500);
  PFont font = createFont("標楷體",30);
  textFont(font);
  myShuffle();
}

String [] faces =
{
  "黑桃A","黑桃2","黑桃3","黑桃4","黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K",
  "紅心A","紅心2","紅心3","紅心4","紅心5","紅心6","紅心7","紅心8","紅心9","紅心10","紅心J","紅心Q","紅心K",
  "方塊A","方塊2","方塊3","方塊4","方塊5","方塊6","方塊7","方塊8","方塊9","方塊10","方塊J","方塊Q","方塊K",
  "梅花A","梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10","梅花J","梅花Q","梅花K"
};

void myShuffle()
{
  for(int i=0;i<99999;i++)
  {
  int a = int(random(52));
  int b = int(random(52));
  String t = faces[a];
  faces[a] = faces[b];
  faces[b] = t;
  }
  face1 = faces[0];
  face2 = faces[1];
  face3 = faces[2];
  face4 = faces[3];
}

void mousePressed()
{
  myShuffle();
}

String face1,face2,face3,face4;
int w = 20;

void draw()
{
  drawPokercard(100,100,face1);
  drawPokercard(130,150,face2);
  drawPokercard(160,200,face3);
  drawPokercard(190,250,face4);
}
void drawPokercard(int x,int y ,String face)
{
  fill(255);
  rect(x-w/2,y-w/2,150+w,230+w,20);
  fill(#52C4FF);
  rect(x,y,150,230,20);
  if(face.indexOf("黑桃") == -1 && face.indexOf("梅花") == -1)fill(#FF0000);
  else fill(0);
  textSize(30);
  text(face,x,y+30);
}



沒有留言:

張貼留言