iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java使用ArrayList实现扑克牌的示例代码
  • 707
分享到

Java使用ArrayList实现扑克牌的示例代码

2024-04-02 19:04:59 707人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录前言一、项目要求二、具体实现2.1 Card类2.2 生成扑克牌2.3 打乱顺序2.4 发牌三、Test.java前言 学习了关于集合类的知识,我们可以做一个小项目来加深对集合类

前言

学习了关于集合类的知识,我们可以做一个小项目来加深对集合类知识的学习!

一、项目要求

代码实现,一副扑克牌(不包括大小王)的购买、打乱、发牌。

二、具体实现

2.1 Card类

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+" ]";
    }
}

2.2 生成扑克牌

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

    //假设没有大小王:1 2 3............. 11 12 13
    public static List<Card> buyCard() {
        ArrayList<Card> cards = new ArrayList<>();
        for (int i = 0; i < 4; i++) {
            for (int j = 1; j <= 13; j++) {
//                String suit = suits[i];
//                int rank = j;
//                Card card = new Card(rank, suit);
//                cards.add(card);
                cards.add(new Card(j,suits[i]));
            }
        }
        return cards;
    }

2.3 打乱顺序

 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);
        }
    }

2.4 发牌

		System.out.println("揭牌:3个人每个人轮流揭牌5张牌");

        ArrayList<List<Card>> hand = new ArrayList<>();

        List<Card> hand1 = new ArrayList<>();
        List<Card> hand2 = new ArrayList<>();
        List<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);
            }
        }

