Java实现扑克牌自动发牌系统

2023-10-30

利用Java的ArrayList实现随机给三个人发扑克牌

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

class Card{
    private int rank;
    private String suit;

    public Card(int rank, String suit) {
        this.rank = rank;
        this.suit = suit;
    }

    @Override
    public String toString() {
        return "[ " + this.suit +" : "+this.rank + " ]";
    }
}

public class TestDemo {
    private static final String[] suits = {"♥","♠","♣","♦"};

    public static List<Card> buyCard() {
        ArrayList<Card> cards= new ArrayList<>();
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 13; j++) {
                cards.add(new Card(j,suits[i]));
            }
        }
        return cards;
    }

    private static void swap(List<Card> cards ,int i ,int j){
        Card tmp = cards.get(i);
        cards.set(i,cards.get(j));
        cards.set(j,tmp);
    }

    public static void shuffle(List<Card> cards){
        int size = cards.size();
        for (int i = size - 1; i > 0; i--) {
            Random random = new Random();
            int rand = random.nextInt(i);
            swap(cards,i,rand);
        }
    }
    public static void main(String[] args) {
        List<Card> cards = buyCard();
        shuffle(cards);
        //System.out.println(cards);

        ArrayList<List<Card>> hand = new ArrayList<>();
        ArrayList<Card> hand1 = new ArrayList<>();
        ArrayList<Card> hand2 = new ArrayList<>();
        ArrayList<Card> hand3 = new ArrayList<>();

        hand.add(hand1);
        hand.add(hand2);
        hand.add(hand3);

        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 3; j++) {
                Card card = cards.remove(0);
                hand.get(j).add(card);
            }
        }

        System.out.println("the first people's cards :" + hand1);
        System.out.println("the second people's cards :" + hand2);
        System.out.println("the third people's cards :" + hand3);
        System.out.println("the rest cards :" + cards);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java实现扑克牌自动发牌系统 的相关文章

随机推荐

  • 【Java】 已知一个数组 arr[] = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引值。

    import java util Scanner public class Test04 public static void main String args 定义一个数组 用静态初始化完成数组元素的初始化 int arr 19 28 3
  • tqdm循环中实时更新进度条的文字(描述)部分

    tqdm是一个显示进度条的工具 可以在使用for循环的时候添加一个tqdm 这样就知道程序的实时进度 tqdm github页面 https github com tqdm tqdm 示例代码 from tqdm import tqdm i
  • 解决Word、Excel启动时提示向程序发送命令出现问题

    还记得突然有一天 打开Excel或者word后 总是提示 向程序发送命令出现问题 那时候很郁闷 不知道什么问题 重启电脑等方法都没用 然后度娘查找 最后才发现是因为按照额外程序导致的 以下详细说说前因后果 以Excel为例 遇到这种问题应该
  • Python中的连续比较运算符(与C语言对比)

    在Python中 连续的比较运算符是允许的 但是在C语言中是编译不会报错 但是不建议这样使用 Python代码 gt gt gt 5 gt 3 lt 4 True gt gt gt 6 gt 3 lt 1 True 在Python中这两行表
  • 常见的js代码调试

    这里主要探讨使用浏览器来调试javascript方法 并且仅对于IE 对于Opera7 Mozilla FireFox Netscape Navigator等浏览器偶在开发过程中用的很少 没有太多经验 在此就不予探讨 工具的安装 在安装of
  • thymeleaf基本语法

    thymeleaf基本语法 Spring Boot整合Thymeleaf 模版 依赖 创建模板文件 定义页面 简单表达式 Thymeleaf 常用语法 定义局部变量 注释 标准注释 析器级注释 取值 拼接 内联表达式 th inline 字
  • 简单理解磁盘结构

    本文首发于 Guanngxu 的个人博客 磁盘到底是怎样工作的 一文理解硬盘结构 数据库系统总会涉及到辅助存储 大多都是磁盘 因为它们能够存储大量需要长期保存的数据 因此我们有必要先了解了解磁盘的相关知识 根据机械原理 存储器的容量越大其速
  • Mybatis-Plus 实现多表联合查询+分页+查询条件

    Mybatis plus 自己只能完成单表操作 所以如果想要实现多表 需要借助 Mybatis 实现 首先引入mybatis plus依赖 这里就不演示了 返回结果集封装 传递分页以及查询的参数 主要代码在 Service 中 Reques
  • 若依微服务报错Error: Cannot find module ‘html-webpack-plugin‘解决

    遇到的问题 Error Cannot find module html webpack plugin 但是已经有html webpack plugin了 还是提示了报错 解决办法 https gitee com y project RuoY
  • LeetCode每日刷题:合并两个有序数组

    题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2 另有两个整数 m 和 n 分别表示 nums1 和 nums2 中的元素数目 请你 合并 nums2 到 nums1 中 使合并后的数组同样按 非递减顺序 排列 注意
  • LightGBM原理介绍

    简介 是GBDT模型的一个进化版本 其主要思想是利用弱分类器 决策树 迭代训练以得到最优模型 该模型具有训练效果好 不易过拟合等优点 备注 容易出现过拟合的风险 需要限制树的最大深度来防止过拟合 LGB是一个实现GBDT算法的框架 支持高效
  • Python学习笔记(三)

    文章目录 1 异常 2 单测 3 读写文件 3 1 读文件 3 2 写文件 3 3 操作文件和目录 4 正则表达式 4 1 贪婪匹配 5 其它 5 1 StringIO BytesIO 5 2 序列化 5 2 1 pickle 5 2 2
  • 3D光照阴影 平面阴影矩阵推导及代码实现

    3D光照阴影 平面阴影矩阵推导及代码实现 参考有关知识于是辛苦几个小时 推导出光照 平面阴影转换矩阵见图片 平面阴影矩阵推导第一页 平面阴影矩阵推导第二页 平面阴影矩阵 具体代码实现 第三页 到这里光照阴影的平面矩阵推导结束还有伪代码 参考
  • 如何使用学生账号来激活使用Jetbrains全家桶

    使用 edu邮箱注册学生账号来激活使用JetBrains全家桶 起因 之前激活过Jetbrains家的IDE 升级到2017 3 3版本 提示又要激活 试着原来的方法 结果用来激活的License Server全都失效 据称搭建本地反向代理
  • obj[‘x‘]和obj[x]的区别

    对象数据类型 由零到多组键值对 属性名和属性值 组成的属性名的类型 说法一 属性名类型只能是字符串或者Symbol 说法二 属性名类型可以是任何基本类型值 处理中可以和字符串互通 但是属性名绝对不能是引用数据类型 如果设置引用类型 最后也是
  • Python 爬虫学习笔记(二)urllib下载图片和视频

    一 urllib的1个类型和6个方法 1 response的类型 我们打印一下urllib request方法获取的response是什么类型 import urllib request url http www baidu com res
  • springboot yml文件配置Map List等数据

    springboot yml文件配置Map List等数据 配置类定义 yml 配置 使用 说明 配置类定义 import lombok Getter import lombok Setter import org springframew
  • 007 034 打印一个三角形

    例 使用输出语句输出一个三角形 include
  • 20+个小而精的Python实战案例(附源码和数据)

    公众号 尤而小屋作者 Peter编辑 Peter 大家好 我是Peter 最近小编认真整理了20 个基于python的实战案例 主要包含 数据分析 可视化 机器学习 深度学习 时序预测等 案例的主要特点 提供源码 都是基于jupyter n
  • Java实现扑克牌自动发牌系统

    利用Java的ArrayList实现随机给三个人发扑克牌 import java util ArrayList import java util List import java util Random class Card private