具體規則:組裝54張撲克牌將
54張牌順序打亂
三個玩家參與遊戲,三人交替摸牌,每人17張牌,最後三張留作底牌。
檢視三人各自手中的牌(按照牌的大小排序)、底牌
規則:手中撲克牌從大到小的擺放順序:大王,小王,2,a,k,q,j,10,9,8,7,6,5,4,3
準備牌:大王 小王 2 a k q j 10........
完成數字與紙牌的對映關係:
使用雙列map(hashmap)集合,完成乙個數字與字串紙牌的對應關係(相當於乙個字典)。
2.洗牌:
通過數字完成洗牌發牌
3.發牌:
將每個人以及底牌設計為arraylist,將最後3張牌直接存放於底牌,剩餘牌通過對3取模依次發牌。
存放的過程中要求數字大小與鬥地主規則的大小對應。
將代表不同紙牌的數字分配給不同的玩家與底牌。
4.看牌:
通過map集合找到對應字元展示。
通過查詢紙牌與數字的對應關係,由數字轉成紙牌字串再進行展示。
public class poker }/*
* 2 將54張牌順序打亂
*/// 取出編號 集合
setnumberset = pokermap.keyset();
// 因為要將編號打亂順序 所以 應該先進行轉換到 list集合中
arraylistnumberlist = new arraylist();
numberlist.addall(numberset);
// 打亂順序
collections.shuffle(numberlist);
// 3 完成三個玩家交替摸牌,每人17張牌,最後三張留作底牌
// 3.1 發牌的編號
// 建立三個玩家編號集合 和乙個 底牌編號集合
arraylistnop1 = new arraylist();
arraylistnop2 = new arraylist();
arraylistnop3 = new arraylist();
arraylistdipaino = new arraylist();
// 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 進行牌面的轉換
// 建立三個玩家牌面集合 以及底牌牌面集合
arraylistplayer1 = new arraylist();
arraylistplayer2 = new arraylist();
arraylistplayer3 = new arraylist();
arraylistdipai = new arraylist();
// 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);}}
模擬鬥地主洗牌和發牌
分析 a 建立乙個牌盒 b 裝牌 c 洗牌 d 發牌 e 看牌 public class test system.out.println public static void main string args 定義乙個點陣列 string numbers for string c colors ar...
day18 Map集合 模擬鬥地主洗牌和發牌
18.01 集合框架 map集合概述和特點 b map介面和collection介面的不同 18.02 集合框架 map集合的功能概述 b 刪除功能 c 判斷功能 d 獲取功能 e 長度功能 18.03 集合框架 map集合的遍歷之鍵找值 b 案例演示 18.04 集合框架 map集合的遍歷之鍵值對...
集合訓練之鬥地主洗牌發牌實現
2.1 任務功能流程 2.2 造牌功能分析 容器準備 建立集合容器,用於存放撲克牌 hashmappokermap 撲克牌存放容器,key保證唯一性,hashmap便於索引 arraylistpokerlist 撲克牌索引標誌,用於實現隨機取牌 發牌 造牌元素準備 建立陣列,儲存撲克牌組合元素,用於...