三、Test.java

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 Test1 {
    private static final String[] suits = {"♥", "♠", "♣", "♦"};

    //假设没有大小王:1 2 3............. 11 12 13
    public static List<Card> buyCard() {
        ArrayList<Card> cards = new ArrayList<>();
        for (int i = 0; i < 4; i++) {
            for (int j = 1; j <= 13; j++) {
//                String suit = suits[i];
//                int rank = j;
//                Card card = new Card(rank, suit);
//                cards.add(card);
                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();
        System.out.println("买牌:" + cards);
        shuffle(cards);
        System.out.println("洗牌:" + cards);
        System.out.println("揭牌:3个人每个人轮流揭牌5张牌");

        ArrayList<List<Card>> hand = new ArrayList<>();

        List<Card> hand1 = new ArrayList<>();
        List<Card> hand2 = new ArrayList<>();
        List<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("第一个人的牌:"+ hand1);
        System.out.println("第二个人的牌:"+ hand2);
        System.out.println("第三个人的牌:"+ hand3);
        System.out.println("剩下的牌:"+cards);
    }

    public static void main1(String[] args) {
        // 1. 构造一副扑克牌
        // 2. 揭牌
        Card card = new Card(3,"♥");
        System.out.println(card);

    }
}

到此这篇关于Java使用ArrayList实现扑克牌的示例代码的文章就介绍到这了,更多相关Java ArrayList扑克牌内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java使用ArrayList实现扑克牌的示例代码

本文链接: https://www.lsjlt.com/news/168845.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java使用ArrayList实现扑克牌的示例代码
    目录前言一、项目要求二、具体实现2.1 Card类2.2 生成扑克牌2.3 打乱顺序2.4 发牌三、Test.java前言 学习了关于集合类的知识,我们可以做一个小项目来加深对集合类...
    99+
    2024-04-02
  • Java实现扑克牌游戏的示例代码
    目录一、三人扑克二、具体实现Card类生成52张牌打乱顺序发牌三、完整代码一、三人扑克 想不想带上好朋友来上一局三人扑克呢。 二、具体实现 Card类 定义一个花色color变量和...
    99+
    2024-04-02
  • Java模拟实现扑克牌洗牌和发牌的示例代码
    目录一. 需求二. 全局代码poker.javapokers.java三. 设计分析1. 设计一张扑克牌2. 得到一副新牌3. 洗牌4. 发牌一. 需求 设计一副新的的扑克牌, 4个...
    99+
    2024-04-02
  • 通过JavaScript实现扑克牌游戏的示例代码
    首先,我们知道一副牌里有54张牌,然后牌里的数字是从 3 - 2 的里面总共有13张牌,然后 4 中花色 分别是 ♠️ ♥️ ♣️ &diam...
    99+
    2024-04-02
  • Python扑克牌21点游戏实例代码
    废话还是说太多了 直接上代码 import random import sys # 牌面列表 card_code = ['A', '2', '3', '4', '5', '6'...
    99+
    2024-04-02
  • Java实现简易扑克牌游戏的完整实例
    功能描述 1、创建扑克牌。包括四种花色(黑桃,红心,梅花,方块),十三种点数(2-10,J,Q,K),不考虑大小王。 2、创建两个玩家。包括玩家id、姓名、手牌等集合,手牌为扑克牌的...
    99+
    2024-04-02
  • Java实现拓扑排序的示例代码
    目录铺垫简介工作过程数据结构拓扑排序测试样例1测试样例2总结铺垫 有向图:我们这节要讲的算法涉及到有向图,所以我先把有向图的一些概念说一下,文章后面就不做解释啦。首先有向图节点与节点...
    99+
    2024-04-02
  • Java实现扑克牌的创建以及发放
    目录题目:1.扑克牌的源代码2.扑克牌运行结果3.扑克牌代码创建原理讲解3.1创建扑克牌前的准备工作3.2 52张扑克牌的创建(除去大小王)3.3洗牌3.4发牌总结题目: 创建一个扑...
    99+
    2023-03-07
    java实现扑克牌 java发牌程序 java扑克牌游戏
  • Java实现拓扑排序算法的示例代码
    目录拓扑排序原理1.点睛2.拓扑排序3.算法步骤4.图解拓扑排序算法实现1.拓扑图2.实现代码3.测试拓扑排序原理 1.点睛 一个无环的有向图被称为有向无环图。有向无环图是描述一个工...
    99+
    2024-04-02
  • Java如何实现扑克牌的创建及发放
    这篇文章主要讲解了“Java如何实现扑克牌的创建及发放”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java如何实现扑克牌的创建及发放”吧!题目:创建一个扑克牌(不需要包含大小王),分别分发...
    99+
    2023-07-05
  • Java实现简易扑克牌游戏的完整步骤
    本篇内容主要讲解“Java实现简易扑克牌游戏的完整步骤”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java实现简易扑克牌游戏的完整步骤”吧!Java的特点有哪些Java的特点有哪些1.Java...
    99+
    2023-06-14
  • Java实现克鲁斯卡尔算法的示例代码
    目录克鲁斯卡尔算法执行流程代码实现克鲁斯卡尔算法 克鲁斯卡尔算法是一种用于求解最小生成树问题的贪心算法。最小生成树是一个连通无向图中生成树中边权值和最小的生成树。克鲁斯卡尔算法按边权...
    99+
    2023-05-16
    Java实现克鲁斯卡尔算法 Java克鲁斯卡尔算法 Java算法
  • JAVA实现经典游戏坦克大战的示例代码
    目录前言主要设计功能截图代码实现总结前言 小时候大家都玩过坦克大战吧,熟悉的旋律和丰富的关卡陪伴了我们一整个寒暑假,还记得传说中的经典坦克大战 吗?那些怀旧的记忆,伴随着我们一起走过...
    99+
    2024-04-02
  • WPF实现窗体亚克力效果的示例代码
    WPF 窗体设置亚克力效果 框架使用大于等于.NET40。 Visual Studio 2022。 项目使用 MIT 开源许可协议。 WindowAcrylicB...
    99+
    2024-04-02
  • Java实现Treap树的示例代码
    目录Treap树数据结构遍历查询增加删除完整代码Treap树 Treap树是平衡二叉搜索树的一种实现方式,但它不是完全平衡的。平衡二叉搜索树的实现方式还有AVL树、红黑树、替罪羊树、...
    99+
    2024-04-02
  • 使用Python实现tail的示例代码
    目录前记1.第一版--从文件尾部读取实时数据2.第二版--实现tail -f3.第三版--优雅的读取输出日志文件前记 tail是一个常用的Linux命令, 它可以打印文件的后面n行数...
    99+
    2023-03-01
    Python实现tail Python tail
  • Java代码实现循环队列的示例代码
    循环队列结构 队列特点 队列为一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受...
    99+
    2024-04-02
  • java Scanner类的使用示例代码
    Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间...
    99+
    2024-04-02
  • Java实现双链表的示例代码
    目录一、双向链表是什么二、具体方法实现定义结点下标访问异常获取链表长度打印链表清空链表头插法尾插法指定位置插入查找元素删除第一次出现的关键字删除所有值为key的节点三、完整代码一、双...
    99+
    2024-04-02
  • Java实现Redis哨兵的示例代码
    前言: 本文将采用文字+代码的方式,讲解redis版哨兵的实现,所有代码都将写在一个类中,每个属性和方法都会结合文字加以说明。 1. 哨兵(Sentinel)主要功能如下: 1、不时...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作