在?三缺一,来斗个地主

*手动狗头 *

  • 模拟斗地主升级版,通过程序实现斗地主过程中的洗牌、发牌和看牌,要求:对牌进行排序

    • 思路:
      1.创建HashMap,键是编号,值是牌
      2.创建ArrayList,存储编号
      3.创建花色数组和点数数组
      4.从0开始往HashMap里面存储编号,并存储对应的牌。同时往ArrayList里面存储编号
      5.洗牌(洗的是编号),用Collections的shuffle()方法去实现
      6.发牌(发的也是编号,为了保证编号是排序的,创建TreeSet集合接收)
      7.定义方法看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
      8.调用看牌方法
package king03;import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;public class PokerProDemo {public static void main(String[] args) {//        创建HashMap,键是编号,值是牌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);//        洗牌(洗的是编号),用Collections的shuffle()方法去实现Collections.shuffle(array);//        发牌(发的也是编号,为了保证编号是排序的,创建TreeSet集合接收)TreeSet<Integer> xmSet = new TreeSet<Integer>();TreeSet<Integer> xhSet = new TreeSet<>();TreeSet<Integer> wkSet = new TreeSet<>();TreeSet<Integer> dpSet = new TreeSet<>();for (int i = 0; i < array.size(); i++) {int x = array.get(i);if (i >= array.size() - 3) {dpSet.add(x);} else if (i % 3 == 0) {xmSet.add(x);} else if (i % 3 == 1) {xhSet.add(x);} else if (i % 3 == 2) {wkSet.add(x);}}
//            调用看牌的方法lookPoker("小明", xmSet, hm);lookPoker("小红", xhSet, hm);lookPoker("悟空", wkSet, hm);lookPoker("底牌", dpSet, hm);}//    看牌的方法public static void lookPoker(String name, TreeSet<Integer> ts, HashMap<Integer, String> hm) {System.out.println(name + "的牌是");for (Integer key : ts) {String poker = hm.get(key);System.out.print(poker + "");}System.out.println();}}

写在最后

为了写成这个小案例,我也是懵逼了,太菜了,写到零点多,就想看看谁叫地主会赢,哈哈~~~~~~~~~~

在?三缺一,来斗个地主——肝个斗地主案例(java)相关推荐

  1. 在IDEA里斗个地主不过分吧!

    前言 如果说,在IDEA里下个棋很过分,那在IDEA里斗个地主,是不是就更过分了? 开始 1.登入 通过 #login {昵称} 命令登入服务器 2.查看游戏列表 通过 #showGame 命令查看游 ...

  2. 在 IDEA 里斗个地主不过分吧!

    点击关注公众号,Java干货及时送达

  3. 假期三天,我肝了万字的Java垃圾回收,看完你还敢说不会?

    大家好,我是狂聊,上一篇已经把 Jvm 的运行区数据和类加载机制聊完了. 今天来说说 Java 垃圾回收,高频面试问题. 提纲附上,话不多说,直接干货 1.什么是垃圾回收? 垃圾回收(Garbage ...

  4. ❤️ 爆肝一个月!JAVA零基础入门总结(下)❤️

    程序.进程.线程 程序(program) 是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 进程(process) 是程序的一次执行过程,或是正在运行的一个程序.是一个 ...

  5. ❤️ 爆肝一个月!JAVA零基础入门总结(上)❤️

    标识符与命名规范 标识符 Java 对各种变量.方法和类等要素命名时使用的字符序列称为标识符 技巧:凡是自己可以起名字的地方都叫标识符. 定义合法标识符规则 由26个英文字母大小写,0-9 ,_或$组 ...

  6. java多线程编程_阿里P8熬到秃头肝出来的:Java多线程+并发编程核心笔记

    自学Java的时候,多线程和并发这一块可以说是最难掌握的部分了,很多小伙伴表示需要一些易于学习和上手的资料. 所以今天这本「Java并发学习手册.pdf」就是一份集中学习多线程和并发的手册,PDF版, ...

  7. 给学弟学妹肝的一篇Java学习路线,保证学弟学妹们大三大四的时候顺利找到实习 Offer

    写在开头的闲言碎语 2020年过去了,对很多人来说,这一年经历了太多太多,可能是十年来记忆里比较浓墨重彩的一笔.过去的一年里,"熬"算是这个阶段我的关键字,确实太多时候就要放弃,好 ...

  8. Java斗_Java集合练习:斗地主游戏

    这是一个模拟斗地主的小游戏,最后看到的牌型是经过排序的,具体代码和解释如下: package cn.poker_test; import java.util.ArrayList; import jav ...

  9. 大腿拍断!足足闭关一个月肝完999页Java面试宝典,心灰意冷之际意外收到美团Offer!

    前言 事情是这样的,今年年初,在某个大博主那里拿到一份Java面试宝典,然后就一直躺在盘里吃灰,直到5月份的时候,有了要跳槽的计划和打算,就想着要刷刷面试题,所以就把这套"积灰"的 ...

最新文章

  1. c语言mysql源代码,永盈会-官方网站
  2. 转 使用putty从linux主机上面往windows主机下面拷贝文件
  3. python opencv 如何获取图像的尺寸(宽高)(分辨率)(大小)img.shape
  4. mysql越筛越少_面试官:为什么SELECT * 会导致查询效率低?
  5. Spring Boot中mapper包所放位置的配置
  6. HH SaaS电商系统的线上服务商品库存和采购设计
  7. Java问题集锦--The type StringEscapeUtils is deprecated
  8. Single Page Applications in ASP.NET MVC 4
  9. 腾讯游戏:元旦假期未成年人游戏限玩1小时/日
  10. 7-11 分段计算居民水费
  11. 物资管理信息系统4 -- 修改密码界面
  12. 进入方法内快捷键_Excel快捷键Ctrl+Shift系列,提高效率,拒绝加班
  13. windows游戏编程 (一) 了解WinMain函数,创建一个信息框
  14. Spring Tool Suite4安装和配置
  15. 苹果CMS采集参数全自动采集教程
  16. Lesson 43 Smart 组件 vs Dumb 组件
  17. CCU ETL脚本列表
  18. 【地图易-制图案例】全球地震分布地图
  19. IPv6接口自动配置的地址数量
  20. Dynamodb基础操作

热门文章

  1. g++编译c++11特性 的.cc文件
  2. 在一台电脑上使用两个github账号
  3. 三种求全排列方式之比较
  4. 简单介绍一下R中的几种统计分布及常用模型
  5. LinkedHashMap and LinkedHashSet
  6. ADO与ADO.NET的区别与介绍
  7. shell 语法简介(转载)
  8. 网站架构之统一数据服务平台技术
  9. 动网论坛数据库字段表说明
  10. Springboot源码分析之内嵌tomcat源码分析