A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 男人你得有范 中级黑马   /  2016-4-6 09:23  /  332 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.heima.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;

public class Demo3_Collections
{
        public static void main(String[] args)
        {
                // 模拟玩扑克,斗地主
                // 先造一副牌
                // 数字
                //斗地主中3最小,从小到大排序
                String[] num =
                { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
                // 颜色
                String[] color =
                { "红桃", "黑桃", "方片", "梅花" };
                // 定义扑克的索引
                ArrayList<Integer> list = new ArrayList<Integer>();
                //存储扑克牌
                HashMap<Integer, String> puke = new HashMap<>();

                int index = 0;
                for (String s1 : num)
                {
                        for (String s2 : color)
                        {
                                puke.put(index, s2.concat(s1));
                                list.add(index);
                                index++;
                        }
                }
                // 大王和小王
                puke.put(index, "大王");
                index++;
                puke.put(index, "小王");
                // System.out.println(puke.size());
                // 洗牌
                Collections.shuffle(list);
                System.out.println(list);
                // 发牌
                TreeSet<Integer> a = new TreeSet<>();
                TreeSet<Integer> b = new TreeSet<>();
                TreeSet<Integer> me = new TreeSet<>();
                TreeSet<Integer> dipai = new TreeSet<>();
                for (int i = 0; i < list.size(); i++)
                {
                        if (i >= list.size() - 3)
                        {
                                dipai.add(list.get(i));
                        } else if (i % 3 == 0)
                        {
                                a.add(list.get(i));
                        } else if (i % 3 == 1)
                        {
                                b.add(list.get(i));
                        } else
                        {
                                me.add(list.get(i));
                        }
                }
                System.out.println(a);
                System.out.println(b);
                System.out.println(me);
                System.out.println(dipai);
                // 发牌完毕看牌
                lookPuke(puke, a, "a");
                lookPuke(puke, b, "b");
                lookPuke(puke, me, "me");
                lookPuke(puke, dipai, "dipai");
        }

        public static void lookPuke(HashMap<Integer, String> hm,
                        TreeSet<Integer> ts, String name)
        {
                System.out.print(name + ":");
                for (Integer i : ts)
                {
                        System.out.print(hm.get(i) + " ");
                }
                System.out.println();
        }

}

2 个回复

倒序浏览
//我的天哪,竟然把大王和小王漏了,哈哈哈,加上
// 大王和小王
puke.put(index, "大王");
list.add(index);
index++;
puke.put(index, "小王");
list.add(index);
回复 使用道具 举报
//我的天哪,竟然把大王和小王漏了,哈哈哈,加上
// 大王和小王
puke.put(index, "大王");
list.add(index);
index++;
puke.put(index, "小王");
list.add(index);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马