public static void main(String[] args) {
//存储54张牌
ArrayList<String> poker =new ArrayList<>();
//定义两个数组,一个存储牌的花色,一个存储牌的序号
String[] colors = {"红桃","黑桃","梅花","方片"};
String[] numbers ={"2","A","K","Q","J","10","9","8","7","6","5","4","3"} ;
//先把大王小王加入到poker集合中
poker.add("大王");
poker.add("小王");
//循环嵌套遍历colors和num数组,组装其余52张牌
for (String num:numbers){
for (String color:colors){
poker.add(color+num);
}
}
//洗牌
//使用集合的工具类Collection中的方法 static void shuffle<List<?> list>
//使用默认随机源对指定列表进行置换
Collections.shuffle(poker);
//发牌
//定义四个集合,三个集合存储玩家的牌,一个集合存储底牌
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
//遍历poker集合,获取每一张牌
//使用poker集合的索引%3给3个玩家轮流发牌
//剩余三张牌给底牌(先判断底牌i>=51,否则牌就没了)
for (int i = 0; i < poker.size(); i++) {
//获取每张牌
String pai = poker.get(i);
//轮流发牌
if (i>=51){
dipai.add(pai);
}
else if (i%3==0)
player1.add(pai);
else if (i%3==1)
player2.add(pai);
else
player3.add(pai);
}
//随机产生地主
int dizhu = new Random().nextInt(3)+1;
System.out.println("地主是:player"+dizhu);
//把底牌添加到地主的集合中
if (dizhu==1) {
for (int i = 0; i < dipai.size(); i++) {
String dizhupai = dipai.get(i);
player1.add(dizhupai);
}
}
else if (dizhu==2){
for (int i = 0; i < dipai.size(); i++) {
String dizhupai = dipai.get(i);
player2.add(dizhupai);
}
}
else {
for (int i = 0; i < dipai.size(); i++) {
String dizhupai = dipai.get(i);
player3.add(dizhupai);
}
}
System.out.println("底牌:"+dipai);
System.out.println("player1:"+player1);
System.out.println(player1.size());
System.out.println("player2:"+player2);
System.out.println(player2.size());
System.out.println("player3:"+player3);
System.out.println(player3.size());
}
java基础实现斗地主发牌
于 2022-03-09 14:00:14 首次发布