利用列表存储:生成52张扑克牌(不含大小王),将52张扑克牌随机分给4人,显示每人得到的扑克牌。

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Porker {
    public static void main(String[] args){
        List<String> Decor = new ArrayList<>(4);//4种花色
        List<String> Number = new ArrayList<>(13);//每种花色有1-k张扑克牌
        List<List<String>> Deck = new ArrayList<>();//一副扑克牌

        Decor.add("Spade");//黑桃
        Decor.add("Heart");//红心
        Decor.add("Club");//梅花
        Decor.add("Diamond");//方片

        for(int i=2;i<11;i++){

            Number.add(i+" ");
        }
        Number.add("A");
        Number.add("J");
        Number.add("O");
        Number.add("K");

//        Porker.add(Decor);
//        Porker.add(Number);
//        System.out.println(Porker);
        for(String s: Decor){
            for(String m: Number){
                List<String> Porker = new ArrayList<>();
                Porker.add(s);
                Porker.add(m);
                Deck.add(Porker);
            }
        }
        System.out.println("52张牌分别为"+Deck);
        System.out.println("以下分别为4人分到的牌:");
        int count = 1;
        int randomSeriesLength = 13;
//        List<String> a = new ArrayList<>();
        do {
            Collections.shuffle(Deck);//随机打乱Deck顺序
            List<List<String>> randomSeries = Deck.subList(0,randomSeriesLength);
            System.out.println(randomSeries);
            count++;
//            for(int i=0;i<randomSeriesLength;i++){
//                //本来想使用equals()函数比较randomSeries列表与Deck列表中的元素,但是报错。
//                a = randomSeries.get(i);
//                Deck.remove(a);
//            }
            Deck.removeAll(randomSeries);//因randomSeries列表中的Porker已被抽走,所以remove
        }while(count<=4);
    }
}

将花色存储在Dector列表中,卡牌上的数字存储在Number(A,2,...,10,J,O,K)列表中。众所周知,扑克牌是54张,但题意表明不算大小王,那现在有52张,也就是黑桃、红心、梅花、方片各13张,卡牌上的数字分别是A,2,...,10,J,O,K。使用List<List<String>>存储卡牌的花色和数字信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值