JAVA斗地主简易练习

package com.zhy;

import java.util.*;

//斗地主 模拟 洗牌
//牌数 54 张 大王 小王 1-10 J Q K 四个
//1-10
public class DouDiZhuTest {
    public static void main(String[] args) {
        //先造出四个花色
        List<String> colors = new ArrayList<>();
        colors.add("♥");
        colors.add("♠");
        colors.add("♣");
        colors.add("♦");

        //造出10个 2-10
        List<String> numbers = new ArrayList<>();
        for (int i = 2; i <=10 ; i++) {
            numbers.add(i+"");
        }
        numbers.add("J");
        numbers.add("Q");
        numbers.add("K");
        numbers.add("A");

        //上面的colors 和 number 进行一个整合
        //放入一个新的集合中 做到嵌套循环
        //创建新的集合
        //Set<String> piker = new HashSet<>();
        List<String> piker = new ArrayList<>();
        for (String color : colors) {
            for (String number : numbers) {
                piker.add(color+number);

            }
        }
        piker.add("BigKing");
        piker.add("LittleKing");
        System.out.println("piker = " + piker);
        System.out.println("piker = " + piker.size());
        //如果使用set集合也无法分开排序 用 Collections.suffle(piker)
        //只能打乱list 因为set时无序的
        //打乱list排序
        Collections.shuffle(piker);
        System.out.println("piker = " + piker);
        //给player1 player2 player3 发牌
        List<String> player1 = new ArrayList<>();//玩家1
        List<String> player2 = new ArrayList<>();//玩家2
        List<String> player3 = new ArrayList<>();//玩家3
        //底牌
        List<String> diPai = new ArrayList<>();
        for (int i = 0; i <piker.size(); i++) {
            //每张扑克牌
            String pName = piker.get(i);
            if (diPai.contains("♥3") == false) {
            //怎么发牌
            if (i >= 51) {
                //埋后三张底牌
                diPai.add(pName);
            }else{
                //给玩家1 2 3发剩余的51张牌
                if(i%3==0){
                    player1.add(pName);
                }else if(i%3==1){
                    player2.add(pName);
                } else{
                    player3.add(pName);
                }

            }}else {
                System.out.println("底牌不能有♥3,请重新运行");
                break;
            }
        }
        System.out.println("diPai = " + diPai);
        System.out.println("player1 = " + player1);
        System.out.println("player1 = " + player1.size());
        System.out.println("player2 = " + player2);
        System.out.println("player2 = " + player2.size());
        System.out.println("player3 = " + player3);
        System.out.println("player3 = " + player3.size());

        //list 的快速排序(不是人工指定的排序,下节讲人工排序)
        //Collections.sort(piker);
        //规定个地主,  规定 谁摸到红桃3 谁是地主,  注意:  底牌里面不能包含红桃3 .

        if(player1.contains("♥3")==true){
            System.out.println("player1是地主");
            player1.addAll(diPai);
            System.out.println("player1 = " + player1);
        }else if(player2.contains("♥3")==true){
            System.out.println("player2是地主");
            player2.addAll(diPai);
            System.out.println("player2 = " + player2);
        }else if(player3.contains("♥3")==true){
            System.out.println("player3是地主");
            player3.addAll(diPai);
            System.out.println("player3 = " + player3);
        }

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值