1、建立一個HashMap 集合 在Map中存儲鍵值對,
鍵是索引值,值是花色和點數組成的字元串,索引用來指定派,利用索引進行洗牌操作
2、建立一個ArrayList,用來存放牌的編号
3、建立花色數組和點數數組
4、從 1 編号 開始向 HashMap 中存放相應的編号和對應的牌,同時往 ArrayList 中存儲編号
5、洗牌(洗的 是編号)
6、發牌(發的是編号,為了保證編号時有序的,應該建立一個TreeSet集合)
7、看牌(周遊 TreeSet,擷取編号,然後從HashMap中找到對應的牌)
package poke;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Demo01 {
public static void main(String[] args) {
//建立一個 ArrayList 用于存放 撲克牌的序号
ArrayList<Integer> pokerNum = new ArrayList<>();
//建立一個HashMap 用于存放撲克牌
HashMap<Integer, String> poker = new HashMap<>();
//建立一個 ArrayList 用于存放底牌
ArrayList<Integer> dipai = new ArrayList<>();
Person p1 = new Person("小紅");
Person p2 = new Person("小明");
Person p3 = new Person("小白");
String[] colors = {"♠","♥","♣","♦"};
String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
int count = 1;
for(String number : numbers) {
for(String color : colors) {
poker.put(count, color.concat(number));
pokerNum.add(count);
count++;
}
}
poker.put(count, "小王");
pokerNum.add(count++);
poker.put(count, "大王");
pokerNum.add(count++);
//System.out.println(poker);
//洗牌
Collections.shuffle(pokerNum);
System.out.println(pokerNum);
//發牌
for(int i = 0 ;i<pokerNum.size();i++) {
if(i >=pokerNum.size() -3) {
dipai.add(pokerNum.get(i));
}else {
if(i % 3 == 0) {
p1.setPokers(pokerNum.get(i));
}
if(i % 3 == 1) {
p2.setPokers(pokerNum.get(i));
}
if (i % 3 == 2 ) {
p3.setPokers(pokerNum.get(i));
}
}
}
//System.out.println(p1);
lookPokers(p1, poker);
lookPokers(p2, poker);
lookPokers(p3, poker);
lookDiPai(dipai, poker);
}
//看牌
public static void lookPokers(Person person,Map<Integer, String> map) {
int count = person.getPokers().size();
System.out.println(person.getName() + "的牌是:" + person.getName() + "共有" + count + "張牌" );
for(int i = 0;i<count;i++) {
System.out.print(map.get(person.getPokers().get(i)) + " ");
}
System.out.println();
}
public static void lookDiPai(List<Integer> list,Map<Integer, String> map) {
System.out.println("底牌是:");
for(int i = 0;i<list.size();i++) {
System.out.print(map.get(list.get(i)) + " ");
}
System.out.println();
}
}