2.1 任務功能流程
2.2 造牌功能分析
容器準備:建立集合容器,用於存放撲克牌
hashmappokermap
:撲克牌存放容器,key保證唯一性,hashmap便於索引
arraylistpokerlist
:撲克牌索引標誌,用於實現隨機取牌、發牌
造牌元素準備:建立陣列,儲存撲克牌組合元素,用於後續遍歷造牌
string[
] colors =
;string[
] numbers =
;
組合造牌:遍歷撲克牌元素,組合造牌,儲存在容器中
// 1.造牌
// 撲克牌儲存標記,0、1代表大小王,2從最小的牌3開始標記
int index =2;
for(string number : numbers)
}// 補充大小王兩張牌
pokermap.
put(0,
"大王");
pokermap.
put(1,
"小王");
pokerlist.
add(0)
;pokerlist.
add(1)
;
2.3 洗牌功能分析
洗牌:對卡牌容器裡的撲克牌順序打亂
洗牌實現:
由於容器pokermap
中的鍵與值一一對應,打亂卡牌容器,實質是打亂容器中的鍵
容器中的鍵與卡牌索引標記pokerlist
集合內容一致
故可打亂pokerlist
集合內容實現
2.4 發牌功能分析
發牌實質:由於卡牌的索引與卡牌一一對應,所以發牌實質發的是卡牌的索引
玩家準備:準備集合treeset
(可實現自動排序),儲存玩家及底牌的卡牌
遍歷集合發牌:集合長度54,三個玩家每人17張牌,剩餘3張底牌
// 3.發牌
// 定義集合,儲存三個玩家以及底牌的撲克牌
treeset
player1 =
newtreeset
<
>()
;treeset
player2 =
newtreeset
<
>()
;treeset
player3 =
newtreeset
<
>()
;treeset
cards =
newtreeset
<
>()
;for
(int i =
0; i < pokerlist.
size()
; i++
)else
if(i %3==
0)else
if(i %3==
1)else
if(i %3==2)}
2.5 看牌功能分析
看牌實質:玩家集合的遍歷,從撲克牌集合pokermap
獲取對應的卡牌
/**
* 看牌實現
* @param set 玩家卡牌集合
* @param pokermap 撲克牌集合
* @param name 玩家名稱
*/public
static
void
showpokers
(treeset
set, hashmap
pokermap, string name)
system.out.
println()
;}
用Map集合模擬鬥地主洗牌發牌
具體規則 組裝54張撲克牌將 54張牌順序打亂 三個玩家參與遊戲,三人交替摸牌,每人17張牌,最後三張留作底牌。檢視三人各自手中的牌 按照牌的大小排序 底牌 規則 手中撲克牌從大到小的擺放順序 大王,小王,2,a,k,q,j,10,9,8,7,6,5,4,3 準備牌 大王 小王 2 a k q j ...
鬥地主系列之洗牌和發牌
大家都知道,鬥地主的一副牌有54張,三位玩家,每位17張牌,3張底牌 17 3 3 54 所以,我們定義乙個list listcards new arraylist cards.get 0 cards.get 12 方塊3,方塊4 方塊k,方塊a,方塊2 cards.get 13 cards.get...
模擬鬥地主洗牌和發牌
分析 a 建立乙個牌盒 b 裝牌 c 洗牌 d 發牌 e 看牌 public class test system.out.println public static void main string args 定義乙個點陣列 string numbers for string c colors ar...