思路:
-
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();
}
}
结果
-