模拟斗地主洗牌和发牌

分析:

A:创建一个牌盒
B:装牌
C:洗牌
D:发牌
E:看牌
 */
public class test {
	//写一个方法看牌
	public static void lookup(String name,ArrayList<String> s){
		System.out.print(name+"的牌是:");
		for(String ss:s){
			System.out.print(ss+" ");
		}
		System.out.println();
	}
	public static void main(String[] args) {
		//创建一个牌盒
		ArrayList<String> array=new ArrayList<String>();
		
		//装牌
		//黑桃A,...,黑桃K
		//红桃A,...
		//梅花A,...
		//方块A,...
		//定义一个花色数组
		String[] colors={"♠","♥","♣","◆"};
		//定义一个点数组
		String[] numbers={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
		for(String c:colors){
			for(String n:numbers){
				array.add(c.concat(n));
			}
		}
		array.add("大王");
		array.add("小王");
		
		//洗牌
		Collections.shuffle(array);
		//发牌,斗地主是3个人
		ArrayList<String> player1=new ArrayList<String>();
		ArrayList<String> player2=new ArrayList<String>();
		ArrayList<String> player3=new ArrayList<String>();
		ArrayList<String> dipai=new ArrayList<String>();//需要留3张底牌
		for(int x=0;x<array.size();x++){
			if(x>=array.size()-3){
				dipai.add(array.get(x));
			}else if(x%3==0){
				player1.add(array.get(x));
			}else if(x%3==1){
				player2.add(array.get(x));
			}else if(x%3==2){
				player3.add(array.get(x));
			}
		}
		
		//看牌
		lookup("张三",player1);
		lookup("李四",player2);
		lookup("王五",player3);
		lookup("底牌",dipai);
	}
	
}

结果:

张三的牌是:♣9 ♠J ♣10 ♥2 ♥7 ♣7 ♠10 ♣K ◆K ♥5 ◆2 ◆7 ◆J ♥J ◆4 ◆10 ♣3 
李四的牌是:♥6 ♠Q ◆A ♣8 ♥10 ♠A ♠2 ♣4 ◆9 ♣Q ◆3 ◆8 ♥3 ♠4 ♥8 ♠K ♠9 
王五的牌是:♠8 ◆6 ♥9 ♠3 ♥K ♠5 ♠6 大王 ◆Q ♥4 ♠7 ♣5 ♥Q ♣6 ♣A ♣2 ♣J 
底牌的牌是:◆5 ♥A 小王 

发布了188 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Ting1king/article/details/104807384
今日推荐