空闲时间来一下斗地主🙄
目录
1.准备牌
创建一个Poker集合来存储54张牌
直接将大王和小王用add方法添加进集合中
将花色和数字先分别用两个字符串数组存储,再用for循环添加进集合中
String[] colors = {"♠", "♥", "♣", "♦"};
String[] numbers = {"A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2"};
for (String number : numbers) {
for (String color : colors) {
poker.add(color + number);
}
}
效果如下
2.洗牌
用Collections中的方法打乱集合中元素的排序
Collections.shuffle(poker);
每次运行元素排序都不一样,效果如图
3.发牌
斗地主需要三个玩家,可用三个集合来表示三位玩家。
一张一张地发完牌后牌,留下的三张牌用一个集合表示。
ArrayList<String> player01=new ArrayList<>();
ArrayList<String> player02=new ArrayList<>();
ArrayList<String> player03=new ArrayList<>();
ArrayList<String> diPai=new ArrayList<>();
如何分别一张张的将牌发给玩家呢?
一个整数除以三,余数有三种情况
0%3=0 1%3=1 2%3=2 3%3=0
所以我们可以用if语句分别将牌发给玩家
for(int i=0;i<poker.size();i++){
String p=poker.get(i);
//轮流发牌
//当i剩下三张的时候,将这三张牌添加进底牌的集合中
if(i>=51){ diPai.add(p);}
else if(i%3==1){
player01.add(p);
}
else if(i%3==0){
player02.add(p);
}
else if(i%3==2){
player03.add(p);
}
}
4.看牌
分别输出集合,名字可以自己随便起的,可以自己试一下直接将赌神,赌圣,赌侠给凑齐😹
System.out.println("A:"+player01);
System.out.println("B:"+player02);
System.out.println("C:"+player03);
System.out.println("底牌:"+diPai);
效果如下