最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java順序表實現(xiàn)的撲克牌小游戲(附詳細(xì)代碼)

 更新時間:2025年10月27日 09:11:01   作者:Paxon?Zhang  
在撲克牌游戲中,我們有時需要判斷一手牌是否是一個順子,也就是判斷5張牌是否連續(xù),這篇文章主要介紹了Java順序表實現(xiàn)的撲克牌小游戲的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.前言

本文主要用上一篇博客的所有知識點實現(xiàn)的撲克牌小游戲,內(nèi)涵抽牌洗牌,內(nèi)容詳細(xì),跟進(jìn)小編的步伐!

2. 正文

1.要求:

1.首先要買52張牌(除去??牌,J Q K均用數(shù)字代替),2.然后進(jìn)行洗牌打亂順序,3.有三個人輪流揭牌5張

2.思路及代碼實現(xiàn)

  1. 有52張牌所以首先我們先定義一個Card類用來完成牌包含的內(nèi)容

    我們用private修飾實現(xiàn)了封裝,并調(diào)用了get set方法,這里小編在語法部分都有寫到,其次我們可以重寫toString 方法,使輸出的效果更符合我們的業(yè)務(wù)。

    這樣我們可以直接打印出花色加值。下面我們在定義一個CardDemo的類用來存放我們修改Card類的方法


    這是我們定義的CardDemo類,首先我們要先放四個花色在這個類中,把這四個花色分配給我的Card類中的suit,我也要定義13個數(shù)字分派給我Card中的rank!當(dāng)我們這些都做完后,我們就該考慮如何存放這些數(shù)據(jù),所以我們用到了順序表的知識?。?p style="text-align:center">

    我們定義了一個list 用來存放我們的數(shù)據(jù)!這一步也做完了,可見我們第一步完成下面我們可以看一下現(xiàn)在的代碼執(zhí)行情況

    可見代碼正常運(yùn)行,下面我們完成第二部操作打亂牌的次序
  1. 如何打亂牌的次序???

在我們之前的學(xué)習(xí)中,學(xué)習(xí)到一個Random的類,這個類具有一個nextInt()方法可以實現(xiàn)位置的互換!

接著我們看代碼如何實現(xiàn)??!

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

首先這是我們定義的洗牌方法,先把下標(biāo)交換一下

但是在我們定義交換方法的時候,以原本的邏輯代碼會報錯!這時候就體現(xiàn)了Java的面向?qū)ο蟮奶攸c了,我們可以直接調(diào)用set方法?。。?/p>

這樣我們第二步的代碼就完成了??!這里的swap方法最好用private封裝一下

  1. 最后我們要完成的是輪流揭牌的操作,這個方法對于剛接觸順序表的我們來說還是有點復(fù)雜的,下面小編一 一講解。

    首先看這個圖可以很好理解每個人都要有獨立的順序表結(jié)構(gòu)放牌,我們先完成這個方法
    public void play(ArrayList<Card> list){
        ArrayList<Card> tep0=new ArrayList<>();
        ArrayList<Card> tep1=new ArrayList<>();
        ArrayList<Card> tep2=new ArrayList<>();
    }

接著我們考慮怎么刪

然后我們的思路繼續(xù)向前,三個人輪流拿牌一次拿一張,拿五輪所以我們就要用到循環(huán)

用card接收我們揭開的牌,最后我們要把牌放到我們定義的三個tep中,這該怎么放??這時候我們就需要采用二維數(shù)組的思想,與上篇博客的楊輝三角形成共鳴

下面看圖

由這個圖我們就可以最后完善一下代碼

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;

    }

最后這個方法我們也完成了!! 這個小游戲也結(jié)束了。

3.結(jié)語

到此這篇關(guān)于Java順序表實現(xiàn)的撲克牌小游戲的文章就介紹到這了,更多相關(guān)Java順序表撲克牌小游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析Java中的異常處理機(jī)制

    淺析Java中的異常處理機(jī)制

    這篇文章主要介紹了Java中的異常處理機(jī)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-11-11
  • SpringBoot使用Redis方式

    SpringBoot使用Redis方式

    文章介紹了SpringDataRedis操作本地Redis數(shù)據(jù)庫的方法,包括Redis的基本概念、數(shù)據(jù)類型、命令以及在Java中的使用
    2024-11-11
  • java常見事件響應(yīng)方法實例匯總

    java常見事件響應(yīng)方法實例匯總

    這篇文章主要介紹了java常見事件響應(yīng)方法,對于初學(xué)者有很好的參考借鑒價值,分享給大家,需要的朋友可以參考下
    2014-08-08
  • 詳解Mybatis中的PooledDataSource

    詳解Mybatis中的PooledDataSource

    這篇文章主要介紹了詳解Mybatis中的PooledDataSource,PooledDataSource使用了數(shù)據(jù)庫連接池可以實現(xiàn)數(shù)據(jù)庫連接池的重復(fù)利用,還能控制連接數(shù)據(jù)庫的連接上限
    2022-06-06
  • Java數(shù)據(jù)結(jié)構(gòu)及算法實例:選擇排序 Selection Sort

    Java數(shù)據(jù)結(jié)構(gòu)及算法實例:選擇排序 Selection Sort

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實例:選擇排序 Selection Sort,本文直接給出實現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2015-06-06
  • SecurityUtils.getSubject().getPrincipal()為null的問題

    SecurityUtils.getSubject().getPrincipal()為null的問題

    這篇文章主要介紹了SecurityUtils.getSubject().getPrincipal()為null的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Java反射之深入理解

    Java反射之深入理解

    這篇文章主要介紹了Java反射機(jī)制的深入理解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 淺談JAVA 內(nèi)存流的實現(xiàn)

    淺談JAVA 內(nèi)存流的實現(xiàn)

    這篇文章主要介紹了淺談JAVA 內(nèi)存流的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java線程池隊列DelayQueue的使用詳解

    Java線程池隊列DelayQueue的使用詳解

    這篇文章主要介紹了Java線程池隊列DelayQueue的使用詳解,DelayQueue顧名思義,它是個無邊界延遲隊列,它的底層是基于PriorityBlockingQueue實現(xiàn)的,該隊列中的元素都是按照過期時間順序排序的,隊列頭部放的是即將過期的元素,需要的朋友可以參考下
    2023-12-12
  • Spring IOC裝配Bean過程解析

    Spring IOC裝配Bean過程解析

    這篇文章主要介紹了Spring IOC裝配Bean過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04

最新評論

南木林县| 曲阜市| 玉溪市| 凭祥市| 特克斯县| 城步| 平遥县| 平泉县| 丰台区| 报价| 文安县| 霍林郭勒市| 托克逊县| 团风县| 凤冈县| 徐州市| 伊吾县| 高台县| 万载县| 延安市| 徐汇区| 安陆市| 彰化市| 安新县| 临泉县| 浪卡子县| 成武县| 南通市| 田林县| 通辽市| 江永县| 雅安市| 四会市| 长宁区| 湖州市| 朝阳市| 津市市| 万全县| 乐都县| 柳江县| 河南省|