需求:
使用List集合,模拟3人斗地主:准备牌、洗牌、发牌、看牌。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class List_DDZ {
public static void main(String[] args) {
//准备阶段
//创建存储牌的集合
List<String> pakerBox=new ArrayList<>();
//创建存储花色的集合
List<String> colors=new ArrayList<>();
colors.add("♠");
colors.add("♥");
colors.add("♣");
colors.add("♦");
//创建存储数字2-10和JQKA的集合
List<String> nums=new ArrayList<>();
for (int i = 2; i <=10 ; i++) {
nums.add(i+"");
}
nums.add("J");
nums.add("Q");
nums.add("K");
nums.add("A");
//将花色和数字进行组合,并存放到存储牌的集合中
for(String color:colors){
for (String num:nums){
String card=color+num;
pakerBox.add(card);
}
}
//添加大小王
pakerBox.add("大王🃏");
pakerBox.add("小王🃏");
//看一下牌库
//System.out.println(pakerBox);
//洗牌
Collections.shuffle(pakerBox);
//发牌
//创建4个集合分别存储3个人和底牌
List<String> p1=new ArrayList<String>();
List<String> p2=new ArrayList<String>();
List<String> p3=new ArrayList<String>();
List<String> dipai=new ArrayList<String>();
for (int i = 0; i <pakerBox.size() ; i++) {
//根据索引获取牌
String card=pakerBox.get(i);
//准备底牌
if (i<3){
dipai.add(card);
}else {
//三个玩家
if (i%3==0){
p1.add(card);
}else if (i%3==1){
p2.add(card);
}else {
p3.add(card);
}
}
}
//查看牌
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
System.out.println(dipai);
}
}
执行结果:
农民1:[♠4, ♣10, ♠10, ♣8, ♦5, ♥6, ♣5, ♥8, ♥10, ♠Q, ♥K, 大王🃏, ♠6, ♦Q, ♣J, ♥4, ♦10]
农民2:[♣9, ♥3, ♠3, ♠K, ♣7, ♥2, ♣K, ♠7, ♠J, ♥9, ♥5, ♦7, ♣A, ♠5, ♦3, ♦A, ♠2]
地主:[♦4, ♠8, 小王🃏, ♦K, ♠9, ♦2, ♦9, ♣6, ♠A, ♣Q, ♣4, ♥J, ♣2, ♦6, ♥Q, ♦8, ♣3]
底牌:[♥A, ♥7, ♦J]