大数据之JAVA基础(十七):集合--模拟斗地主洗牌和发牌

一、案例介绍
按照斗地主的规则,完成洗牌发牌的动作。
 
具体规则:
1. 组装54张扑克牌
2. 将54张牌顺序打乱
3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。
4. 查看三人各自手中的牌(按照牌的大小排序)、底牌
  •  手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3

二、案例需求分析
  • 准备一副扑克牌,使用Map,完成数字与字符串的映射
  • 洗牌和发牌,操作的都是Map集合的键
  • 3张底牌放在一个ArrayList
  • 发牌就是发数字
  • 看牌:就是遍历集合,查询键值对

三、实现代码步骤
  • 首先修改eclips的默认编码为UTF-8


  • 代码展示
package stu.demo1;

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

/** 
 * @author  Mr.GE 
 * @date 创建时间:2018-4-2 下午7:09:22 
 * @version 1.0 
 * @parameter  
 * @since  
 * @return  
 */
public class PokerCards {
	
	public static void main(String[] args) {
		
		//准备花色
		ArrayList color = new ArrayList();
		color.add("♠");
		color.add("♥");
		color.add("♣");
		color.add("♦");
		
		//准备数字
		ArrayList number = new ArrayList();		
		Collections.addAll(number,"3","4","5","6","7","8","9","10","J","Q","K","A","2");
		
		//准备扑克牌序号
		//ArrayList 
		
		//准备扑克牌
		LinkedHashMap  poker = new LinkedHashMap();
		
		int index = 0;
		
		for (String num : number) {
			
			for (String cor : color) {				
				poker.put(index++, cor+num);
			}
		}
		
		//增加大小王
		poker.put(index++, "小王");
		poker.put(index++, "大王");
	
		//数牌
		Set str = poker.keySet();
		
		for (Integer integer : str) {
			System.out.println(integer+poker.get(integer) );
		}
		
		//洗牌
		ArrayList array = new ArrayList();
		for (int i = 0; i < 54; i++) {
			array.add(i);
		}
		
		Collections.shuffle(array);
		
		//准备玩家
		ArrayList player1 = new ArrayList();
		ArrayList player2 = new ArrayList();
		ArrayList player3 = new ArrayList();
		ArrayList dipai = new ArrayList();
		
		//发牌
		for (int i = 0; i < array.size(); i++) {
			if(i>50)
			{
				dipai.add(poker.get(array.get(i)));
			}
			else 
			{
				if(i % 3 == 0)
				{
					player1.add(poker.get(array.get(i)));
				}
				else if(i % 3 == 1)
				{
					player2.add(poker.get(array.get(i)));
				}
				else if(i % 3 == 2)
				{
					player3.add(poker.get(array.get(i)));
				}
			}
			
		}
		
		//看牌
		System.out.print("底牌");
		for (String string : dipai) {
			System.out.print(string);
		}
		System.out.println();
		System.out.println("玩家1");
		for (String string : player1) {
			System.out.print(string);
		}
		System.out.println();
		System.out.println("玩家2");
		for (String string : player2) {
			System.out.print(string);
		}
		System.out.println();
		System.out.println("玩家3");
		for (String string : player3) {
			System.out.print(string);
		}
		System.out.println();
		
		
	}

}









全文完!





你可能感兴趣的:(大数据)