• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    【算法】扑克发牌算法实现
    首先给扑克牌中每张牌设定一个编号,下面算法实现的编号规则如下:
    u 红桃按照从小到大依次为:1-13
    u 方块按照从小到大依次为:14-26
    u 黑桃按照从小到大依次为:27-39
    u 梅花按照从小到大依次为:40-52
    u 小王为53,大王为54
    算法实现如下:
    u 首先按照以上编号规则初始化一个包含108个数字的数组
    u 每次随机从该数组中抽取一个数字,分配给保存玩家数据的数组
    实现该功能的代码如下所示:
    复制代码 代码如下:

    import java.util.*;
    /**
    * 发牌算法的实现
    * 要求:把2副牌,也就是108张,发给4个人,留6张底牌
    */
    public class Exec{
    public static void main(String[] args){
    //存储108张牌的数组
    int[] total = new int[108];
    //存储四个玩家的牌
    int[][] player = new int[4][25];
    //存储当前剩余牌的数量
    int leftNum = 108;
    //随机数字
    int ranNumber;
    //随机对象
    Random random = new Random();

    //初始化数组
    for(int i = 0;i total.length;i++){
    total[i] = (i + 1) % 54;
    //处理大小王编号
    if(total[i] == 0){
    total[i] = 54;
    }

    }

    //循环发牌
    for(int i = 0;i 25;i++){
    //为每个人发牌
    for(int j = 0;j player.length;j++){
    //生成随机下标
    ranNumber = random.nextInt(leftNum);
    //发牌
    player[j][i] = total[ranNumber];
    //移动已经发过的牌
    total[ranNumber] = total[leftNum - 1];
    //可发牌的数量减少1
    leftNum--;
    }
    }

    //循环输出玩家手中的牌
    for(int i = 0;i player.length;i++){
    for(int j = 0;j player[i].length;j++){
    System.out.print(" " + player[i][j]);
    }
    System.out.println();
    }
    //底牌
    for(int i = 0;i 8;i++){
    System.out.print(" " + total[i]);
    }
    System.out.println();
    }
    }
    您可能感兴趣的文章:
    • 纯CSS实现扑克牌效果
    • javascript实例--教你实现扑克牌洗牌功能
    • js计算德州扑克牌面值的方法
    • 使用C语言求解扑克牌的顺子及n个骰子的点数问题
    • C++德州扑克的核心规则算法
    上一篇:[J2SE]Java中3DES加密解密调用示例
    下一篇:java易懂易用的MD5加密(可直接运行) (1)第1/2页
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    【算法】扑克发牌算法实现 算法,扑克,发牌,实现,算法,