2022年9月12日 星期一

RH week2

Week02    卡牌遊戲 

1.畫卡片

```c
    size(500,500);    ///最後的數字是弧度
    rect(100,100,150,250,10);
```


2.在卡片中再畫個卡片並加上顏色

```c
size(500,500);
rect(100,100,150,250,10);
fill(#39EA13);    ///裡面卡片的顏色
rect(105,105,140,240,10);
```

3.另一種寫法,加上變數

```c
size(500,500);
int W=25;
rect(100-W/2,100-W/2,150+W,250+W,20);
fill(#39EA13);
rect(100,100,150,250,20);
```

4.利用外掛函式drawCard()做出多張卡片

```c
void setup(){
  size(500,500);
}
int W=25;
void draw()
{
  drawCard(100,100);
  drawCard(130,130);
  drawCard(160,160);
}
void drawCard(int x,int y)    ///座標
{
  fill(255);
  rect(x-W/2,y-W/2,150+W,250+W,20);
  fill(#39EA13);
  rect(x,y,150,250,20);
}
```

5.加上撲克牌的花色與數字,調整文字顏色與位置、大小

```c
void setup(){
  size(500,500);
}
int W=20;
void draw()
{
  drawCard(100,100,"S4");
  drawCard(130,150,"H3");
  drawCard(160,200,"D5");
  drawCard(190,250,"CJ");
}///牌面:黑桃 Spade、紅心 Heart、方塊 Dimond、梅花 Club
void drawCard(int x,int y,String face)
{
  fill(255);
  rect(x-W/2,y-W/2,150+W,250+W,20);
  fill(#39EA13);
  rect(x,y,150,250,20);
  fill(0);
  textSize(40);
  text(face,x,y+40);
}
```

6.使用中文替代剛剛的英文,並新增中文的字體、大小

```c
void setup(){
  size(500,500);
  PFont font = createFont("標楷體",40);
  textFont(font);
}
int W=20;
void draw()
{
  drawCard(100,100,"黑桃4");
  drawCard(130,150,"紅心3");
  drawCard(160,200,"方塊5");
  drawCard(190,250,"梅花J");
}///牌面:黑桃 Spade、紅心 Heart、方塊 Dimond、梅花 Club
void drawCard(int x,int y,String face)
{
  fill(255);
  rect(x-W/2,y-W/2,150+W,250+W,20);
  fill(#39EA13);
  rect(x,y,150,250,20);
  fill(0);
  textSize(40);
  text(face,x,y+40);
}
```

7.寫出程式,使黑桃、梅花印出的顏色是黑色;紅心、方塊印出的顏色是紅色

```c
void setup(){
  size(500,500);
  PFont font = createFont("標楷體",40);
  textFont(font);
}
int W=20;
void draw()
{
  drawCard(100,100,"黑桃4");
  drawCard(130,150,"紅心3");
  drawCard(160,200,"方塊5");
  drawCard(190,250,"梅花J");
}///牌面:黑桃 Spade、紅心 Heart、方塊 Dimond、梅花 Club
void drawCard(int x,int y,String face)
{
  fill(255);
  rect(x-W/2,y-W/2,150+W,250+W,20);
  fill(#39EA13);
  rect(x,y,150,250,20);
  //fill(0);
  if(face.indexOf("黑桃")==-1 && face.indexOf("梅花")==-1)fill(#FF0000);  ///紅色
  else fill(0);  ///黑色
  textSize(40);
  text(face,x,y+40);
}
```

8.寫一個陣列,使其可以洗牌。利用random隨機選取數字,寫(13)+1的原因是為了避免出現數字0,最後再以face1~4印出,記得兩邊的「" "」要去掉

```c
void setup(){
  size(500,500);
  PFont font = createFont("標楷體",40);
  textFont(font);
  String[] flower={"黑桃","紅心","方塊","梅花"};
  face1=flower[int (random(4))]+int (random(13)+1);
  face2=flower[int (random(4))]+int (random(13)+1);
  face3=flower[int (random(4))]+int (random(13)+1);
  face4=flower[int (random(4))]+int (random(13)+1);
  ///取整數 0...12,所以要+1
}
String face1,face2,face3,face4;
void draw()
{
  drawCard(100,100,face1);
  drawCard(130,150,face2);
  drawCard(160,200,face3);
  drawCard(190,250,face4);
}///牌面:黑桃 Spade、紅心 Heart、方塊 Dimond、梅花 Club
void drawCard(int x,int y,String face)
{
  int W=20;
  fill(255);
  rect(x-W/2,y-W/2,150+W,250+W,20);
  fill(#39EA13);
  rect(x,y,150,250,20);
  //fill(0);
  if(face.indexOf("黑桃")==-1 && face.indexOf("梅花")==-1)fill(#FF0000);  ///紅色
  else fill(0);  ///黑色
  textSize(40);
  text(face,x,y+40);
}
```


如何把檔案上傳到github
1.到互動概論的檔案
2.Add file/Upload files
3.把檔案丟進去
4.下方修改week?
5.commit






沒有留言:

張貼留言