集合写简单斗地主
思路分析
代码实现:
import java.util.ArrayList;
import java.util.Collections;
/**
* @author
* @date
*
*/
public class doudizhu {
public static void main(String[] args) {
//1.创建牌
//定义一个存储54张牌的ArrayList集合,泛型使用String
ArrayList<String> poker = new ArrayList<>();
//花色集合
String[] colors = {"♠","♥","♣","♦"};
//数字集合
String[] numbers = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
//大王、小王
poker.add("大王");
poker.add("小王");
//将花色和数字搭配存进poker集合,整副牌就创建完了
for (String number:numbers) {
for (String color:colors) {
poker.add(color+number);
// System.out.println(color+number);
}
}
//2.洗牌
//shuffle:使用默认随机源对指定列表进行置换,达到洗牌的目的
Collections.shuffle(poker);
// System.out.print(poker);
//3.发牌
//创建三个玩家集合+底牌集合
ArrayList<String> player1 = new ArrayList<>();
ArrayList<String> player2 = new ArrayList<>();
ArrayList<String> player3 = new ArrayList<>();
ArrayList<String> dipai = new ArrayList<>();
//遍历poker集合,获取每一张牌
// 使用poker集合的索引给三个玩家轮流发牌
// 剩余三张给底牌
for (int i = 0; i <poker.size() ; i++) {
//获取每一张牌
String p = poker.get(i);
if (i >= 51){
dipai.add(p);
}else if(i%3==0){
player1.add(p);
}else if(i%3==1){
player2.add(p);
}else if(i%3==2){
player3.add(p);
}
}
//4.看牌
System.out.println("玩家1:"+player1);
System.out.println("玩家2:"+player2);
System.out.println("玩家3:"+player3);
System.out.println("底牌:"+dipai);
}
}
输出结果: