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. C++学习(二) 入门篇

      程序清单2. carrots.cpp //carrots.cpp - - food processing program //uses and displays a variable #inclu ...

  2. 使用iframe父页面调用子页面和子页面调用父页面的元素与方法

    在实际的项目开发中,iframe框架经常使用,主要用于引入其他的页面.下面主要介绍一下使用iframe引入其他页面后,父页面如何调用子页面的方法和元素以及子页面如何调用父页面的方法和元素. 1.父页面 ...

  3. JAVA入门[22]—thymeleaf

    一.thymeleaf官网 官网:https://www.thymeleaf.org/index.html doc:https://www.thymeleaf.org/documentation.ht ...

  4. jmeter断言:断言条件之间是“或”的关系

    有时,我们在做断言时,需要同时满足一系列条件,这在jmeter自带响应断言中已经实现: 有时,同一请求在不同时间,返回的响应是不同的,而这都是正确的响应,也就是说,我们判断的条件之间是或的关系,此时, ...

  5. Result Maps collection does not contain value for...

    出现上述错误 主要是因为你的select标签内部的resultMap属性指向的不正确 在sql文件中只要有一个resultMap或resultType属性指向错误,则在这个文件中其余正确的语句也不能执 ...

  6. opnet安装及安装中出现问题的解决办法 分类: opnet 2014-04-06 21:50 397人阅读 评论(0) 收藏

    我使用的opnet14.5  win7 64位系统的http://pan.baidu.com/s/1qWyfxnu,电脑先刷了win7 64位原版系统. 选择了VS2013+opnet14.5的安装方 ...

  7. 15. leetcode 349. Intersection of Two Arrays

    Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, 2, 1 ...

  8. 访问被拒绝。 说明: 访问服务此请求所需的资源时出错。服务器可能未配置为访问所请求的 URL。

    打开web.config 然后将 <authorization> <deny users="?" /> </authorization> 改为 ...

  9. Unity 发布的 WebGL 使用SendMessage传递多个参数

    如果要实现Unity与浏览器的数据交互一般都会采用两种方式 方法一: Application.ExternalCall("SayHello","helloworld&qu ...

  10. Git异常情况汇总

    本篇博客总结下Git使用情况中遇到的异常情况并给出解决方案,关于Git的常用命令请移步我的另一篇博客<Git常用命令> 异常情况如下: 1.git远程删除分支后,本地git branch ...