要求:
1.模拟牌
2. 4中花色,13张数字,大小王
用到集合:HashMap,ArrayList
package DouDiZhu;
import java.util.*;
public class DouDiZhu1 {
public static void main(String[] args){
/*
*组装牌
*/
HashMap<Integer,String> pai = new HashMap<>();
ArrayList<Integer> paiIndex=new ArrayList<>();
//字符串数组 不可变
String[] hua={"红桃","黑桃","梅花","方块"};
String[] nums={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
//字符串数组转换为集合
List<String> colors = Arrays.asList(hua);
List<String> numbers = Arrays.asList(nums);
//先单独处理大小王
int index=0;
pai.put(index,"大王");
paiIndex.add(index);
index++;
pai.put(index,"小王");
paiIndex.add(index);
index++;
for (String number:numbers){
for (String color:colors){
pai.put(index,color+number);
paiIndex.add(index);
index++;
}
}
//洗牌
Collections.shuffle(paiIndex);
//定义玩家集合 三玩家一底牌
ArrayList<Integer> person1 = new ArrayList<>();
ArrayList<Integer> person2 = new ArrayList<>();
ArrayList<Integer> person3 = new ArrayList<>();
ArrayList<Integer> diPai = new ArrayList<>();
//发牌
for (int i=0;i<paiIndex.size();i++){
Integer in=paiIndex.get(i);
if(i>=51){
diPai.add(in);
}else if(i%3==0){
person1.add(in);
}else if(i%3==1){
person2.add(in);
}else if(i%3==2){
person3.add(in);
}
}
//排序
Collections.sort(person1);
Collections.sort(person2);
Collections.sort(person3);
lookPai("张同学",pai,person1);
lookPai("魏同学",pai,person2);
lookPai("丁同学",pai,person3);
}
public static void lookPai(String name,
HashMap<Integer,String>pai,
ArrayList<Integer> index){
System.out.print(name+":");
for (Integer key:index){
String res = pai.get(key);
System.out.print(res+" ");
}
System.out.println();
System.out.println();
}
}