Java实现扑克牌洗牌和发牌

 更新时间:2020年04月05日 10:01:36   作者:feng海涛  
这篇文章主要为大家详细介绍了Java实现扑克牌洗牌和发牌,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java实现扑克牌洗牌发牌的具体代码,供大家参考,具体内容如下

实现原理:使用4种花色和13个数字组合成52张牌,放进一个集合中;通过把集合数据排序打乱实现洗牌操作,然后在通过循环把牌抽出来实现发牌操作。

下面是实现代码:

import java.util.ArrayList;
import java.util.Collections;

public class Card {
  private static ArrayList<String> list = new ArrayList<>();
  private static String[] colors = {"黑桃","红桃","梅花","方块"};
  private static String[] nums = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
  private static String[] jokers = {"Joker","joker"}; //大小王
  private static ArrayList<String> A = new ArrayList<>(); //小人A
  private static ArrayList<String> B = new ArrayList<>(); //小人B
  private static ArrayList<String> C = new ArrayList<>(); //小人C
  private static ArrayList<String> D = new ArrayList<>(); //小人D

  //初始化扑克牌
  public static void initCards(boolean need){
    for(String color:colors){
      for (String num:nums) {
        list.add(color + num);
      }
    }
    //是否添加大小王
    if (need) {
      list.add(jokers[0]);
      list.add(jokers[1]);
    }
  }

  //洗牌
  public static void xiPai(){
    Collections.shuffle(list);
  }

  //性感荷官,在线发牌
  public static void faPai(){
    A.clear();
    B.clear();
    C.clear();
    D.clear();
    for (int i = 0; i < list.size();i++) {
      if (i%4 == 0) {
        A.add(list.get(i));
      }
      if (i%4 == 1) {
        B.add(list.get(i));
      }
      if (i%4 == 2) {
        C.add(list.get(i));
      }
      if (i%4 == 3) {
        D.add(list.get(i));
      }
    }
  }

  //主方法
  public static void main(String args[]){
    initCards(true);
    xiPai();
    faPai();
    System.out.print("小人A" + A + "\n");
    System.out.print("小人B" + B + "\n");
    System.out.print("小人C" + C + "\n");
    System.out.print("小人D" + D + "\n");
  }
}

下面是运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 如何在SpringBoot中使用Spring-AOP实现接口鉴权

    如何在SpringBoot中使用Spring-AOP实现接口鉴权

    这篇文章主要介绍了如何在SpringBoot中使用Spring-AOP实现接口鉴权,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-09-09
  • SpringBoot配置Profile实现多环境支持

    SpringBoot配置Profile实现多环境支持

    这篇文章主要介绍了SpringBoot配置Profile实现多环境支持操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • maven下mybatis-plus和pagehelp冲突问题的解决方法

    maven下mybatis-plus和pagehelp冲突问题的解决方法

    这篇文章主要介绍了maven下mybatis-plus和pagehelp冲突的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • SpringCloud 服务注册IP错误的解决

    SpringCloud 服务注册IP错误的解决

    这篇文章主要介绍了SpringCloud 服务注册IP错误的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • java实现图像转码为字符画的方法

    java实现图像转码为字符画的方法

    这篇文章主要为大家详细介绍了java实现图像转码为字符画的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Mybatis查询返回Map<String,Object>类型的实现

    Mybatis查询返回Map<String,Object>类型的实现

    本文主要介绍了Mybatis查询返回Map<String,Object>类型的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Spring Boot集成netty实现客户端服务端交互示例详解

    Spring Boot集成netty实现客户端服务端交互示例详解

    这篇文章主要给大家介绍了关于Spring Boot集成netty实现客户端服务端交互的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • Java创建多线程的8种方式集合

    Java创建多线程的8种方式集合

    这篇文章主要介绍了Java创建多线程的8种方式集合,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • idea开启热部署Devtools的步骤详解

    idea开启热部署Devtools的步骤详解

    当我们在 idea 中修改代码的时候,idea 并不会自动的重启去响应我们修改的内容,而是需要我们手动的重新启动项目才可以生效,这个是非常不方便,但是可以在 idea 中开启这个自动热部署的功能,本文给大家介绍了idea开启热部署Devtools的步骤,需要的朋友可以参考下
    2024-03-03
  • Java数据类型转换实例解析

    Java数据类型转换实例解析

    这篇文章主要介绍了Java数据类型转换实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论