黑马程序员技术交流社区

标题: 我和赌神,一起斗地主. [打印本页]

作者: boom_pm2.5    时间: 2016-11-20 23:41
标题: 我和赌神,一起斗地主.
上干货~
--------------------------------------------------------------------------------------------------------------
今天最后 冯佳老师讲了一个斗地主.
挺好玩的.
于是乎,自己也写了 一个, 是时候展现真正的技术了.~
赌神 高进  颤抖吧~~~吼吼吼~
----------------------------------------------------------------------------------------------------------------
代码区:


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

public class 斗地主 {
        public static void main(String[] args) {
                 
                String [] str ={"3","4","5","6","7","8","9","10","j","Q","K","A","2"};
                String [] str1 = {"红桃","方片","梅花","黑桃"};
               
                ArrayList<String> list = new ArrayList<>();//总牌
                for (String string : str) {
                        for (String string1 : str1) {
                                list.add(string1.concat(string));
                        }
                }
                list.add("大王");//添加大王,小王
                list.add("小王");
                HashMap<Integer, String> doudizhu = new HashMap<>();
                for(int i=0;i<list.size();i++) {
                        doudizhu.put(i ,list.get(i));
                }
               
                //System.out.println(doudizhu);
               
                ArrayList<Integer> arrlist = new ArrayList<>();
                for (Integer integer : doudizhu.keySet()) {
                        arrlist.add(integer);
                }
                System.out.println(arrlist);
                ArrayList<Integer> gaojin = new ArrayList<>();
                ArrayList<Integer> xiaodao = new ArrayList<>();
                ArrayList<Integer> me = new ArrayList<>();
                ArrayList<Integer> dipai = new ArrayList<>();
                Collections.shuffle(arrlist);
                System.out.println(arrlist);
                for(int i = 0; i<arrlist.size();i++) {
                        if (i>=arrlist.size()-3) {
                                dipai.add(arrlist.get(i));
                        }
                        if (i%3==0) {
                                gaojin.add(arrlist.get(i));
                        }
                        if (i%3==1) {
                                xiaodao.add(arrlist.get(i));
                        }
                        if (i%3==2) {
                                me.add(arrlist.get(i));
                        }
                }
        /*        ArrayList<String> gaojin1 = new ArrayList<>();
                ArrayList<String> xiaodao1 = new ArrayList<>();
                ArrayList<String> me1 = new ArrayList<>();
                ArrayList<String> dipai1 = new ArrayList<>();*/
                System.out.print("底牌是:");
                for (Integer integer : dipai) {
                //        dipai1.add(doudizhu.get(integer));
                        System.out.print(doudizhu.get(integer)+" ");
                }
                System.out.println();
                System.out.print("我的是:");
                for (Integer integer : me) {
                //        me1.add(doudizhu.get(integer));
                        System.out.print(doudizhu.get(integer)+" ");
                }
                System.out.println();
                System.out.print("小刀的:");
                for (Integer integer : xiaodao) {
                //        xiaodao1.add(doudizhu.get(integer));
                        System.out.print(doudizhu.get(integer)+" ");
                }
                System.out.println();
                System.out.print("高进的:");
                for (Integer integer : gaojin) {
                //        gaojin1.add(doudizhu.get(integer));
                        System.out.print(doudizhu.get(integer)+" ");
                }
                /*System.out.println();
                System.out.println(dipai1);
                System.out.println(xiaodao1);
                System.out.println(gaojin1);
                System.out.println(me1);*/        }
}

-------------------------------------------------------------------------------------------------------
总结一下:
首先我 将1-K 和四种花色 进行匹配,
然后通过  HashMap 给他 搞进去
然后通过   HashMap.keyset(),方法,将他的键全部拿出去变成集合.
然后对这个集合进行 重新洗牌
然后 分给三个人.
这时候分的还是 数字,
但是通过map.get(),方法可以获取到值
这样就可以 愉快的  看高进的  底牌了,
其实我早就看穿了你的底牌~  颤抖吧.

作者: boom_pm2.5    时间: 2016-11-20 23:48
赌神,来来来,一起斗地主.




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