斗地主发牌

package com.kfm.day0907.ex;

import java.util.*;

/**
 * 有一个集合保存扑克牌的花色(四种),另一个集合保存扑克牌点数(13个)。
 * 创建一个新的集合保存所有的扑克牌(54张,包含 大小王)。
 * 将扑克牌分为四份(3个玩家,1份底牌),排序后输出四份手牌
 *
 * List<String> flower; // 存花色
 * List<String> points; // 存点数
 *
 * List<String> poker; // 扑克牌
 *
 * List<String> player1; // 玩家一
 * List<String> player2; // 玩家二
 * List<String> player3; // 玩家三
 * List<String> bottom; // 底牌
 * @author by FZB
 * @date 2023/9/7
 */
public class Ex05 {
    public static void main(String[] args) {

        List<String> color = List.of("♥","♠","♦","♣");
        List<String> points = List.of("A","2","3","4","5","6","7","8","9","10","J","Q","K");
        List<String> poker = new ArrayList<>(List.of(" 🃏"," 🃏"));

        //map集合用来给牌排序
        Map<String,Integer> map = new HashMap<>();
        map.put("3", 1);
        map.put("4", 2);
        map.put("5", 3);
        map.put("6", 4);
        map.put("7", 5);
        map.put("8", 6);
        map.put("9", 7);
        map.put("10", 8);
        map.put("J", 9);
        map.put("Q", 10);
        map.put("K", 11);
        map.put("2", 12);
        map.put("A", 13);
        map.put("🃏",14);
        map.put("🃏",15);


        List<String> player1 = new ArrayList<>();
        List<String> player2 = new ArrayList<>();
        List<String> player3 = new ArrayList<>();
        List<String> bottom = new ArrayList<>();

        color.stream().forEach(c -> {
            points.stream().forEach(p -> {
                poker.add(c + " " +p);
            });
        });

        //随机排列集合
        Collections.shuffle(poker);
        //跳过三张底牌
        poker.stream().forEach(e -> {
            if(player1.size() <= 16 ) player1.add(e);
            else if(player2.size() <= 16) player2.add(e);
            else if(player3.size() <= 16)player3.add(e);
            else bottom.add(e);
        });


        //比较器,用来给卡牌排序
        Comparator<String> stringComparator = new Comparator<String>() {
            @Override
            public int compare(String p1, String p2) {
                return map.get(p1.split(" ")[1]) - map.get(p2.split(" ")[1]);
            }
        };

        Collections.sort(player1,stringComparator);
        Collections.sort(player2,stringComparator);
        Collections.sort(player3,stringComparator);
        Collections.sort(bottom,stringComparator);


        System.out.println("玩家一:" + player1);
        System.out.println("玩家一:" +player2);
        System.out.println("玩家一:" +player3);
        System.out.println("底牌:" +bottom);


        
    }


}

输出为:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值