package day_02_Demo.pokerDemo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
//按照斗地主的規則,完成洗牌發牌的動作。 具體規則:
//使用 54 張牌打亂順序,三個玩家參與游戲,三人交替摸牌,每人 17 張牌,最后三
//張留作底牌。
public class Poker {
public static void main(String[] args) {
// 准備牌:
//創建三個集合分別是:撲克箱pokerBox,撲克花色colors,撲克數字numbers
ArrayList<String> pokerBox = new ArrayList<>();
Collection<String> colors = new ArrayList<>();
Collection<String> numbers = new ArrayList<>();
colors.add("♠");
colors.add("♥");
colors.add("♦");
colors.add("♣");
for (int i = 2; i <=10 ; i++) {
numbers.add(i+"");//注意拼接
}
numbers.add("A");
numbers.add("J");
numbers.add("Q");
numbers.add("K");
//添加大王,小王
pokerBox.add("大王");
pokerBox.add("小王");
//拼接花色和數字,
// System.out.println(colors);
// System.out.println(numbers);
for (String color:colors ) {
for (String number:numbers ) {
String s = color+number;
pokerBox.add(s);
}
}
System.out.println(pokerBox);
//打亂撲克牌:洗牌
Collections.shuffle( pokerBox);
System.out.println(pokerBox);
//• 發牌
//將每個人以及底牌設計為 ArrayList,將最后 3 張牌直接存放於底牌,剩余牌通過對3 取模依次發牌。
//創建三個玩家player,和底牌
Collection<String> player1 = new ArrayList<>();
Collection<String> player2 = new ArrayList<>();
Collection<String> player3 = new ArrayList<>();
Collection<String> diPai = new ArrayList<>();
//遍歷撲克箱pokerBox
for (int i = 0; i <pokerBox.size() ; i++) {
//獲取牌面
// String card = (String) ((List<?>) pokerBox).get(i);
String card = pokerBox.get(i);
if (i >=51) {
diPai.add(card);
}else if (i%3 == 0){
player1.add(card);
}else if (i%3 == 1){
player2.add(card);
}else {
player3.add(card);
}
}
//• 看牌
//直接打印每個集合。
System.out.println("tom:"+player1);
System.out.println("JACK:"+player2);
System.out.println("LILI:"+player3);
System.out.println("tom:"+diPai);
}
}