模拟斗地主洗牌,发牌

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;

public class Test2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	//1.创建集合对象(买牌)
     String[] num ={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
     String[] color= {"红桃","黑桃","方片","梅花"};
     HashMap<Integer, String> hm = new HashMap<>();   //存储索引和扑克牌
     ArrayList<Integer> list = new ArrayList<>();    //存储索引
     int index=0;
     
     //拼接扑克牌并存储在hm中
     for(String s1 : num) {                         //获取数字
    	 for(String s2 : color) {                  //获取颜色
    		 hm.put(index,s2.concat(s1));
    		 list.add(index);                     //将索引0-51添加到list集合中
    		 index++;
    	 }                   
     }
     //将大小王添加到双列集合中
     hm.put(index, "小王");
     list.add(index);                          //将索引52添加到list集合中
     index++;
     hm.put(index, "大王");
     list.add(index);                        //将索引53添加到list集合中
     
     //2.洗牌
     Collections.shuffle(list);
     //3.发牌
     TreeSet<Integer>  gaojin = new TreeSet<>();
     TreeSet<Integer>  longwu = new TreeSet<>();
     TreeSet<Integer>  me = new TreeSet<>();
     TreeSet<Integer>  dipai= new TreeSet<>();
     for(int i = 0; i < list.size(); i++ ) {
    	 if(i >= list.size() - 3) {
    		 dipai.add(list.get(i));    //将三张底牌存储到集合中
    	 } else if (i % 3 ==0) {        
    			 gaojin.add(list.get(i));//高进的牌
    		 } else if( i % 3== 1 ) {
    			 longwu.add(list.get(i));//龙五的牌
    	 } else {
    		 me.add(list.get(i)); 
    	 }
	  }
     
    // 4.看牌
     lookPoker(hm, gaojin, "高进");
     lookPoker(hm, longwu, "龙五");
     lookPoker(hm, me, "我");
     lookPoker(hm, dipai, "底牌");
	}
	
	public static void lookPoker(HashMap<Integer,String> hm,TreeSet<Integer> ts, String name) {
		System.out.print(name + "的牌是:");
		for(Integer i : ts) {        //i代表双集合的每一个键
			System.out.print(hm.get(i) + " ");
		}    
		System.out.println();
	}
 }

猜你喜欢

转载自blog.csdn.net/weixin_42371928/article/details/88697532
今日推荐