問題
- 模擬鬥地主洗牌發牌和看牌
- 思路:
- 先構造一副撲克包括大小王
- 使用Collections.shuffle()實現洗牌
- 實現發牌利用Arraylist.add()
- 實現看牌功能
代碼
import java.util.ArrayList;
import java.util.Collections;
//模擬鬥地主洗牌發牌
public class MyTest05 {
public static void main(String[] args){
// 組成puke
ArrayList<String> pukers = new ArrayList<>();
String[] colours={"♠","♦","♣","♥"};
String[] nums={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
for (String colour:colours){
for (String num:nums){
pukers.add(colour.concat(num));
}
}
pukers.add("★");
pukers.add("☆");
System.out.println(pukers.toString());
// 洗牌
Collections.shuffle(pukers);
// Collections.shuffle(pukers);
// 發牌
ArrayList<String> 大頭 = new ArrayList<>();
ArrayList<String> 老王 = new ArrayList<>();
ArrayList<String> 小王 = new ArrayList<>();
ArrayList<String> 底牌 = new ArrayList<>();
for (int i=0;i<pukers.size();i++) {
if (i<pukers.size()-3) {
if (i % 3 == 0) {
大頭.add(pukers.get(i));
} else if (i % 3 == 1) {
老王.add(pukers.get(i));
} else if (i % 3 == 2) {
小王.add(pukers.get(i));
}
}else {
底牌.add(pukers.get(i));
}
}
// 看牌
lookPuker("大頭",大頭);
lookPuker("老王",老王);
lookPuker("小王",小王);
lookPuker("底牌",底牌);
// 看牌方法
}
private static void lookPuker(String name,ArrayList<String> lists){
System.out.print(name+":\n");
for (String list:lists){
System.out.print(list+" ");
}
System.out.println();
}
}
結果輸出:
大頭:
♥Q ♦A ♠5 ♣3 ♥3 ♦Q ★ ♦K ♥9 ♠Q ♦6 ♦8 ♥7 ♠10 ☆ ♦7 ♥8
老王:
♦5 ♣Q ♣10 ♠2 ♥5 ♥4 ♠J ♠K ♠6 ♦3 ♠A ♦4 ♣2 ♣4 ♣A ♦2 ♥A
小王:
♣9 ♣7 ♠3 ♥6 ♣J ♣8 ♦9 ♣5 ♠8 ♥10 ♦10 ♣K ♥2 ♦J ♥J ♠9 ♥K
底牌:
♠4 ♣6 ♠7