本文共 1592 字,大约阅读时间需要 5 分钟。
1.准备牌: 54张牌,存储到一个集合中 特殊牌:大王,小王其他52张牌:
定义一个数组/集合,存储4种花色:黑 红 梅 方
定义一个数组/集合,存储13个序号:2,A K Q… 4 3 循环嵌套遍历两个数组/集合组装52张牌2.洗牌:使用集合工具类Collections的方法
static void shuffle(List<?> list) 使用指定的随机源对指定列表进行置换。 会随机的打乱集合中元素的顺序3.发牌
要求: 1人17张牌,剩余3张作为底牌,一人一张轮流发牌:集合的索引 (0-53)%3
定义4个集合,存储3个玩家的牌和底牌 素引%3,有三个值(0,1,2) 0%3=0 1%3=1 2%3=2 分别发给三个玩家 索引>=51改底牌发牌4.看牌:直接打印集合,遍历存储玩家和底牌的集合
public class Doudizhi { public static void main(String[] args) { //定义一张54张牌的ArrayList集合 Listpuke = new ArrayList<>(); //定义两个数组,分别储存牌的花色和序号 String[] colors= { "♠","♥","♣","♦"}; String[] numbers= { "2","A","K","Q","J","10","9","8","7","6","5","4","3"}; //先把大小王存储到puke中 puke.add("大王"); puke.add("小王"); //组装52张牌 for (String number : numbers) { for (String color : colors) { //把组装好的牌放入puke中 puke.add(color+number); } } //System.out.println(puke); 看一下原始牌的效果 Collections.shuffle(puke);//洗牌 //System.out.println(puke);//看一下洗牌了的效果 //发牌 List player1=new ArrayList<>(); List player2=new ArrayList<>(); List player3=new ArrayList<>(); List dipai=new ArrayList<>(); for (int i = 0; i < puke.size(); i++) { //获取每一张牌 String p = puke.get(i); if(i>=51) { dipai.add(p);//给底牌发牌 } else if(i%3==0) { player1.add(p); //给玩家1发牌 } else if(i%3==1) { player2.add(p); //给玩家2发牌 } else if(i%3==2) { player3.add(p); //给玩家3发牌 } } //看牌 System.out.println("周润发:"+player1); System.out.println("刘德华:"+player2); System.out.println("周星驰:"+player3); System.out.println("底牌"+dipai); }}
转载地址:http://vqyki.baihongyu.com/