黑马程序员技术交流社区

标题: 扑克中的洗牌发牌代码 [打印本页]

作者: zapoo    时间: 2016-1-31 15:36
标题: 扑克中的洗牌发牌代码
package com.calender.java;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.TreeSet;
public class PlayPoke {
        public static void main(String[] args) {
                String[] color = {"红桃", "方块", "梅花", "黑桃"};
                String[] num = {"3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A", "2"};
               
                HashMap<Integer, String> poke = new HashMap<>();
               
                ArrayList<Integer> list = new ArrayList<>();
                int index = 0;
               
                for(String c : color) {
                        for(String n : num) {
                                poke.put(index, c.concat(n));
                                list.add(index);
                                index++;
                        }
                }
                list.add(index);
                poke.put(index, "小王");
                index++;
                list.add(index);
                poke.put(index, "大王");
               
                //洗牌
                Collections.shuffle(list);
               
                //发牌
                TreeSet<Integer> tangseng = new TreeSet<>();
                TreeSet<Integer> houzi = new TreeSet<>();
                TreeSet<Integer> bajie = 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) {
                                houzi.add(list.get(i));
                        } else if(i % 3 == 1) {
                                tangseng.add(list.get(i));
                        } else {
                                bajie.add(list.get(i));
                        }
                }
               
                lookPoke(poke, tangseng, "唐僧");
                lookPoke(poke, houzi, "猴子");
                lookPoke(poke, bajie, "八戒");
                lookPoke(poke, dipai, "底牌");
        }
       
        public static void lookPoke(HashMap<Integer, String> poke, TreeSet<Integer> list, String name) {
                System.out.print(name + "的牌为:");
                for(Integer i : list) {
                        System.out.print(poke.get(i) + " ");
                }
                System.out.println();
        }
}

QZ)]EA)0NUYU]~(JG~ELAHY.png (44.19 KB, 下载次数: 6)

运行结果

运行结果

作者: 806551458    时间: 2016-2-4 14:45
刚学完。。。。。
作者: 愿随风丶飘雪    时间: 2016-2-5 11:20
沙和尚去哪里了?
作者: ChiCaoMa    时间: 2016-2-5 22:14
楼上的问题值得思考--不错--学习了--
作者: 谁的苍茫    时间: 2016-2-12 01:19
以前写过,现在都忘光光了
作者: tujiu888    时间: 2016-2-12 15:35
谁的苍茫 发表于 2016-2-12 01:19
以前写过,现在都忘光光了

学了就忘 怎么破




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2