创建牌面集合,花色集合,数字集合
通过循环将花色集合与数字集合拼接,再将拼接好的字符串放入牌面集合
再利用Collections 的api方法 Collections.shuffle(pokerbox); 进行洗牌
在创建四个集合 用来储存 发的 玩家的牌和底牌
利用 循环对三整除求余 分别将牌分发 当发到第 51 张牌的时候 留三张当做底牌
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
public class Poker {
public static void main(String[] args) {
/*
* 1 . 准备牌
*
* */
// 创建牌盒 用来储存牌面
ArrayList<String> pokerbox = new ArrayList<>();
// 创建花色集合
ArrayList<String> colors = new ArrayList<>();
// 创建数字集合
ArrayList<String> numbers = new ArrayList<>();
// 分别给花色 以及 数字集合添加元素
colors.add("♥");
colors.add("♦");
colors.add("♠");
colors.add("♣");
for (int i = 2; i <= 10; i++) {
numbers.add(i+"");
}
numbers.add("J");
numbers.add("Q");
numbers.add("K");
numbers.add("A");
// 创造牌 拼接花色与数字
// 拿出每一个花色 然后和每一个数字进行结合 储存在牌盒中
for (String color : colors) {
//color 每一个花色
//遍历数字集合
for (String number : numbers) {
// 结合
String card = color+number;
// 储存到牌盒中
pokerbox.add(card);
}
}
// 大王小王
pokerbox.add("小☺");
pokerbox.add("小☠");
// System.out.println(pokerBox);
// 洗牌 是不是就是将 牌盒中 牌的索引打乱
// Collection 类 工具类 都是静态方法
// shuffer 方法
/*
*
* Static void shuffle(list<?> list)
* 使用默认随机源对指定列表进行置换
*
* */
// 洗 牌
Collections.shuffle(pokerbox);
// 发 牌
// 创建 三个 玩家集合 创建一个底牌集合
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
// 遍历 牌盒 必须知道索引
for (int i = 0; i < pokerbox.size(); i++) {
// 获取 牌面
String card = pokerbox.get(i);
// 留出三张底牌 存到 底牌集合中
if(i>=51){
//存牌到底牌集合中
dipai.add(card);
}else{
if (i%3==0){//玩家 1 %3==0;
player1.add(card);
}else if(i%3==1) {// 玩家2 %3==1
player2.add(card);
} else {// 玩家3
player3.add(card);
}
}
}
// 发牌
System.out.println("性感荷官:发牌咯");
System.out.println("p1"+player1);
System.out.println("p2"+player2);
System.out.println("p3"+player3);
System.out.println("底牌"+dipai);
}
}