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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© @31415927 中级黑马   /  2016-4-27 22:48  /  643 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.heima.test;

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

public class T3 {
        // 模拟斗地主洗牌和发牌并对牌进行排序的代码实现
        public static void main(String[] args) {
                String[] s = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
                String[] color = {"黑桃","红桃","梅花","方片"};
                //买牌
                HashMap<Integer, String> hm = new HashMap<Integer, String>();
                ArrayList<Integer> list = new ArrayList<>();
                int index = 0;
                //整理牌
                for (String a1 : color) {
                        for (String a2 : s) {
                                String s1 = a1.concat(a2);
                                System.out.print(s1 + " ");
                                hm.put(index,s1);
                                list.add(index);
                                index++;
                        }
                        System.out.println();
                }
                hm.put(index, "小王");
                list.add(index);
                index++;
                hm.put(index, "大王");
                list.add(index);
               
                //洗牌
                Collections.shuffle(list);
               
                //发牌
                TreeSet<Integer> ts1 = new TreeSet<>();
                TreeSet<Integer> ts2 = new TreeSet<>();
                TreeSet<Integer> ts3 = new TreeSet<>();
                TreeSet<Integer> dipai = new TreeSet<>();
               
                for(int i = 0;i < list.size();i ++){
                if(i >= list.size()-3 && i < list.size())
                        dipai.add(list.get(i));
                else if(i % 3 == 0)
                                ts1.add(list.get(i));
                else if(i % 3 == 1)
                        ts2.add(i);
                else        ts3.add(list.get(i));
                }       
               
                //看牌
                look(hm,ts1,"阿辉");
                look(hm,ts2,"明辉");
                look(hm,ts3,"我");
                look(hm,dipai,"底牌");
               
        }

        private static void look(HashMap<Integer, String> hm, TreeSet<Integer> ts1,        String name) {
                System.out.print(name + "的牌" + "\t:");
                for (Integer i : ts1) {
                        System.out.print(hm.get(i) + "\t");
                }
                System.out.println();
        }
}


8 个回复

正序浏览

对啊,但是自己敲就会各种错了,甚至有时候运行硬是没有大小王
回复 使用道具 举报
上课的代码
回复 使用道具 举报
tongtian 发表于 2016-4-29 22:10
加油加油加油加油加油

just do it
回复 使用道具 举报
加油加油加油加油加油
回复 使用道具 举报
leo_yang 发表于 2016-4-29 21:54
好难啊,我觉得你自己也看不懂

等你学了就会知道其实很好敲的了
回复 使用道具 举报
好难啊,我觉得你自己也看不懂
回复 使用道具 举报

看不懂就对了
我的程序自己都看不懂
回复 使用道具 举报
好难啊,看不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马