鬥地主案例(雙列集合)

2021-10-19 07:23:01 字數 2555 閱讀 4953

案例介紹

按照鬥地主的規則,完成洗牌發牌的動作。

具體規則:

組裝54張撲克牌將

54張牌順序打亂

三個玩家參與遊戲,三人交替摸牌,每人17張牌,最後三張留作底牌。

檢視三人各自手中的牌(按照牌的大小排序)、底牌

規則:手中撲克牌從大到小的擺放順序:大王,小王,2,a,k,q,j,10,9,8,7,6,5,4,3

案例需求分析

準備牌:

完成數字與紙牌的對映關係:

使用雙列map(hashmap)集合,完成乙個數字與字串紙牌的對應關係(相當於乙個字典)。

洗牌:

通過數字完成洗牌發牌

發牌:

將每個人以及底牌設計為arraylist,將最後3張牌直接存放於底牌,剩餘牌通過對3取模依次發牌。

存放的過程中要求數字大小與鬥地主規則的大小對應。

將代表不同紙牌的數字分配給不同的玩家與底牌。

看牌:

通過map集合找到對應字元展示。

通過查詢紙牌與數字的對應關係,由數字轉成紙牌字串再進行展示。

實現**步驟

public

class

poker}/*

* 2 將54張牌順序打亂

*/// 取出編號 集合

setnumberset = pokermap.

keyset()

;// 因為要將編號打亂順序 所以 應該先進行轉換到 list集合中

arraylist

numberlist =

newarraylist

(); numberlist.

addall

(numberset)

;// 打亂順序

collections.

shuffle

(numberlist)

;// 3 完成三個玩家交替摸牌,每人17張牌,最後三張留作底牌

// 3.1 發牌的編號

// 建立三個玩家編號集合 和乙個 底牌編號集合

arraylist

nop1 =

newarraylist

(); arraylist

nop2 =

newarraylist

(); arraylist

nop3 =

newarraylist

(); arraylist

dipaino =

newarraylist

();// 3.2發牌的編號

for(

int i =

0; i < numberlist.

size()

; i++

)else

else

if(i %3==

1)else}}

// 4 檢視三人各自手中的牌(按照牌的大小排序)、底牌

// 4.1 對手中編號進行排序

collections.

sort

(nop1)

; collections.

sort

(nop2)

; collections.

sort

(nop3)

; collections.

sort

(dipaino)

;// 4.2 進行牌面的轉換

// 建立三個玩家牌面集合 以及底牌牌面集合

arraylist

player1 =

newarraylist

(); arraylist

player2 =

newarraylist

(); arraylist

player3 =

newarraylist

(); arraylist

dipai =

newarraylist

();// 4.3轉換

for(integer i : nop1)

for(integer i : nop2)

for(integer i : nop3)

for(integer i : dipaino)

檢視system.out.

println

("令狐沖:"

+player1)

; system.out.

println

("石破天:"

+player2)

; system.out.

println

("鳩摩智:"

+player3)

; system.out.

println

("底牌:"

+dipai);}

}

15 鬥地主案例 雙列

鬥地主綜合案例 有序版本 1.準備牌 特殊牌 大王,小王 52張牌 迴圈巢狀遍歷兩個集合 或陣列 組成成52張牌 listcolors new arraylist listnumbers new arraylist collections.addall colors,collections.adda...

集合案例 鬥地主

1.準備牌 54張牌,儲存到乙個集合中 特殊牌 大王,小王其他52張牌 定義乙個陣列 集合,儲存4種花色 黑 紅 梅 方 定義乙個陣列 集合,儲存13個序號 2,a k q 4 3 迴圈巢狀遍歷兩個陣列 集合組裝52張牌 2.洗牌 使用集合工具類collections的方法 static void ...

用集合實現鬥地主案例

public class dealcards string str2 存放所有牌的集合 arraylist list newarraylist 存放玩家一的手牌 arraylist list1 newarraylist 存放玩家二的手牌 arraylist list2 newarraylist 存放...