import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;

public class Doudizhu {
    public static void main(String[]args){
        //存放扑克牌
        //牌类+对应花色
        HashMap<Integer, String> pooker = new HashMap<Integer,String>();
        //牌的编号
        ArrayList<Integer> pookerNum = new ArrayList<Integer>();
        //牌类
        String[] nums = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};

        String[] colors = {"黑","红","梅","方"};
        int index = 2;
        for(String num:nums){
            for(String color:colors){
                pooker.put(index, color+num);
                pookerNum.add(index);
                index++;
            }
        }
        pooker.put(0, "大王");
        pookerNum.add(0);
        pooker.put(1, "小王");
        pookerNum.add(1);
        //System.out.println(pooker);
        //System.out.println(pookerNum);
        //洗牌。打乱顺序
        Collections.shuffle(pookerNum);

        ArrayList<Integer> player1 = new ArrayList<Integer>();
        ArrayList<Integer> player2 = new ArrayList<Integer>();
        ArrayList<Integer> player3 = new ArrayList<Integer>();
        ArrayList<Integer> bottom = new ArrayList<Integer>();
        //模拟分牌
        for(int i=0;i<pookerNum.size();i++){
            if(i>pookerNum.size()-1-3){
                bottom.add(pookerNum.get(i));
            }else
            if(i%3==0){
                player1.add(pookerNum.get(i));
            }else
            if(i%3==1){
                player2.add(pookerNum.get(i));
            }else
            if(i%3==2){
                player3.add(pookerNum.get(i));
            }
        }

        //整理牌
        Collections.sort(player1);
        Collections.sort(player2);
        Collections.sort(player3);

        //看牌
        look("player1",player1,pooker);
        look("player2",player2,pooker);
        look("player3",player3,pooker);
        look("底           牌",bottom, pooker);
    }

    public static void look(String name,ArrayList<Integer> player,HashMap<Integer, String> pooker){
        System.out.print(name+": ");
        for(Integer key:player){
            String value = pooker.get(key);
            System.out.print(value+" ");
        }
        System.out.println("\n");
    }
}

java模拟斗地主发牌看牌的更多相关文章

  1. java 模拟斗地主发牌洗牌

    一 模拟斗地主洗牌发牌 1.案例需求 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张 ...

  2. Java模拟斗地主发牌和洗牌

    package cn.itcast_04; import java.util.ArrayList; import java.util.Collections; import java.util.Has ...

  3. java集合--模拟斗地主发牌洗牌

    import java.util.*; /** * @Date: 2020/6/17 19:53 */public class Test04 { public static void main(Str ...

  4. Java学习笔记34(集合框架八:综合案例:模拟斗地主的洗牌发牌)

    规则: 1.54张扑克牌,有花色 2.顺序打乱,一人一张依次发牌,一人17张,留三张作为底牌 3.看牌:按大小王2A....43的序排列打印 示例: package demo; import java ...

  5. Java程序斗地主发牌代码,List、Map集合的应用

    Java集合存储的灵活运用List集合存储 54个编号 Map <key,value> key 对应的是编号 , value 是 牌的花色(红方梅黑)+ 具体的一张牌 ,比如 黑桃2 用2 ...

  6. Java 模拟斗地主

    模拟斗地主 public class M1 { public static void main(String args[]) { DouDiZhu02(); } private static void ...

  7. Java模拟斗地主(实现大小排序)

    import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Li ...

  8. Java实现斗地主发牌(Collections工具类的应用)

    package com.doudou_01; import java.util.ArrayList; import java.util.Collections; import java.util.Li ...

  9. php 模拟斗地主发牌简单易懂

    闲来无聊,就写了这个方法,也算是熟悉下php的数组操作,还请各位大神多指教.$arr 数组,好像有点问题,应该 2=>'方片2',3=>'梅花2',4=>'红心2',5=>'黑 ...

随机推荐

  1. Luogu 1402 酒店之王(二分图最大匹配)

    Luogu 1402 酒店之王(二分图最大匹配) Description XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化.由于很多来住店的旅客有自己喜好的房间色调.阳光等,也有自 ...

  2. 软件安装(JDK+MySQL+TOMCAT)

    一,JDK安装 1,查看当前Linux系统是否已经安装了JDK 输入 rpm -qa | grep java 如果有: 卸载两个openJDK,输入rpm -e --nodeps 要卸载的软件 2,上 ...

  3. Docker for windows10 配置镜像加速

    windows玩docker的时候,经常碰到这种问题: Error response from daemon: Get https://registry-1.docker.io/v2/: net/ht ...

  4. 什么是B-Tree

    B-Tree就是我们常说的B树,一定不要读成B减树,否则就很丢人了.B树这种数据结构常常用于实现数据库索引,因为它的查找效率比较高. B-Tree与二叉查找树的对比 我们知道二叉查找树查询的时间复杂度 ...

  5. WPF转换器之通用转换器

    WPF中的转换器是一个非常好的数据类型转换解决方案,实用和强大, 它的作用是将源数据转换为WPF自身需要的类型,对数据实体没有侵略性,会在项目工程中频繁使用.所以掌握转换器是WPF开发的必备技能. 我 ...

  6. (转)VmWare下安装CentOS7图文安装教程

    场景:克服安装Linux的恐惧,想装就装.在一篇博客中看到的,很有借鉴意义   欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源 ...

  7. (转)spring学习之@ModelAttribute运用详解

    @ModelAttribute使用详解 1 @ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被 ...

  8. ionic时间插件ion-datetime-picker

    https://github.com/katemihalikova/ion-datetime-picker

  9. easyui项目问题集锦

    1.级联问题(combobox) combobox至多可以保存2个东西value和text,但我需要第三个数的时候,怎么办?比如,省.市.区的三级级联,我选择市的时候,需要市id,市name,区号,邮 ...

  10. Java微信开发_02_本地服务器映射外网

    一.工具列表 内网穿透的相关工具有: (1)natapp 官网 :https://natapp.cn/ (2)花生壳 官网:https://console.oray.com/ (2)ngrok 官网: ...