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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
哈哈,这样发牌冯佳老师会不会气疯了???赌神也该疯了!!!
public class Poker {
        public static void main(String[] args) {
                // 建立Poker存入HashMap 中 key 序号  value 牌
                // 洗牌 用suffle
                // 用for循环发牌 %3 分配
                // 建立四个treeset
               
                // 建立看牌方法 分别调用
                String[] num = { "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q",
                                "K", "A", "2" };
                String[] color = { "方片", "梅花", "红桃", "黑桃" };
                int index = 0;
                ArrayList<Integer> a = new ArrayList<>();
                HashMap<Integer, String> hm = new HashMap<>();
                for (int i = 0; i < num.length; i++) {
                        for (int j = 0; j < color.length; j++) {
                                hm.put(index, color[j] + num[i]);
                                a.add(index++);
                        }
                }
                hm.put(52, "小王");
                a.add(52);
                hm.put(53, "大王");
                a.add(53);
                Collections.shuffle(a);
                TreeSet<Integer> gaojin = new TreeSet<>();
                TreeSet<Integer> fengjia = new TreeSet<>();
                TreeSet<Integer> me = new TreeSet<>();
                TreeSet<Integer> lastCard = new TreeSet<>();
                for (int i = 0; i < 51; i++) {
                        if (i % 3 == 0) {
                                gaojin.add(a.get(i));
                                continue;
                        }
                        if (i % 3 == 1) {
                                fengjia.add(a.get(i));
                                continue;
                        }
                        if (i % 3 == 2) {
                                me.add(a.get(i));
                                continue;
                        }
                }
                lastCard.add(a.get(51));
                lastCard.add(a.get(52));
                lastCard.add(a.get(53));
               
                int ii = 7;
                hei(fengjia, me,ii);
        //        hei(gaojin, me,ii);
        //        hei(lastCard, me,ii);

                show(gaojin, hm, "高进");
                show(fengjia, hm, "冯佳");
                show(me, hm, "本人");
                show(lastCard, hm, "底牌");
        }

        private static void hei(TreeSet<Integer> beihei, TreeSet<Integer> heiren , int ii) {
                for (int i = 0; i < ii; i++) {
                        int max = Collections.max(beihei);
                        beihei.remove(max);
                        heiren.add(max);
                        int min = Collections.min(heiren);
                        heiren.remove(min);
                        beihei.add(min);                       
                }
        }

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

}
/*
高进: 方片3 方片4 梅花4 方片5 梅花5 梅花6 红桃6 方片7 梅花7 方片8 梅花8 方片10 黑桃10 方片J 红桃J 梅花K 梅花A
冯佳: 梅花3 红桃3 黑桃3 红桃4 黑桃4 黑桃5 方片6 黑桃6 红桃7 黑桃7 红桃8 黑桃8 方片9 梅花9 红桃9 黑桃9 梅花Q
本人: 梅花10 红桃10 梅花J 黑桃J 方片Q 黑桃Q 方片K 红桃K 黑桃K 红桃A 黑桃A 方片2 梅花2 红桃2 黑桃2 小王 大王
底牌: 红桃5 红桃Q 方片A
*/

点评

城会玩  发表于 2016-7-13 12:14

12 个回复

正序浏览
1158147908 来自手机 中级黑马 2015-12-28 07:05:32
11#
我发牌竟然忘了加大小王,,,怪不得感觉前两张
回复 使用道具 举报
回复 使用道具 举报
mcl0415 中级黑马 2015-12-27 23:05:36
9#
冯佳不水论坛 啊

点评

你咋知道我不水论坛  发表于 2016-7-13 12:12
回复 使用道具 举报
哈哈,代码太长了,不错
回复 使用道具 举报
很厉害的样子
回复 使用道具 举报
看不懂  百度`````
回复 使用道具 举报
66666666666666666666666666666
回复 使用道具 举报
够狠!!!
回复 使用道具 举报
...........................................
回复 使用道具 举报
++++++++++++++++++++++++++++
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马