Java顺序表实现的扑克牌小游戏(附详细代码)

 更新时间:2025年10月27日 09:11:01   作者:Paxon Zhang  
在扑克牌游戏中,我们有时需要判断一手牌是否是一个顺子,也就是判断5张牌是否连续,这篇文章主要介绍了Java顺序表实现的扑克牌小游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

1.前言

本文主要用上一篇博客的所有知识点实现的扑克牌小游戏,内涵抽牌洗牌,内容详细,跟进小编的步伐!

2. 正文

1.要求:

1.首先要买52张牌(除去🤡牌,J Q K均用数字代替),2.然后进行洗牌打乱顺序,3.有三个人轮流揭牌5张

2.思路及代码实现

  1. 有52张牌所以首先我们先定义一个Card类用来完成牌包含的内容

    我们用private修饰实现了封装,并调用了get set方法,这里小编在语法部分都有写到,其次我们可以重写toString 方法,使输出的效果更符合我们的业务。

    这样我们可以直接打印出花色加值。下面我们在定义一个CardDemo的类用来存放我们修改Card类的方法


    这是我们定义的CardDemo类,首先我们要先放四个花色在这个类中,把这四个花色分配给我的Card类中的suit,我也要定义13个数字分派给我Card中的rank!当我们这些都做完后,我们就该考虑如何存放这些数据,所以我们用到了顺序表的知识!!

    我们定义了一个list 用来存放我们的数据!这一步也做完了,可见我们第一步完成下面我们可以看一下现在的代码执行情况

    可见代码正常运行,下面我们完成第二部操作打乱牌的次序
  1. 如何打乱牌的次序!?

在我们之前的学习中,学习到一个Random的类,这个类具有一个nextInt()方法可以实现位置的互换!

接着我们看代码如何实现!!

   public void shuffle(ArrayList<Card> list){
      Random random=new Random();
      for (int i =list.size()-1 ; i>0; i--) {
          int index=random.nextInt(i);
      }
  }

首先这是我们定义的洗牌方法,先把下标交换一下

但是在我们定义交换方法的时候,以原本的逻辑代码会报错!这时候就体现了Java的面向对象的特点了,我们可以直接调用set方法!!!

这样我们第二步的代码就完成了!!这里的swap方法最好用private封装一下

  1. 最后我们要完成的是轮流揭牌的操作,这个方法对于刚接触顺序表的我们来说还是有点复杂的,下面小编一 一讲解。

    首先看这个图可以很好理解每个人都要有独立的顺序表结构放牌,我们先完成这个方法
    public void play(ArrayList<Card> list){
        ArrayList<Card> tep0=new ArrayList<>();
        ArrayList<Card> tep1=new ArrayList<>();
        ArrayList<Card> tep2=new ArrayList<>();
    }

接着我们考虑怎么删

然后我们的思路继续向前,三个人轮流拿牌一次拿一张,拿五轮所以我们就要用到循环

用card接收我们揭开的牌,最后我们要把牌放到我们定义的三个tep中,这该怎么放??这时候我们就需要采用二维数组的思想,与上篇博客的杨辉三角形成共鸣

下面看图

由这个图我们就可以最后完善一下代码

public ArrayList<ArrayList<Card>>  play(ArrayList<Card> list){
        ArrayList<Card> tep0=new ArrayList<>();
        ArrayList<Card> tep1=new ArrayList<>();
        ArrayList<Card> tep2=new ArrayList<>();
        ArrayList<ArrayList<Card>> tep=new ArrayList<>();
        tep.add(tep0);
        tep.add(tep1);
        tep.add(tep2);
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 3; j++) {
                Card card=list.remove(0);
                tep.get(j).add(card);
            }
        }
        return tep;

    }

最后这个方法我们也完成了!! 这个小游戏也结束了。

3.结语

到此这篇关于Java顺序表实现的扑克牌小游戏的文章就介绍到这了,更多相关Java顺序表扑克牌小游戏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅析Java中的异常处理机制

    浅析Java中的异常处理机制

    这篇文章主要介绍了Java中的异常处理机制的相关资料,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-11-11
  • SpringBoot使用Redis方式

    SpringBoot使用Redis方式

    文章介绍了SpringDataRedis操作本地Redis数据库的方法,包括Redis的基本概念、数据类型、命令以及在Java中的使用
    2024-11-11
  • java常见事件响应方法实例汇总

    java常见事件响应方法实例汇总

    这篇文章主要介绍了java常见事件响应方法,对于初学者有很好的参考借鉴价值,分享给大家,需要的朋友可以参考下
    2014-08-08
  • 详解Mybatis中的PooledDataSource

    详解Mybatis中的PooledDataSource

    这篇文章主要介绍了详解Mybatis中的PooledDataSource,PooledDataSource使用了数据库连接池可以实现数据库连接池的重复利用,还能控制连接数据库的连接上限
    2022-06-06
  • Java数据结构及算法实例:选择排序 Selection Sort

    Java数据结构及算法实例:选择排序 Selection Sort

    这篇文章主要介绍了Java数据结构及算法实例:选择排序 Selection Sort,本文直接给出实现代码,代码中包含详细注释,需要的朋友可以参考下
    2015-06-06
  • SecurityUtils.getSubject().getPrincipal()为null的问题

    SecurityUtils.getSubject().getPrincipal()为null的问题

    这篇文章主要介绍了SecurityUtils.getSubject().getPrincipal()为null的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Java反射之深入理解

    Java反射之深入理解

    这篇文章主要介绍了Java反射机制的深入理解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 浅谈JAVA 内存流的实现

    浅谈JAVA 内存流的实现

    这篇文章主要介绍了浅谈JAVA 内存流的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Java线程池队列DelayQueue的使用详解

    Java线程池队列DelayQueue的使用详解

    这篇文章主要介绍了Java线程池队列DelayQueue的使用详解,DelayQueue顾名思义,它是个无边界延迟队列,它的底层是基于PriorityBlockingQueue实现的,该队列中的元素都是按照过期时间顺序排序的,队列头部放的是即将过期的元素,需要的朋友可以参考下
    2023-12-12
  • Spring IOC装配Bean过程解析

    Spring IOC装配Bean过程解析

    这篇文章主要介绍了Spring IOC装配Bean过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论