實現思路步驟如下:
準備牌:arrylist 集合儲存,for 迴圈遍歷實現
洗牌:使用 collections 的shuffle(arrybox);方法重新整理集合中的順序
發牌:使用 for 迴圈遍歷 arrylist 中的 51 張牌,然後用索引值對 3 取餘,餘數為 0,1,2 然後來隨機分配牌。
看牌:直接輸出集合
public
class
main
; string[
] arr2 =
; list
arrybox =
newarraylist
<
>()
;for
(int i =
0; i < arr1.length; i++)}
arrybox.
add(
"大王");
arrybox.
add(
"小王");
// 3個人鬥地主,分別為 zhangsan、lisi、wangwu
list
zhangsan =
newarraylist
<
>()
; list
lisi =
newarraylist
<
>()
; list
wangwu =
newarraylist
<
>()
;// 2. 洗牌
collections.
shuffle
(arrybox)
;// 3. 發牌
for(
int i =
0; i < arrybox.
size()
-3; i++
)else
if(i %3==
1)else
if(i %3==
2)}// 4. 看牌
pushboss()
; system.out.
println
("張三:"
+ zhangsan)
; system.out.
println
("李四:"
+ lisi)
; system.out.
println
("王五:"
+ wangwu)
; system.out.
print
("底牌:[");
for(
int i =
1; i <
4; i++)}
system.out.
print
("]");
}/** 隨機地主 */
public
static
void
pushboss()
}
執行上面程式,輸出結果為:
此局地主是:李四
張三: [梅花10
, 方片2
, 方片k, 方片j, 方片5
, 黑桃6
, 黑桃10
, 紅桃3
, 梅花3
, 黑桃2
, 梅花8
, 黑桃a, 紅桃j, 梅花9
, 紅桃k, 方片9
, 梅花q]
李四: [紅桃4
, 黑桃8
, 方片8
, 方片3
, 紅桃2
, 紅桃6
, 紅桃5
, 黑桃3
, 黑桃4
, 梅花7
, 方片q, 小王, 紅桃8
, 黑桃k, 方片6
, 梅花a, 黑桃7
]王五: [方片4
, 梅花4
, 方片7
, 黑桃5
, 黑桃9
, 紅桃10
, 梅花k, 方片a, 紅桃q, 黑桃j, 梅花2
, 大王, 方片10
, 紅桃a, 梅花j, 梅花5
, 紅桃7
]底牌:[梅花6
,紅桃9
,黑桃q]
可通過 map 集合將三名玩家的牌按大小排序,實現**如下:
public
class
main2
; string[
] arr2 =
;// 定義map集合用來存放索引和牌
hashmap
pokermap =
newhashmap
<
>()
;// 定義list集合儲存索引(索引為0-53)
list
indexlist =
newarraylist
<
>()
;// 定義索引值變數
int index =0;
// 將撲克牌與索引建立對應關係放入map和list集合中
for(string num : arr2)
} pokermap.
put(index,
"小王");
indexlist.
add(index++);
pokermap.
put(index,
"大王");
indexlist.
add(index)
;// 定義玩家
treeset
zhangsan =
newtreeset
<
>()
; treeset
lisi =
newtreeset
<
>()
; treeset
wangwu =
newtreeset
<
>()
; treeset
buttoms =
newtreeset
<
>()
;// 2. 洗牌
collections.
shuffle
(indexlist)
;// 3. 發牌
for(
int i =
0; i < indexlist.
size()
; i++
)else
if(i %3==
0)else
if(i %3==
1)else
}// 4. 看牌
pushboss()
;check
(pokermap, zhangsan,
"張三");
check
(pokermap, lisi,
"李四");
check
(pokermap, wangwu,
"王五");
check
(pokermap, buttoms,
"底牌");
}/**
* 看牌
** @param pokermap
* @param player 玩家撲克牌對應索引集合
* @param name 玩家暱稱
*/public
static
void
check
(hashmap
pokermap, treeset
player, string name)
system.out.
println
("]");
}/** 隨機地主 */
public
static
void
pushboss()
}
執行上面程式,輸出結果為:
此局地主是:張三
張三:[方片a 紅桃2 方片2 黑桃4 紅桃4 梅花4 紅桃6 方片6 梅花6 黑桃7 紅桃8 黑桃9 黑桃10 方片j 方片q 黑桃k 紅桃k ]
李四:[梅花2 黑桃3 紅桃3 方片3 梅花3 紅桃5 方片5 紅桃7 梅花8 紅桃9 梅花9 紅桃10 梅花10 黑桃q 梅花q 梅花k 小王 ]
王五:[黑桃a 紅桃a 黑桃2 方片4 黑桃5 黑桃6 方片7 黑桃8 方片8 方片9 方片10 黑桃j 紅桃j 梅花j 紅桃q 方片k 大王 ]
底牌:[梅花a 梅花5 梅花7
]
Jmeter公司專案例項(一) 專案介紹
公司的乙個活動,活動結束後可以使用積分兌換實物禮品,需要測試大量使用者同時兌換時獎品的發放情況,獎品僅10份,可能會出現幾百人同時兌換獎品的情況。1 獲取角色資訊url testapi.x.com account members by me method post 請求引數 access token...
openlayers 學習筆記(五)專案例項
開始用geoserver openlayers 做乙個例項專案。需要說明的是由於本人是規劃部門的資訊化從業者,所以例項是規劃管理方面的。1 專案名稱 用地許可地圖發布工具 2 簡單描述 將用地許可基本資訊與示意位置在定位圖上發布出來,並提供查詢功能。以下開始明確有關細節內容。3 許可基本資訊包括名稱...
Vuex 的專案例項1 專案初始化
npm install vuex axios ant design vue s 當然也可以使用視覺化面板的依賴安裝。ant design vue 是ui元件庫。main.js 檔案 1.匯入 ant destign vue 元件庫 import antd from ant design vue 2....