- 思路:
- 1)創建HashMap集合
創建ArrayList集合,來存儲編號
2)裝牌:給HashMap中添加編號,以及對應的牌(點色數組和花色數組遍歷之後的拼接),同時將編號添加ArrayList集合中
3)洗牌:洗的是編號
4)發牌:(發的也是編號,爲了保證牌是有序的,所有應該用TreeSet集合)
5)看牌:(遍歷TreeSet集合獲取到對應的編號,拿對應的編號在HashMap中找編號對應的牌)
- 代碼
:
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class PokerDemo2 {
public static void main(String[] args) {
HashMap<Integer, String> hm = new HashMap<Integer, String>();
ArrayList<Integer> array = new ArrayList<Integer>();
String[] colors = {"♠","♥","♣","♦"};
String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
int index = 0;
for(String number : numbers){
for(String color : colors){
String poker = color.concat(number);
hm.put(index, poker);
array.add(index);
index++;
}
}
hm.put(index, "小王");
array.add(index);
index++;
hm.put(index, "大王");
array.add(index);
Collections.shuffle(array);
TreeSet<Integer> player1 = new TreeSet<Integer>();
TreeSet<Integer> player2 = new TreeSet<Integer>();
TreeSet<Integer> player3 = new TreeSet<Integer>();
TreeSet<Integer> diPai = new TreeSet<Integer>();
for(int x = 0 ; x < array.size() ; x ++){
if(x>= array.size() -3){
diPai.add(array.get(x)) ;
}else if(x % 3 == 0){
player1.add(array.get(x)) ;
}else if(x % 3 ==1){
player2.add(array.get(x)) ;
}else if(x % 3 ==2){
player3.add(array.get(x)) ;
}
}
lookPoker("玩家1", player1, hm);
lookPoker("玩家2", player2, hm);
lookPoker("玩家3", player3, hm);
lookPoker("底牌", diPai, hm);
}
public static void lookPoker(String name,TreeSet<Integer> ts,
HashMap<Integer, String> hm){
System.out.print(name+"的牌是:");
for(Integer key : ts){
String s = hm.get(key) ;
System.out.print(s+" ");
}
System.out.println();
}
}
- 結果