黑马程序员技术交流社区

标题: 模拟斗地主(洗牌、发牌、排序) [打印本页]

作者: zhangquan    时间: 2016-6-11 00:13
标题: 模拟斗地主(洗牌、发牌、排序)
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;

public class DouDizZhu {

        public static void main(String[] args) {
                //准备牌                创建花色和数字集合
                ArrayList<String> colors = new ArrayList<String>();
                ArrayList<String> numbers = new ArrayList<String>();
                Collections.addAll(colors, "♥","♠","♣","♦");
                Collections.addAll(numbers, "3","4","5","6","7","8","9","10","J","Q","K","A","2");
                HashMap<Integer, String> poker = new HashMap<Integer, String>();
                int index = 0;
                for (String number : numbers) {
                        for (String color : colors) {
                                String sss = number + color;
                                poker.put(index, sss);
                                index++;
                        }
                }
                poker.put(52,"大☻");
                poker.put(53,"小☺");

                //洗牌
               
                ArrayList<Integer> in = new ArrayList<Integer>();
                for(int i = 0;i<poker.size();i++){
                        in.add(i);
                }
                Collections.shuffle(in);
       
                //发牌
                ArrayList<Integer> p1 = new ArrayList<Integer>();
                ArrayList<Integer> p2 = new ArrayList<Integer>();
                ArrayList<Integer> p3 = new ArrayList<Integer>();
                ArrayList<Integer> dd = new ArrayList<Integer>();
                for(int i = 0;i<54;i++){
                        if(i>50){
                                dd.add(in.get(i));                //将已定义的in集合(已被打乱)数放至dd中
                        }else if(i%3==0){
                                p1.add(in.get(i));
                        }else if(i%3==1){
                                p2.add(in.get(i));
                        }else if(i%3==2){
                                p3.add(in.get(i));
                        }
                }
                Collections.sort(p1);
                Collections.sort(p2);
                Collections.sort(p3);
                Collections.sort(dd);
                ArrayList<String> player1 = new ArrayList<String>();
                ArrayList<String> player2 = new ArrayList<String>();
                ArrayList<String> player3 = new ArrayList<String>();
                ArrayList<String> diPai = new ArrayList<String>();
                for (Integer  d: dd) {
                        diPai.add(poker.get(d));
                }
                for (Integer  pp: p1) {
                        player1.add(poker.get(pp));
                }
                for (Integer  pp: p2) {
                        player2.add(poker.get(pp));
                }
                for (Integer  pp: p3) {
                        player3.add(poker.get(pp));
                }
               
                System.out.println("令狐冲:"+player1);
                System.out.println("郭靖:"+player2);
                System.out.println("葫芦娃:"+player3);
                System.out.println("底牌:"+diPai);
        }

}

作者: liqi9006    时间: 2016-6-11 00:30
大神,膜拜一下!太厉害了!
作者: 孙自文    时间: 2016-6-11 19:45

"♥","♠","♣","♦"
貌似编译失败,
作者: lionc123    时间: 2016-6-11 23:11
运行得起来么???
作者: zhangquan    时间: 2016-6-11 23:28
孙自文 发表于 2016-6-11 19:45
"♥","♠","♣","♦"
貌似编译失败,

没问题的
作者: wby127889561    时间: 2016-6-12 08:35
一看就是同学,你是不是坐最后面的
作者: 星空@3    时间: 2016-6-12 08:49
感谢分享,学习了! GOOD
作者: Fangjie    时间: 2016-6-12 09:27
大神,请收下我的膝盖!
作者: haizi004    时间: 2016-6-12 10:17
谢谢大神分享。
作者: dubei1993    时间: 2016-6-12 12:14
哈哈,我也会。
作者: 数码店    时间: 2016-6-12 16:03
给大神跪了!手下膝盖!
作者: 大笑哈哈    时间: 2016-6-12 18:28
大兄弟,我char[] c = {6,3,4,5};    控制台输出不了
char[] c = {'♥','♠','♣','♦'};      控制台就可以输出   码表也用了utf-8
知道为什么么?
作者: huangzhehua    时间: 2016-6-12 20:52
大神,太厉害了




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