java多线程发牌 一个发牌 三个玩家_JAVA代码之斗地主发牌
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();
}
}
java多线程发牌 一个发牌 三个玩家_JAVA代码之斗地主发牌相关推荐
- java斗地主发牌代码_java代码实现斗地主发牌功能
本文实例为大家分享了java实现斗地主发牌功能的具体代码,供大家参考,具体内容如下 实现斗地主发牌功能 共54张牌,地主比其他两名玩家多三张牌. 有一个card牌类和player玩家类,还有一个发牌类 ...
- java斗地主代码_java代码实现斗地主发牌功能
本文实例为大家分享了java实现斗地主发牌功能的具体代码,供大家参考,具体内容如下 实现斗地主发牌功能 共54张牌,地主比其他两名玩家多三张牌. 有一个card牌类和player玩家类,还有一个发牌类 ...
- java斗地主发牌代码_JAVA代码之斗地主发牌
package com.oracle.demo01; import java.util.ArrayList; import java.util.Collections; import java.uti ...
- java获取字典所有的key_java字典,多层字典,斗地主发牌,实例展示
在我们的日常工作与生活当中,java都有涉及到.它具有十分强大的功能,并且内容也极其丰富,使用频率也是很高的,所以大家对于java的学习热情也是十分积极的.今天就来为大家介绍java字典,多层字典,斗 ...
- 模拟斗地主游戏java编程_java实现模仿斗地主发牌
本文实例为大家分享了java斗地主发牌的具体代码,供大家参考,具体内容如下 分析 这是一个模仿斗地主发牌的例子: 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 用0~53分别对应相应的花色和牌面 ...
- java中斗地主发牌程序代码_java模拟实现斗地主发牌小程序
java模拟实现斗地主发牌小程序 发布于 2020-8-3| 复制链接 摘记: 一副扑克有54张牌:大小王+4*13,接下来我们来模拟一下斗地主的发牌过程首先,我们需要买牌,新买来的牌都是按顺序摆放的 ...
- Java 多线程详解(三)------线程的同步
Java 多线程详解(一)------概念的引入:https://blog.csdn.net/weixin_39816740/article/details/80089790 Java 多线程详解(二 ...
- java多线程同步 多窗口卖票实例_java多线程之火车售票系统模拟实例
1.前言 为了学习多线程共享与通信,我们模拟一个火车售票系统,假设有10张火车票,三个窗口(也就是三个线程)同时进行售票. 2.非同步代码 package com.tl.skyLine.thread; ...
- 斗地主发牌编程PHP,JAVA代码之斗地主发牌详解
package com.oracle.demo01; import java.util.ArrayList; import java.util.Collections; import java.uti ...
最新文章
- python和R对dataframe进行连接、行过滤更新列内容:dplyr、merge、inner、left、right、inner_join、left_join、sort_values、loc
- 电信笔试c语言编程,华工电信院电子与通信工程 923复试面试,笔试考什么?复试真题...
- OpenGL生成的法线贴图并增加光照
- py_文件操作_01
- spring的依赖注入
- ES6新增数据类型符号(2):共享符号与知名符号
- 【译】Effective TensorFlow Chapter11——在TensorFlow中调试模型
- 这里面有一些关于依图工作的内容
- UnityShader5:基本内置变量
- Simple2D-22(重构)纹理池
- c语言 统计数量用count_C语言编程中统计输入的行数以及单词个数的方法
- mongoVue的使用
- u盘盘符不显示 win10_Win10不显示U盘的盘符怎么办丨Win10不显示U盘的盘符解决方法...
- kvm连接服务器显示不全有重影,KVM多电脑切换器常见故障排查及处理方法
- 12306验证码识别
- OPENWRT-LUCI开发总结-LUCI开发过程中的小技巧
- Object.entries()方法的使用和实现
- Atitit 手机号码选号 规范 流程 attilax总结 v2 r99.docx
- pandas数据日期函数之date_range()、resample()与to_period()
- linux 强制类型转换,C++ 新标准下的强制类型转换详解
热门文章
- Tomcat - ClassFormatException的解决方法
- 搭建dubbo项目解决dubbo.xml标签报错的问题
- C# “Thread类Suspend()与Resume()已过时” 解决方法(利用ManualResetEvent类)
- 解决Windows对JDK默认版本切换问题
- PHP:使用Zend对源码加密、Zend Guard安装以及Zend Guard Run-time support missing的解决方法
- 如何有效地连接字符串
- Android多线程之ArrayBlockingQueue源码解析
- 三分钟学会css3中的flexbox布局
- 开源阿牛图像处理实验室
- 让按钮倒计时5秒以后才能再次点击提交 倒计时按钮