2022年9月12日 星期一

Week02_Yiting

 1、做撲克牌

(1):

做一張卡片


程式碼:

size(500,500);
rect(100,100,200,300,20);///(x,y,寬,長,弧度) 白色方塊
fill(#BA90FF);
rect(110,110,180,280,20);///(x,y,寬,長,弧度) 紫色方塊

(2):

做很多張卡片


程式碼:
void setup(){
  size(500,500);
}
int W=20;///方塊的變數
void draw(){
  drawCard(100,100);///第一張牌的位置(x,y)
  drawCard(130,130);///第二張牌的位置(x,y)
  drawCard(160,160);///第三張牌的位置(x,y)
}
void drawCard(int x,int y){
  fill(255);///大方塊的顏色(白)
  rect(x-W/2,y-W/2,180+W,280+W,20);///大方塊的位置、大小、弧度
  fill(#BA90FF);
  rect(x,y,180,280,20);///小方塊的位置、大小、弧度
}
  
(3):

做撲克牌

程式碼:
void setup(){
  size(500,500);
}
int W=20;
void draw(){
  drawPokerCard(100,100,"SA");///(x,y,"要寫的文字")
  drawPokerCard(130,130,"H2");///(x,y,"要寫的文字")
  drawPokerCard(160,160,"DK");///(x,y,"要寫的文字")
  drawPokerCard(190,190,"CQ");///(x,y,"要寫的文字")
}///S(spade)=黑桃、H(heart)=紅心、D(diamond)=方塊、C(club)=梅花
void drawPokerCard(int x,int y,String face){///(初始化x,初始化y,初始化字)
  fill(255);
  rect(x-W/2,y-W/2,180+W,280+W,20);
  fill(#BA90FF);
  rect(x,y,180,280,20);
  fill(0);///字的顏色(黑)
  textSize(30);///字的大小
  text(face,x+10,y+30);///字的位置(寫在哪,x,y)
}
  
(4):
加中文字

先去textSize的網站找到CreateFont()參考他的程式碼(選取程式碼按右鍵/在參考文件裡找選取的字)

程式碼:
void setup(){
  size(500,500);
  PFont font = createFont("微軟正黑體",40);字形  函式 = createFont("字體",字的大小)
  textFont(font);
}

int W=20;
void draw(){
  drawPokerCard(100,100,"黑桃A");
  drawPokerCard(130,130,"紅心2");
  drawPokerCard(160,160,"方塊K");
  drawPokerCard(190,190,"梅花Q");
}
void drawPokerCard(int x,int y,String face){
  fill(255);
  rect(x-W/2,y-W/2,180+W,280+W,20);
  fill(#BA90FF);
  rect(x,y,180,280,20);
  fill(0);
  textSize(30);
  text(face,x+10,y+30);
}

(5):
改文字顏色

程式碼:
void setup(){
  size(500,500);
  PFont font = createFont("微軟正黑體",40);
  textFont(font);
}

int W=20;
void draw(){
  drawPokerCard(100,100,"黑桃A");
  drawPokerCard(130,130,"紅心2");
  drawPokerCard(160,160,"方塊K");
  drawPokerCard(190,190,"梅花Q");
}
void drawPokerCard(int x,int y,String face){
  fill(255);
  rect(x-W/2,y-W/2,180+W,280+W,20);
  fill(#BA90FF);
  rect(x,y,180,280,20);
  ///fill(0);
  if(face.indexOf("黑桃")==-1 && face.indexOf("梅花")==-1)fill(#FF0000);///如果字不是黑桃和梅花的話就是改成紅色(-1=沒有黑桃及梅花的話)
  else fill(0);///其他的為黑色
  textSize(30);
  text(face,x+10,y+30);
}
  
(6)
亂數

程式碼:
void setup(){
  size(500,500);
  PFont font = createFont("微軟正黑體",40);
  textFont(font);
  String[] flower ={"黑桃","紅心","方塊","梅花"};///隨機字的陣列
  face1=flower[int(random(4))]+int(random(13)+1);///字串1=隨機字的陣列+隨機數字(為了不要有0,所以後面+1)
  face2=flower[int(random(4))]+int(random(13)+1);///字串2=隨機字的陣列+隨機數字(為了不要有0,所以後面+1)
  face3=flower[int(random(4))]+int(random(13)+1);///字串3=隨機字的陣列+隨機數字(為了不要有0,所以後面+1)
  face4=flower[int(random(4))]+int(random(13)+1);///字串4=隨機字的陣列+隨機數字(為了不要有0,所以後面+1)
}
String face1,face2,face3,face4;
void draw(){
  drawPokerCard(100,100,face1);
  drawPokerCard(130,130,face2);
  drawPokerCard(160,160,face3);
  drawPokerCard(190,190,face4);
}
void drawPokerCard(int x,int y,String face){
  int W=20;
  fill(255);
  rect(x-W/2,y-W/2,180+W,280+W,20);
  fill(#BA90FF);
  rect(x,y,180,280,20);
  ///fill(0);
  if(face.indexOf("黑桃")==-1 && face.indexOf("梅花")==-1)fill(#FF0000);
  else fill(0);
  textSize(30);
  text(face,x+10,y+30);
}
  







  
















沒有留言:

張貼留言