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();
	}
}

效果(每次运行都随机生成手牌):


posted @ 2021-08-03 21:57  zhuangzhongxu  阅读(34)  评论(0)    收藏  举报