java--实现简单斗地主

/**
	 * 模拟实现斗地主发牌过程的实现步骤
	 * 1.准备一副扑克牌
	 * 	a.定义一个ArrayList集合用来存放54张扑克
	 * 	b.定义一个String类型的数组用来构建花色[♠,♥,♦,♣]
	 * 	c.定义一个String类型的数组用来保存扑克牌具体的值[3,4,5,6,7,8,9,10,J,Q,K,A,2]
	 * 	d.把大小王添加到ArrayList集合中
	 * 
	 * 2.洗牌
	 * 	通过集合的一个操作类Collections提供的一个相关方法(shuffle)实现洗牌的操作
	 * 	(Collections是类,Collection是接口)
	 * 
	 * 3.发牌的过程
	 * 	a.定义三个玩家和一个接收底盘的容器
	 * 	b.遍历ArrayList集合中,如何实现每个玩家轮流拿牌
	 * 	  当下标大于等于51,剩下的这三张牌是底牌
	 * 	  三个人可以使用下标对3求余	0%3=0 分给玩家1,1%3=1 分给玩家2,2%3=2 分给玩家3
	 * 
	 * 4.看牌
	 * 	所有人明牌
	 * 
	 *
	 */

	 public static void main(String[] args) {
		
		//1.准备一副扑克牌
		List<String> poker = new ArrayList<String>();
		
		String[] colors = {"♠","♥","♦","♣"};
		String[] values = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
		
		for(int i=0; i<colors.length; i++){
			for(int j=0; j<values.length; j++){
				poker.add(colors[i]+values[j]);
			}
		}
		
		poker.add("大王");
		poker.add("小王");
		
		//扑克牌准备就绪
//		for(String l : poker){
//			System.out.println(l);
//		}
		
		//2.洗牌
		Collections.shuffle(poker);
		
		//洗牌完毕
//		for(String l : poker){
//			System.out.println(l);
//		}
		
		//3.发牌
		List<String> play01 = new ArrayList<String>();//玩家一
		List<String> play02 = new ArrayList<String>();//玩家二
		List<String> play03 = new ArrayList<String>();//玩家三
		List<String> dipai = new ArrayList<String>();//底牌
		
		for(int i=0; i<poker.size(); i++){
			if(i>=51){
				dipai.add(poker.get(i));
			}
			else if(i%3 == 0){
				play01.add(poker.get(i));
			}
			else if(i%3 == 1){
				play02.add(poker.get(i));
			}
			else if(i%3 == 2){
				play03.add(poker.get(i));
			}
		}
		
		//全体明牌
		System.out.println("玩家一:");
		for(String p01 : play01){
			System.out.print(p01+" ");
		}
		System.out.println("\n"+"玩家二:");
		for(String p02 : play02){
			System.out.print(p02+" ");
		}
		System.out.println("\n"+"玩家三:");
		for(String p03 : play03){
			System.out.print(p03+" ");
		}
		
		System.out.println("\n"+"底牌:");
		for(String dp : dipai){
			System.out.print(dp+" ");
		}
		
		//叫地主了(玩家一是地主)
		play01.addAll(dipai);
		System.out.println("\n"+"玩家一叫地主了:");
		for(String p01 : play01){
			System.out.print(p01+" ");
		}
		
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WGS.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值