Java系列之:Collections实现斗地主游戏

需求:通过程序实现斗地主过程中的洗牌、发牌和看牌。要求:对牌进行排序。


思路:

  1. 创建HashMap,键是编号,值是牌
  2. 创建ArrayList,存储编号
  3. 创建花色数组和点数数组
  4. 从0开始往HashMap里面存储编号,并存储对应的牌,同时往ArrayList里面存储编号
  5. 洗牌(洗的是编号),用Collections的shuffle()方法实现
  6. 发牌(洗的是编号),用Collections的shuffle()方法实现
  7. 发牌(发的也是编号,为了保证编号是排序的,创建TreeSet集合接收)
  8. 定义方法看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)
  9. 调用看牌方法
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;public class CollectionsDemo {public static void main(String[] args) {//创建HashMap,键是编号,值是牌HashMap<Integer, String> hm = new HashMap<Integer, String>();//创建ArrayList,存储编号ArrayList<Integer> array = new ArrayList<>();//创建花色数组和点数数组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);System.out.println("总共组合数:" + index);//洗牌(洗的是编号),用Collections的shuffleCollections.shuffle(array);//发牌(发的也是编号,为了保证编号是排序的,创建TreeSet集合接收)TreeSet<Integer> player1 = new TreeSet<Integer>();TreeSet<Integer> player2 = new TreeSet<Integer>();TreeSet<Integer> player3 = new TreeSet<Integer>();TreeSet<Integer> dpSet = new TreeSet<Integer>();for(int i = 0; i < array.size();i++){int x = array.get(i);if(i>=array.size() - 3){dpSet.add(array.get(i));}else if(i%3==0){player1.add(x);}else if(i%3 == 1){player2.add(x);}else if(i%3==2){player3.add(x);}}//调用看牌方法look("玩家一",player1,hm);look("玩家2",player2,hm);look("玩家3",player3,hm);look("底牌",dpSet,hm);}//定义方法看牌(遍历TreeSet集合,获取编号,到HashMap集合找对应的牌)public static void look(String name,TreeSet<Integer> ts, HashMap<Integer,String> hm) {System.out.println(name + "的牌是:");for(Integer key : ts){String value = hm.get(key);System.out.print(value + "");}System.out.println();}
}

输出如下所示:

Java系列之:Collections实现斗地主游戏相关推荐

  1. java实现一个简单的斗地主游戏

    使用Java编写一个斗地主游戏需要一定的编程知识和技能,例如面向对象编程.集合框架.GUI等.下面是一个简单的斗地主游戏的代码示例: import java.util.ArrayList; impor ...

  2. java斗地主socket_纯JAVA写的socket局域网斗地主游戏

    前两天没项目做 就想着写点什么. 就写了这个小游戏没事跟同事玩玩. 5块钱一把 不带开挂的. 先来几张效果图 废话不多 开篇纪念. 部分源码 连接服务器类 public class Connect { ...

  3. Eclipse+Java+Swing实现斗地主游戏

    Java+Swing实现斗地主游戏 一.系统介绍 二.系统展示 1.扑克分发 2.抢地主 3.出牌 4.游戏胜利 三.系统实现 Card.java CardType.java Common.java ...

  4. java斗地主随机发牌_使用Java实现斗地主游戏的发牌过程

    package com.review.test; import java.util.ArrayList; import java.util.Collections; import java.util. ...

  5. java案例-实现斗地主游戏案例

    java案例-实现斗地主游戏案例 1.需求分析: 模拟斗地主游戏,利用集合,Map实现斗地主的逻辑,并且可以看分派好的牌 2.具体实现: (1)在牌盒(字符串数组)存储四个花色: String[] c ...

  6. java写的网络版斗地主_Java实现简单的斗地主游戏

    本文实例为大家共享了Java实现斗地主游戏的详细代码,供大家参考,详细内容如下 原理图: 斗地主过程: 1.组合牌 * 2.洗牌 * 3.发牌 * 4.看牌 代码实现: package itcast. ...

  7. 有趣的游戏,Java版斗地主游戏实现

    近日,使用Java编写了斗地主单机小游戏,作为经典小游戏,它也给大家带来不少乐趣,通过对这款游戏的简单实现,加深了我对对Java基础算法的理解. 一.思路: 1.首先要了解斗地主的游戏规则,针对游戏整 ...

  8. java poker_Java超级高手成长之路!一个Java编写的斗地主游戏

    原标题:Java超级高手成长之路!一个Java编写的斗地主游戏 "斗地主"是全国民间流行的一款扑克牌娱乐游戏,游戏最少由3个玩家进行,最多5人,游戏逻辑简单易于上手,老少皆宜,是我 ...

  9. java斗地主游戏开发 算法思路讲解

    上学期刚开学的时候我特别沉迷于斗地主 充了6块钱赢了30万豆 然后一夜之间破产 越想越气 然后我就有一个大胆的想法开发一个斗地主现在这个斗地主能在控制台上运行 本文主要讲解我在开发斗地主时研究的算法思 ...

最新文章

  1. sql server创建新用户名登录以及为表添加角色和权限的多种方法
  2. 计算机应用基础任务化教程知识点,计算机应用基础任务化教程
  3. RabbitMQ 的延时队列和镜像队列原理与实战
  4. socket套接字TCP API
  5. QTP统计页面加载时间
  6. word论文格式调整
  7. phpcms url伪静态
  8. 王者荣耀是怎样炼成的(三)unity组件与脚本
  9. HITACHI日立印刷机电源维修W-PSX175
  10. 0基础参加数学建模,最大程度冲击奖项
  11. 怎么用 Photoshop 把图片变清晰?
  12. 云上财务经营的成本管理
  13. 梦工厂将在红帽峰会畅谈云计算心得
  14. 软件测试-测试类型分类
  15. 工作中的会议纪要模板
  16. [从头学数学] 第203节 坐标系与参数方程
  17. 2017-12-1工作日志--云信音视频通话SDK开启美颜效果
  18. 使用leaflet仿原神提瓦特大地图制作日记
  19. Mongodb之(初出茅庐)
  20. 信息系统集成解决医院系统

热门文章

  1. C++:多层神经网络(附完整源码)
  2. 小 C 的数学(math)
  3. 实验十二 AODV和DSR协议仿真实验
  4. python爬虫代码没有结果_beautifulsoup - python爬虫获取不到标签内容
  5. 数据挖掘概念汇总及数据预处理
  6. 海康威视主机有个别监控不保存录像解决临时处理办法
  7. 基于Java实现的一个FTP服务
  8. 2023年JDK收费临时解决方案
  9. java基础知识总结-有梦想的鲨鱼
  10. 服务器固态支持热插拔吗,热插拔讲了这么多年,固态硬盘到底支持带电插拔吗? | 麦田一棵葱...