分析:

首先,我们来梳理一下规则:

准备牌阶段:斗地主一般用一副牌,有54张,其中有大王小王各1张,其他52张牌,分别是4个花色,每种花色13张。四种花色分别为♥ ♦ ♠ ♣,定义一个集合来存储它们;而每一种花色中的13张牌为:(由大到小)2 A K Q J 10 9 8 7 6 5 4 3,也定义一个集合来存储它们。遍历这两个集合,可以组装成为52张牌,例如♣7 ♥A
洗牌阶段:使用集合工具类Collections方法,其中static void shuffle(List<?> list)使用指定的随机数对指定列表进行置换,会随机的打乱集合中的元素的顺序
发牌阶段:要求每一位玩家拥有17张牌,剩余三张作为底牌,一人一张轮流发牌:集合的索引(0-53)%3,定义4个集合,来存储3个玩家的牌和场上的底牌。索引%3,有三个值(0,1,2),0%3=0,1%3=1,2%3=2,3%3=0,当索引>=51时,改为发底牌
看牌阶段:直接打印集合,遍历存储玩家和底牌的集合

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;public class PokerDemo {public static void main(String[] args) {HashMap<Integer,String> hm=new HashMap<Integer,String>();//创建arraylist,存储编号ArrayList<Integer> array=new ArrayList<Integer>();//创建花色数组和点数数组String[] colors={"♦","♣","♠","❤"};String[] numbers={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};//从0开始向Hashmap存取编号,并存储对应的牌。同时往Arraylist存取编号int index=0;for (String number:numbers){for (String color:colors){hm.put(index,color+number);array.add(index);index++;}}hm.put(index,"小王");array.add(index);index++;hm.put(index,"大王");array.add(index);//洗牌(洗的时编号),用collection的shuffle方法实现Collections.shuffle(array);//发牌TreeSet<Integer> lqx=new TreeSet<Integer>();TreeSet<Integer> ly=new TreeSet<Integer>();TreeSet<Integer> fqx=new TreeSet<Integer>();TreeSet<Integer> dp=new TreeSet<Integer>();for (int i=0;i<array.size();i++){int x=array.get(i);if (i>=array.size()-3){dp.add(x);} else if (i%3==0) {lqx.add(x);} else if (i%3==1) {ly.add(x);} else if (i%3==2) {fqx.add(x);}}lookPoker("林青霞",lqx,hm);lookPoker("柳岩",ly,hm);lookPoker("风清扬",fqx,hm);lookPoker("底牌",dp,hm);//定义方法看牌}public static void lookPoker(String name,TreeSet<Integer> ts,HashMap<Integer,String> hm){System.out.print(name+"的牌是:");for (Integer key:ts){String Poker = hm.get(key);System.out.print(Poker+" ");}System.out.println("\n");}
}

结果展示:

Java实现斗地主实例相关推荐

  1. java版斗地主_Java实现斗地主简化版

    本文实例为大家分享了Java实现斗地主的具体代码,供大家参考,具体内容如下 package com.westos.chinesePoker; import java.util.ArrayList; i ...

  2. java局部变量全局变量,实例变量的理解

    java局部变量全局变量,实例变量的理解 局部变量 可以理解为写在方法中的变量. public class Variable {//类变量static String name = "小明&q ...

  3. 用 XStream 序列化/反序列化 XML 为 Java 对象(实例)

    用 XStream 序列化/反序列化 XML 为 Java 对象(实例) Posted on 2007-06-05 19:06 Stephen Wong 阅读(1224) 评论(0)  编辑 收藏 网 ...

  4. JAVA实现SFTP实例(JSCH)

    JAVA实现SFTP实例 最近写的一个JAVA实现SFTP的实例: /* * Created on 2009-9-14 * Copyright 2009 by www.xfok.net. All Ri ...

  5. java rmi 入门实例

    java rmi 入门实例 (2009-06-16 16:07:55) 转载▼ 标签: java rmi 杂谈 分类: java-基础  java rmi即java远程接口调用,实现了2台虚拟机之间的 ...

  6. c++ java通信 protocol buffer,google protocol buffer (C++,Java序列化应用实例)

    google protocol buffer (C++,Java序列化使用实例) 转载,请注明出处: http://blog.csdn.net/eclipser1987/article/details ...

  7. java ldap操作实例_Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法...

    java ldap操作实例 LDAP身份验证是世界上最流行的企业应用程序身份验证机制之一,而Active Directory (Microsoft为Windows提供的LDAP实现)是另一种广泛使用的 ...

  8. Java Web Start实例

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. JWS让用户可以下载服务器端的Java Application到本机运行,并且没有安装.配置等繁琐的 ...

  9. axis2 webservice入门学识(JS,Java,PHP调用实例源码)

    来源:http://www.myexception.cn/web/952419.html axis2 webservice入门知识(JS,Java,PHP调用实例源码) 背景简介 最近接触到一个银行接 ...

最新文章

  1. linux删除指定创建时间文件(文件夹)脚本
  2. Vue打包之后会出现.map文件用处
  3. bootstrap下拉选择框选中事件_CAD制图初学入门之CAD软件中布局功能详解
  4. 剧情介绍:“我是山姆”
  5. quilleditor 字体大小设置_quill-editor如何更改字体配置?
  6. 最新云EC在线商城系统网站源码V1.3版 开源版
  7. win10无法运行jre java_win10系统无法安装jre的解决方法
  8. 提升bitcomet下载速度的方法
  9. Java第一个程序的相关解释
  10. P1757 通天之分组背包 (分组背包 模板
  11. uni-app解析及配置(小程序对应的转换)
  12. 解魔方神器开源啦!摄像头看一眼,就能还原全步骤
  13. 如何使用EasyNVR+CDN突破萤石云在直播客户端数量上的限制,做到低成本高性价比的直播...
  14. 树莓派【树莓派关机命令,putty下载与远程控制树莓派,vnc控制树莓派(还没写完)】
  15. 中秋国庆长假,SEO你在坚持吗?
  16. 对HBase整个框架的理解
  17. 策略究龟交易法(附源码
  18. allergro音乐术语什么意思_意大利语音乐表情术语发音 allegro assai
  19. 张越:每张脸背后都有故事
  20. iview 组件的用法

热门文章

  1. 【小白视角】大数据基础实践(五) MapReduce编程基础操作
  2. 高速球滑环在监控方面的应用
  3. 社群管理工具帮助更好管理社群
  4. UG NX 12 设置定向视图
  5. 网络安全是怎样练成的.4——我们要到哪里去
  6. 丹东御空服务器维修,部分服务器苍穹星图奖励显示异常说明
  7. 上传图片到七牛云(前端和后端)
  8. Python如何将写好的代码打包成exe文件
  9. 【经典算法大全】收集51种经典算法 初学者必备
  10. u盘维护工具 linux,【制作简单,启动兼容性好的U盘维护工具:DOS工具+WINPE+PUPPY LINUX】...