其他分享
首页 > 其他分享> > 扑克牌发牌3人或4人

扑克牌发牌3人或4人

作者:互联网

写的有点麻烦,不知道怎么优化
4人无大小王


	public List<String> pai(){
		List<String> list=new ArrayList<String>();
		List<String> color=new ArrayList<String>();
		List<String> size=new ArrayList<String>();
		color.add("♥");
		color.add("♠");
		color.add("♦");
		color.add("♣");
		size.add("2");
		size.add("3");
		size.add("4");
		size.add("5");
		size.add("6");
		size.add("7");
		size.add("8");
		size.add("9");
		size.add("10");
		size.add("J");
		size.add("Q");
		size.add("K");
		size.add("A");
		for (int i = 0; i < color.size(); i++) {
			for(int j=0;j<size.size();j++){
				list.add(color.get(i)+size.get(j));
			}
		}
		return list;
	}
	public static void main(String[] args){
		PukePai pai=new PukePai();
		List<String> list=pai.pai();
		List<String> a=new ArrayList<String>();
		List<String> b=new ArrayList<String>();
		List<String> c=new ArrayList<String>();
		List<String> d=new ArrayList<String>();
		int sum=list.size();
		int num=0;
		while(sum>0){
			Random random=new Random();
			
			num=random.nextInt(sum);
			a.add(list.get(num));
			list.remove(num);
			sum--;
			
			num=random.nextInt(sum);
			b.add(list.get(num));
			list.remove(num);
			sum--;
			
			num=random.nextInt(sum);
			c.add(list.get(num));
			list.remove(num);
			sum--;
			
			num=random.nextInt(sum);
			d.add(list.get(num));
			list.remove(num);
			sum--;
		}
		for(String A:a){
			System.out.print(A+" ");
		}
		System.out.println();
		for(String B:b){
			System.out.print(B+" ");
		}
		System.out.println();
		for(String C:c){
			System.out.print(C+" ");
		}
		System.out.println();
		for(String D:d){
			System.out.print(D+" ");
		}
	}
		

输出结果:

♥9 ♣7 ♠8 ♥6 ♥5 ♠K ♠7 ♦4 ♠3 ♥7 ♥2 ♣6 ♦10 
♣9 ♠A ♠2 ♦J ♣A ♦5 ♣8 ♥10 ♦2 ♠J ♦9 ♦3 ♣2 
♥A ♣K ♦8 ♣J ♦6 ♣Q ♠Q ♥K ♣4 ♥J ♥Q ♥4 ♥8 
♣3 ♦Q ♣5 ♠9 ♦K ♠10 ♥3 ♣10 ♠5 ♦7 ♠6 ♠4 ♦A 
♣8 ♦4 ♣5 ♣2 ♦9 ♥7 ♦A ♣9 ♣4 ♥Q ♠8 ♥6 ♠K 
♦6 ♦J ♦Q ♦2 ♣6 ♣Q ♥4 ♠A ♠10 ♠3 ♣10 ♥10 ♥9 
♦7 ♦8 ♦K ♠6 ♥2 ♠Q ♠5 ♦5 ♥8 ♥3 ♣J ♣A ♦3 
♠7 ♥5 ♠J ♣7 ♠2 ♣3 ♦10 ♥K ♠9 ♠4 ♥J ♣K ♥A 
♣9 ♣4 ♣10 ♦8 ♠7 ♦9 ♣Q ♠9 ♠2 ♦Q ♥2 ♣A ♥7 
♥10 ♣6 ♦2 ♥4 ♠8 ♥3 ♠K ♣2 ♠Q ♥6 ♥8 ♠5 ♠10 
♥J ♦J ♦7 ♦5 ♠3 ♣7 ♦A ♥K ♠6 ♦10 ♣J ♣3 ♦3 
♠A ♥Q ♣5 ♣8 ♦4 ♥A ♠J ♥9 ♥5 ♠4 ♦K ♣K ♦6 

三人:有大小王
在上面的pai()的for循环外面加上

	list.add("大王");
		list.add("小王");
		return list;

main里面,改一下循环体

while(sum>3){
			Random random=new Random();
			
			num=random.nextInt(sum);
			a.add(list.get(num));
			list.remove(num);
			sum--;
			
			num=random.nextInt(sum);
			b.add(list.get(num));
			list.remove(num);
			sum--;
			
			num=random.nextInt(sum);
			c.add(list.get(num));
			list.remove(num);
			sum--;
			
		}

输出

♥10 ♣2 ♣A ♣10 ♦6 ♠Q ♥8 ♠A ♣5 ♦8 ♦A ♥3 ♥K ♠J ♠7 ♥A ♠5 
♥5 ♦10 ♠4 ♦7 ♣8 ♠3 ♠10 ♦J ♠6 ♣6 ♣K ♦3 ♥2 ♠K ♦K ♦2 ♥6 
♦Q ♣J ♠9 ♦4 ♦5 ♥Q ♣3 ♣4 ♦9 大王 ♥4 ♣7 ♣Q ♥J 小王 ♠8 ♣9 
底牌:♥7 ♥9 ♠2 
♥4 ♣Q ♦4 ♠K ♥10 ♥2 ♦Q ♥A ♥3 ♥J ♠10 ♦9 ♣4 ♠6 ♣5 ♠5 ♠7 
♠3 ♠2 ♣9 ♥Q ♥K ♥6 ♠9 ♠A ♣J ♦J ♥9 ♣10 ♦10 ♣A ♦2 ♣6 ♠4 
♠Q ♣3 ♣2 ♥7 ♦K ♠8 ♦A ♦3 小王 ♣K ♦5 ♦6 ♦7 ♥8 ♥5 ♣8 ♣7 
底牌:♠J ♦8 大王 

标签:10,扑克牌,sum,list,add,num,发牌,size
来源: https://www.cnblogs.com/whtjyt/p/16317663.html