zoukankan      html  css  js  c++  java
  • 集合综合练习(斗地主随机洗牌)

    package com.zs.Demo;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.Map;
    
    public class DouDiZhu {
            private static  Map<Integer,String> Pooker;
            private static ArrayList<Integer> Pookervalue;
            private static ArrayList<Integer> play1,play2,play3,dipai;
            DouDiZhu() {
            createPooker();
            ShufflePooker();
            faPooker();
            lookPooker("玩家1",play1);
            lookPooker("玩家2",play2);
            lookPooker("玩家3",play3);
            lookPooker("底牌",dipai);
        }
    
        private void lookPooker(String s,ArrayList<Integer> play1) {
            System.out.print(s+":");
            for (Integer pookernum : play1) {
                for (Integer index : Pooker.keySet()) {
                    if(pookernum==index) {
                        String color = Pooker.get(index);
                        System.out.print(color+"	");
                    }
                }
            }
            System.out.println();
        }
    
        private void faPooker() {
            //创建三个数组分别代表三位玩家
             play1=new ArrayList<>();
             play2=new ArrayList<>();
             play3=new ArrayList<>();
             dipai=new ArrayList<>();
            int index=54;
            for (Integer pooker : Pookervalue) {
                if (index<=3)
                    dipai.add(pooker);
                if(index%3==0)
                    play1.add(pooker);
                if (index%3==1)
                    play2.add(pooker);
                if (index%3==2)
                    play3.add(pooker);
                index--;
            }
    //        排序
            Collections.sort(play1);
            Collections.sort(play2);
            Collections.sort(play3);
            Collections.sort(dipai);
        }
    
        private void ShufflePooker() {
            //定义一个ArrayList集合接收Map集合的值,方便调用shuffle方法,因为只有List集合才能调用shuffle方法
            Pookervalue=new ArrayList<>();
            //遍历Map集合,并将Map集合的值传递给ArrayList集合
            for (Integer it : Pooker.keySet()) {
                Pookervalue.add(it);
            }
            //将ArrayList集合的顺序打乱,也就是洗牌
            Collections.shuffle(Pookervalue);
        }
    
        private void createPooker() {
            //创造保存扑克的Map集合,键-扑克;54张扑克牌,键为扑克牌号,值为扑克加花色
             Pooker= new HashMap<>();
            //定义扑克牌数字的数组,
            String[] pookerNum={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
            //定义扑克牌花色的数组
            String[] colors={"♥","♠","♣","♦"};
            //给Map集合添加元素大王小王
            Pooker.put(0,"大王");
            Pooker.put(1,"小王");
            //定义普通类牌的序号,从2开始,到53结束,52张普通拍,0,1为大小王;
            int index=2;
            for (String num : pookerNum) {
                for (String color : colors) {
                    Pooker.put(index,color+num);
                    index++;
                }
            }
            //System.out.println(Pooker);//{2=♥2, 3=♠2, 4=♣2, 5=♦2, 6=♥3, 7=♠3,。。。。50=♥A, 51=♠A, 52=♣A, 53=♦A}}
    
        }
    
        public static void main(String[] args) {
            new DouDiZhu();//
        }
       /* 玩家1:♥2    ♣3    ♦3    ♥4    ♣4    ♦4    ♥5    ♠5    ♦7    ♥9    ♠10    ♣10    ♥J    ♠J    ♣J    ♠Q    ♥K    ♥A
        玩家2:大王    小王    ♣2    ♦2    ♥3    ♣5    ♦5    ♥6    ♦6    ♥7    ♠7    ♥8    ♣9    ♣Q    ♦Q    ♠K    ♣K    ♦A
        玩家3:♠2    ♠3    ♠4    ♠6    ♣6    ♣7    ♠8    ♣8    ♦8    ♠9    ♦9    ♥10    ♦10    ♦J    ♥Q    ♦K    ♠A    ♣A
        底牌:♦7    ♣Q    ♠A
        结果是随机的每次都不一样
    */ }
  • 相关阅读:
    C语言I作业12—学期总结
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I作业9
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10584150.html
Copyright © 2011-2022 走看看