Java順序表實現(xiàn)的撲克牌小游戲(附詳細代碼)
1.前言
本文主要用上一篇博客的所有知識點實現(xiàn)的撲克牌小游戲,內(nèi)涵抽牌洗牌,內(nèi)容詳細,跟進小編的步伐!
2. 正文
1.要求:
1.首先要買52張牌(除去??牌,J Q K均用數(shù)字代替),2.然后進行洗牌打亂順序,3.有三個人輪流揭牌5張
2.思路及代碼實現(xiàn)
- 有52張牌所以首先我們先定義一個Card類用來完成牌包含的內(nèi)容
我們用private修飾實現(xiàn)了封裝,并調(diào)用了get set方法,這里小編在語法部分都有寫到,其次我們可以重寫toString 方法,使輸出的效果更符合我們的業(yè)務。
這樣我們可以直接打印出花色加值。下面我們在定義一個CardDemo的類用來存放我們修改Card類的方法

這是我們定義的CardDemo類,首先我們要先放四個花色在這個類中,把這四個花色分配給我的Card類中的suit,我也要定義13個數(shù)字分派給我Card中的rank!當我們這些都做完后,我們就該考慮如何存放這些數(shù)據(jù),所以我們用到了順序表的知識!!
我們定義了一個list 用來存放我們的數(shù)據(jù)!這一步也做完了,可見我們第一步完成下面我們可以看一下現(xiàn)在的代碼執(zhí)行情況
可見代碼正常運行,下面我們完成第二部操作打亂牌的次序
- 如何打亂牌的次序!?
在我們之前的學習中,學習到一個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);
}
}
首先這是我們定義的洗牌方法,先把下標交換一下

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

這樣我們第二步的代碼就完成了?。∵@里的swap方法最好用private封裝一下
- 最后我們要完成的是輪流揭牌的操作,這個方法對于剛接觸順序表的我們來說還是有點復雜的,下面小編一 一講解。
首先看這個圖可以很好理解每個人都要有獨立的順序表結構放牌,我們先完成這個方法
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;
}
最后這個方法我們也完成了!! 這個小游戲也結束了。
3.結語
到此這篇關于Java順序表實現(xiàn)的撲克牌小游戲的文章就介紹到這了,更多相關Java順序表撲克牌小游戲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mybatis-plus中IService接口的基本使用步驟
Mybatis-plus是一個Mybatis的增強工具,它提供了很多便捷的方法來簡化開發(fā),IService是Mybatis-plus提供的通用service接口,封裝了常用的數(shù)據(jù)庫操作方法,包括增刪改查等,下面這篇文章主要給大家介紹了關于Mybatis-plus中IService接口的基本使用步驟,需要的朋友可以參考下2023-06-06
Java Web文件上傳與下載優(yōu)化的實現(xiàn)方案
文件上傳與下載是 Web 應用中常見的功能,尤其是在需要處理大量文件傳輸、存儲的場景下,傳統(tǒng)的文件上傳和下載方式雖然簡單,但如果不加以優(yōu)化,可能會帶來一些問題,所以今天,我們將深入探討 Java Web 中如何實現(xiàn)高效的文件上傳和下載,需要的朋友可以參考下2025-02-02

