package com.oracle.demo01;

import java.util.ArrayList;

import java.util.Collections;

import java.util.HashMap;

import java.util.Map;

public class Doudizhu {

public static void main(String[] args) {

//1.创建扑克牌Map

Map pooker=new HashMap();

//创建所有key所在的容器

ArrayList pookerNum=new ArrayList();

//创建花色数组

String[] color={"♠","♣","♥","♦"};

//创建牌号数组

String[] number={"2","A","K","Q","J","10","9","8","7","6","5","4","3"};

//造牌并存进map集合

int index=2;

for(String n:number){

for(String c:color){

//向map中存数据

pooker.put(index,c+n);

//向所有key所在的容器存数据

pookerNum.add(index);

index++;

}

}

//存大小王

pooker.put(0, "大王");

pookerNum.add(0);

pooker.put(1, "小王");

pookerNum.add(1);

//洗牌

Collections.shuffle(pookerNum);

//System.out.println(pookerNum);

//发牌

//创建四个容器

ArrayList bottom=new ArrayList<>();

ArrayList player1=new ArrayList<>();

ArrayList player2=new ArrayList<>();

ArrayList player3=new ArrayList<>();

//开始发牌

for(int i=0;i

//将前三张给底牌

if(i<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));

}

}

//排序(key升序 牌从大到小)

Collections.sort(bottom);

Collections.sort(player1);

Collections.sort(player2);

Collections.sort(player3);

//看牌(调用方法)

look("刘德华",player1,pooker);

look("张家辉",player2,pooker);

look("周润发",player3,pooker);

look("底牌",bottom,pooker);

}

//看牌的方法(传参为 玩家姓名,玩家的牌即键,所有牌的键值对)

public static void look( String name,ArrayList player,Mappooker){

//打印玩家姓名

System.out.print(name+":");

//遍历所有牌号

for(int num:player){

System.out.print(pooker.get(num)+" ");

}

System.out.println();

}

}

斗地主发牌编程PHP,JAVA代码之斗地主发牌详解相关推荐

  1. 消除冗长Java代码的工具——Lombok详解

    消除冗长Java代码的工具--Lombok详解 文章目录 消除冗长Java代码的工具--Lombok详解 什么是Lombok Lombok的作用 Lombok常用注解 Lombok安装 什么是Lomb ...

  2. 泛型java 代码讲解_Java泛型详解

    2516326-5475e88a458a09e4.png 一,打破砂锅问到底 泛型存在的意义? 泛型类,泛型接口,泛型方法如何定义? 如何限定类型变量? 泛型中使用的约束和局限性有哪些? 泛型类型的继 ...

  3. Java代码中的注释详解

    2019独角兽企业重金招聘Python工程师标准>>> java注释详解 声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责 ...

  4. java书写开头,JAVA代码书写规范汇总详解

    一般原则 尽量使用完整的英文描述符 采用适用于相关领域的术语 采用大小写混合增强可读性 尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一 避免使用长的名字 避免使用类似的名字,或者仅仅是大小 ...

  5. 西安交通大学915考研--编程题Java代码踩坑(2020年真题)

    西安交通大学915考研–编程题Java代码踩坑(2020年真题) 目录 西安交通大学915考研--编程题Java代码踩坑(2020年真题) 2020.1--寻找方程组的解 2020.2--几组数中筛选 ...

  6. [Java入门笔记] 面向对象编程基础(二):方法详解

    2019独角兽企业重金招聘Python工程师标准>>> 什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能 ...

  7. 《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格

    本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.5节良好的Java程序代码编写风格,作者 陈会安,更多章节内容可以访问云栖社区"异步社区&quo ...

  8. java构造块_java中的静态代码块、构造代码块、构造方法详解

    运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System. ...

  9. Java 泛型(generics)详解及代码示例、Java 类型通配符详解及代码示例

    Java 泛型(generics)详解及代码示例.Java 类型通配符详解及代码示例 - 概念 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制 ...

最新文章

  1. 语义分割 - 数据集准备
  2. php 数组的格式,PHP文件格式数组
  3. Kubernetes里ingress配置的一些例子
  4. 客户旅程_我如何充分利用freeCodeCamp的旅程
  5. linux 重定向 不换行,Ada:重定向到stdout时省略换行符(测试Put)
  6. linux拷贝带子文件夹命令,简单带子目录的makefile练习
  7. (转载)VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架)...
  8. 关于计算机Excel中的试题,2015年职称计算机考试EXCEL练习试题及答案
  9. 算法-第四版-练习1.2.3解答
  10. 程序算法面试 题目汇总 算法题 推理题 规律题
  11. 《统计学》第八版贾俊平第四章总结及课后习题答案
  12. 计算机二级C++刷题记录
  13. C语言信息学一本通题库答案,信息学奥赛一本通(C++版)在线评测系统
  14. 如何用Matlab求不定积分
  15. 电视盒子刷linux树莓派,变废为宝二:闲置“树莓派”开发板秒变电视盒子!
  16. 对dede标签调用的内容进行判断并输出的方法
  17. 基于BB方案,荣耀观影眼镜Vision Glass正式发布
  18. vector<PII>v
  19. Java实验——设计一个数组模型,用于存储体育项目成绩男生体育项目有足球、长跑和铅球,女生体育项目有跳舞、体操、游泳。设计排序算法,将变量a、b、c中的数值按大小顺利进行互换(从大到小排列)。
  20. 【linux】循序渐进学运维-基础篇-修复文件系统实战

热门文章

  1. C语言解析命令行函数:getopt系列
  2. 进程间通信--命名管道
  3. 傻傻分不清的javascript运行机制
  4. Vue - 表单
  5. 拾人牙慧篇之———QQ微信的第三方登录实现
  6. [deviceone开发]-一个很炫的手势动画示例
  7. Python字典部分源码分析,字典是无序的
  8. 每天学习Linux(3)---pwd命令
  9. Mysql备份还原数据库之mysqldump实例及参数详细说明
  10. (U3D)Time的使用