斗地主模拟发牌器

package com.oracle.dome04;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Set;

public class Playpoker {
	public static void main(String[] args) {
		//创建集合  牌盒(Map创建,因为后面需要索引排序)   花色     数字
		LinkedHashMap<Integer, String> boxMap=new LinkedHashMap<>();
		ArrayList<String> color=new ArrayList<>();
		ArrayList<String> number=new ArrayList<>();
		
		//添加数字  和  花色  到集合
		Collections.addAll(number, "2","A","K","Q","J");
		for(int i=10;i>=3;i--){
			number.add(i+"");
		}
		
		Collections.addAll(color, "♦","♣","♥","♠");
		
		//组合牌型  并且把大小王添加进去
		boxMap.put(0, "大王");
		boxMap.put(1, "小王");
		int cound=2;
		//数字在外层循环  因为后期需要给每个数排序,所以他们的索引不能乱
		for(String n:number){
			for(String c:color){
				//牌型组合出来
				String card=c + n;
				//把牌存到盒子中
				boxMap.put(cound++, card);
			}
		}
		System.out.println(boxMap);
		
		//创建三个玩家编号和一个底牌编号  存储牌的编号
		ArrayList<Integer> plOn1=new ArrayList<>();
		ArrayList<Integer> plOn2=new ArrayList<>();
		ArrayList<Integer> plOn3=new ArrayList<>();
		ArrayList<Integer> diOn=new ArrayList<>();
		
		//获取所有键
		Set<Integer> keySet = boxMap.keySet();
		//把键转成List集合
		ArrayList<Integer> arr=new ArrayList<>();
		arr.addAll(keySet);
//		System.out.println(arr);
		Collections.shuffle(arr);
		
		//把集合的键发给玩家和底牌
		for(int i=0;i<arr.size();i++){
			//后三张底牌
			if(i>=51){
				diOn.add(arr.get(i));
			}else if(i%3==0){
				plOn1.add(arr.get(i));
			}else if(i%3==1){
				plOn2.add(arr.get(i));
			}else{
				plOn3.add(arr.get(i));
			}
		}
		
		//排序玩家所得的牌
		Collections.sort(plOn1);
		Collections.sort(plOn2);
		Collections.sort(plOn3);
		Collections.sort(diOn);
		
		//获取每个玩家得到的键的键值
		//创建玩家
		ArrayList<String> p1=new ArrayList<>();
		ArrayList<String> p2=new ArrayList<>();
		ArrayList<String> p3=new ArrayList<>();
		ArrayList<String> dipai=new ArrayList<>();
		
		//转型获得牌型
		for(Integer i1:plOn1){
			String string = boxMap.get(i1);
		    p1.add(string);
		}
		
		
		for(Integer i2:plOn2){
			String string = boxMap.get(i2);
		    p2.add(string);
		}
		
		for(Integer i3:plOn3){
			String string = boxMap.get(i3);
		    p3.add(string);
		}
		
		for(Integer i4:diOn){
			String string = boxMap.get(i4);
		    dipai.add(string);
		}
		
		//查看牌型
		System.out.println("张飞的牌型:"+p1);
		System.out.println("刘备的牌型:"+p2);
		System.out.println("关羽的牌型:"+p3);
		System.out.println("底牌的牌型:"+dipai);
		
	}

}

猜你喜欢

转载自blog.csdn.net/qq_40398751/article/details/82118649
今日推荐