import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;public class FightAgainstLandlord {public static void main(String[] args) {//准备牌HashMap<Integer, String> poker = new HashMap<>();ArrayList<Integer> pokerIndex = new ArrayList<>();List<String> colors = List.of("♠", "♥", "♣", "♦");List<String> numbers = List.of("2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3");int index=0;pokerIndex.add(index);poker.put(index,"大王");index++;pokerIndex.add(index);poker.put(index,"小王");index++;for(String n:numbers){for(String c:colors){pokerIndex.add(index);poker.put(index,c+n);index++;}}System.out.print(poker);System.out.println();//洗牌
        Collections.shuffle(pokerIndex);System.out.println(pokerIndex);//发牌ArrayList<Integer> player01=new ArrayList<>();ArrayList<Integer> player02=new ArrayList<>();ArrayList<Integer> player03=new ArrayList<>();ArrayList<Integer> diPai=new ArrayList<>();for(int i=0;i<pokerIndex.size();i++){if(i>=51){diPai.add(pokerIndex.get(i));}else if(i%3==0){player01.add(pokerIndex.get(i));}else if(i%3==1){player02.add(pokerIndex.get(i));}else if(i%3==2){player03.add(pokerIndex.get(i));}}Collections.sort(player01);Collections.sort(player02);Collections.sort(player03);Collections.sort(diPai);/*System.out.println(diPai);System.out.println(player01);System.out.println(player02);System.out.println(player03);*///看牌lookPoker("player01",poker,player01);lookPoker("player02",poker,player02);lookPoker("player03",poker,player03);lookPoker("diPai",poker,diPai);}public static void lookPoker(String name,HashMap<Integer,String> poker, ArrayList<Integer> list){System.out.println(name+":");for(Integer k:list){String v=poker.get(k);System.out.print(v+" ");}System.out.println();}}

转载于:https://www.cnblogs.com/reyinever/p/11116857.html

实现斗地主洗牌、发牌、看牌相关推荐

  1. Java实现扑克牌的洗牌发牌看牌

    需求: 通过程序实现斗地主过程中的洗牌,发牌和看牌 方法一: 只看到每位用户手中的牌: 思路: 1:创建一个牌盒, 也就是定义一个集合对象,用ArrayList集合实现 2:往牌盒里面装牌 3:洗牌, ...

  2. 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))

    1.Map集合概述和特点 1.需求:    根据学号获取学生姓名 2.Map接口概述     查看API可以知道:     将键映射到值的对象     一个映射不能包含重复的键     每个键最多只能 ...

  3. Java 存牌洗牌发牌看牌

    package www.test1.com;import java.util.*;/*** 思路:* 存牌(HashMap)* 存下标(ArrayList)* 洗牌(洗下标)* 发牌 (TreeSet ...

  4. java集合框架的练习之斗地主洗牌发牌的模拟(升级版)

    首先,奉上java集合框架的练习之斗地主洗牌发牌的模拟(初级版)的链接:http://blog.csdn.net/striner/article/details/78489306 初级版只具有洗牌发牌 ...

  5. java中Map集合、模拟斗地主洗牌发牌、JDK9对集合添加的优化

    1.1 Map集合概述 Map集合概述 Map==>映射(一个对应一个) Map是一个接口,只要实现了该接口的类都是双列集合. 双列集合每次存储元素时都需要存储两个元素,一个元素称为键,一个元素 ...

  6. Java实现模拟斗地主洗牌发牌

    按照斗地主的规则,完成洗牌发牌看牌的动作.最终结果预计为: 具体规则: 1.组装54张扑克牌 2.将54张扑克牌顺序打乱 3.三个玩家参与游戏,三人交替摸牌,每人17张,最后三张做底牌 4.查看三人手 ...

  7. Java实现模拟斗地主洗牌、发牌、看牌并排序

    1.模拟斗地主洗牌.发牌.看牌 /* * 模拟斗地主洗牌.发牌.看牌*/package PokerDemo;import java.util.ArrayList; import java.util.C ...

  8. 通过程序实现斗地主过程中的洗牌,发牌和看牌(简约版)

    需求:通过程序实现斗地主过程中的洗牌,发牌和看牌 思路: 创建一个牌盒,也就是定义一个集合对象,用ArrayList集合实现 往牌盒里面装牌 洗牌,也就是说把牌打撒,用Collections的shuf ...

  9. 1.17 项目实例:模仿斗地主洗牌发牌小游戏

    实现思路步骤如下: 准备牌:Arrylist 集合储存,for 循环遍历实现 洗牌:使用 Collections 的shuffle(arryBox);方法刷新集合中的顺序 发牌:使用 for 循环遍历 ...

  10. 扑克牌洗牌发牌java代码_java实战(一)之Java模仿斗地主洗牌发牌小游戏

    斗地主是全国范围内的一种桌面游戏,尽管全国各种类型,但大同小异.本节我们先来实现一下斗地主中的简单洗牌.发牌和看牌功能. 按照斗地主的规则,完成洗牌发牌的动作.具体规则为使用 54 张牌打乱顺序,3 ...

最新文章

  1. Python 获得命令行参数的方法
  2. android zip解压缩
  3. Css的filter常用濾波器屬性及語句大全
  4. #再一次用construct2做游戏
  5. VTK:几何对象之Vertex
  6. linux文件系统分隔符,Linux的哲学思想和文件系统
  7. Mock2 moco框架的http协议get方法Mock的实现
  8. 【渝粤题库】广东开放大学 质量管理 形成性考核 (2)
  9. 计算机网络——链路层之局域网
  10. 误删了计算机桌面回收站,我电脑回收站里的东西已经被删除几天了?怎么可以找回!谢谢...
  11. USB应用开发笔记之一:STM32上实现USB主机读写U盘
  12. 计算机图形学------空间摄像机
  13. 提供 web前端、H5、html页面 技术服务
  14. Linux下Bash编程之算术运算符详解(三)
  15. 用c 语言创建web项目,使用Maven创建Web应用程序项目
  16. c#中抽象类和接口异同
  17. ASP.NET农历时间显示(两)
  18. 领导人要读的10本管理学书籍
  19. c# webbrowser html5,C#设置WebBrowser IE浏览器版本
  20. 太厉害了!我用 Nginx 提升系统10倍性能

热门文章

  1. grub的boot loader安装在磁盘上的位置
  2. WinForm学习笔记(一)- 无边框窗体移动
  3. 【转载】Linux下rz,sz与ssh的配合使用
  4. C#编码应注意的事项
  5. _.findIndex(array, [predicate=_.identity], [fromIndex=0])
  6. 精选13款Spring Boot 优质GitHub开源项目!
  7. 使用Jenkins打包vue项目丢失静态资源
  8. win10鼠标右键拓展(使用vs Code打开)
  9. VS2015 更换exe的图标
  10. FISCO BCOS(五)———部署安装jdk1.8