JAVA斗地主案例(单列)

  • 一、案例分析
  • 二、代码实现

一、案例分析

  1. 准备牌

扑克牌:54张
特殊派:大王,小王
花色:“♥”,“♠”,“♣”,“♦”
数字:“A”,“2”,“K”…“3”
我们只需要嵌套遍历花色和数字的数组,并且两两组合,就可以得到牌的点数。

  1. 洗牌

使用集合工具类Collections的shuffle()方法对指定数据源进行随机置换。打乱集合中元素的顺序

  1. 洗牌

分析:每人17张牌,剩余3张牌为底牌
选择判断条件:选择三种结果,即索引%3 其条件为0 1 2,分别对应三位玩家
当索引>=51时变为底牌

  1. 看牌

打印存储玩家和底牌的集合

二、代码实现

代码如下(示例):

    public static void main(String[] args) {//创建扑克牌集合ArrayList<String> poker = new ArrayList<>();//花色集合String [] colors = {"♠","♥","♣","♦"};//数字集合String [] numbers = {"2","A","K","Q","J","10","9","8","7","6","5","4","3"};//加入特殊牌poker.add("大王");poker.add("小王");//循环嵌套花色和数字集合进行组合for (String number: numbers) {for (String color:colors) {//将组合后的点数存入扑克牌集合poker.add(color+number);}}//打乱扑克牌集合顺序Collections.shuffle(poker);System.out.println(poker);//四种牌堆集合ArrayList<String> play1 = new ArrayList<>();ArrayList<String> play2 = new ArrayList<>();ArrayList<String> play3 = new ArrayList<>();ArrayList<String> dipai = new ArrayList<>();//遍历集合for (int i=0;i<poker.size();i++){String p=poker.get(i);//进行发牌判断if(i>=51){dipai.add(p);}else if (i%3==0){play1.add(p);}else if (i%3==1) {play2.add(p);}else if (i%3==2) {play3.add(p);}}//打印每个人的点数System.out.println("周星驰:"+play1);System.out.println("吴尊:"+play2);System.out.println("李连杰:"+play3);System.out.println("底牌:"+dipai);}

结果如下:
扑克牌:[♣A, ♦K, ♦J, ♦4, ♥K, ♦A, ♦3, ♥J, ♠A, ♣4, ♠J, ♥10, ♠6, ♣10, ♥8, ♥6, ♠Q, ♦10, ♠4, ♣Q, ♥3, 大王, ♥Q, ♠5, ♣K, ♥4, 小王, ♠3, ♥7, ♠7, ♥5, ♦Q, ♦9, ♥2, ♠K, ♣7, ♣8, ♦2, ♣6, ♠10, ♥9, ♦8, ♦7, ♠9, ♣2, ♣3, ♠8, ♠2, ♦5, ♦6, ♣5, ♥A, ♣9, ♣J]
周星驰:[♣A, ♦4, ♦3, ♣4, ♠6, ♥6, ♠4, 大王, ♣K, ♠3, ♥5, ♥2, ♣8, ♠10, ♦7, ♣3, ♦5]
吴尊:[♦K, ♥K, ♥J, ♠J, ♣10, ♠Q, ♣Q, ♥Q, ♥4, ♥7, ♦Q, ♠K, ♦2, ♥9, ♠9, ♠8, ♦6]
李连杰:[♦J, ♦A, ♠A, ♥10, ♥8, ♦10, ♥3, ♠5, 小王, ♠7, ♦9, ♣7, ♣6, ♦8, ♣2, ♠2, ♣5]
底牌:[♥A, ♣9, ♣J]

JAVA斗地主案例(单列)相关推荐

  1. Java(斗地主案例)

    斗地主案例的需求分析 斗地主案例的代码实现 package com.itheima.demo04.Test;import java.util.ArrayList; import java.util.C ...

  2. java 斗地主 案例

    package zyr.doudizhu;/* * 54张牌 3个玩家 没人17张牌 最后3张留作底牌 * 1准备牌 * 2洗牌 * 3发牌 * 4看牌 * */import java.util.Ar ...

  3. java斗地主案例,没有界面

    import java.util.ArrayList; import java.util.Collections; public class Duodizhu { /* 准备牌 定义一个放52张牌的集 ...

  4. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_03 斗地主案例(单列)_1_斗地主案例的需求分析...

    洗牌用到集合工具类.Collections里面有个shuffle的方法 完整的需求分析 转载于:https://www.cnblogs.com/wangjunwei/p/11232480.html

  5. 斗地主 java思路_使用Java实现简单的斗地主案例

    使用Java实现简单的斗地主案例 案例说明:使用Java实现简单的斗地主洗牌发牌的操作: 具体规则: 共有54张牌,顺序打乱: 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌) ...

  6. Java实现简单的斗地主案例(超详细代码)

    案例说明:使用Java实现简单的斗地主洗牌发牌的操作 具体规则: 共有54张牌,顺序打乱: 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后留三张为底牌(地主牌). 源码实现: /** 斗地主案例: ...

  7. java基础-Map集合、Collections集合、斗地主案例

    1.Map集合 1.1Map集合概述和特点 Map集合概述 interface Map<K,V> K:键的类型:V:值的类型 Map集合的特点 (1)键值对映射关系 (2)一个键对应一个值 ...

  8. string转map集合_Map、斗地主案例

    一.Map方法 import java.util.HashMap; import java.util.Map; public class Demo01 {public static void main ...

  9. Map案例总结-斗地主案例

    Map案例总结-斗地主案例 Map集合元素是成对存在,每个元素分为键和值两部分,合在一起则称"键值对".     Map斗地主这个案例用HashMap集合将54张扑克牌存储,然后随 ...

最新文章

  1. 如何破解汽车-快速的速成课程
  2. 盛会再临,2018中国大数据技术大会(BDTC)首曝日程及议题
  3. PIL:python图像处理库的介绍
  4. java多线程的同步
  5. CTFshow 反序列化 web266
  6. 程序员数学基础【二、时间复杂度】(Python版本)
  7. 利用CSS变量实现炫酷的悬浮效果
  8. STL - Unorderedset - 自定义哈希函数
  9. Android应用性能优化(3)---加快应用启动速度
  10. 基于typescript的rtsp客户端实现
  11. 无人机图像的目标检测的学习
  12. 编程珠玑 啊哈 算法
  13. 第一篇博客--大学成长指南
  14. 揭秘微信红包:架构、抢红包算法、高并发和降级方案
  15. 关于linux中limits的一些总结
  16. 为什么Windows的文件名不能超过255个英文字符,求解答
  17. 添加企业微信免验证设置
  18. UVM基础-Sequence、Sequencer(一)
  19. Java常见的线程安全工具容器类(待完善)
  20. 人机交互课堂分享 手势交互与体感交互

热门文章

  1. 最小编辑距离算法及python实现
  2. VMware 如何调整Linux系统窗口大小
  3. kl压缩 matlab,KL 变换实习matlab代码
  4. [Wi-Fi抓包篇]1. Omnipeek——抓包前准备工作
  5. 改变DataGridView中的DataGridViewButtonCell单元格的背景色.
  6. 一站式开发一个安卓APP-原型设计篇
  7. Cisco之show ip arp 与 show mac-address-table
  8. python动画库_创造生动有趣的动画,Matplotlib库大显身手
  9. GAppProxy-2.0.0安装使用手册
  10. 此计算机上未安装sql2000,MDAC及SQL SERVER 2000安装失败的原因及解决方法