java_day24
目标:Java web开发
“模拟斗地主”案例:
模拟洗牌,发牌和看牌
特点:随机洗牌,精简看牌,发完牌自动排序;不要998,不要98,下个Eclipse免费带回家!
package demo.poker.fight_whth_landlords;
import java.util.*;
public class begin {
public static void main(String[] args) {
ArrayList<Integer> array=new ArrayList<Integer>();
HashMap<Integer,String> hm=new HashMap<Integer,String>();
String[] colors= {"♠","♥","♣","♦"};
String[] nums= {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
int idx=0;
for(String num :nums) {
for(String color :colors) {
array.add(++idx);
hm.put(idx,color+num);
}
}
array.add(++idx);
hm.put(idx,"小王");
array.add(++idx);
hm.put(idx,"大王");
Collections.shuffle(array);
TreeSet<Integer> rwSet=new TreeSet<Integer>();//锐雯
TreeSet<Integer> dxSet=new TreeSet<Integer>();//张大仙
TreeSet<Integer> jrSet=new TreeSet<Integer>();//九日
TreeSet<Integer> dpSet=new TreeSet<Integer>();//三张底牌
for(int i=0;i<51;i++) {
if(i%3==0) {
rwSet.add(array.get(i));
}
else if(i%3==1) {
dxSet.add(array.get(i));
}
else {
jrSet.add(array.get(i));
}
}
for(int i=51;i<54;i++) dpSet.add(array.get(i));
show_poker("瑞雯的牌:",rwSet,hm);
show_poker("大仙的牌:",dxSet,hm);
show_poker("九日的牌:",jrSet,hm);
show_poker("底牌:",dpSet,hm);
}
public static void show_poker(String name,TreeSet<Integer> set,HashMap<Integer,String> hm) {
System.out.print(name);
for(Integer idx : set) {
System.out.print(hm.get(idx)+" ");
}
System.out.println();
}
}
效果(每次运行都随机生成手牌):




浙公网安备 33010602011771号