斗地主案例的分析与实践

斗地主案例的分析

按照斗地主的规则,完成洗牌发牌的动作。

具体规则:

使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。

1、准备牌,将54张牌存储到一个集合中。

  特殊牌:大王、小王

  分别定义数组或者集合存储四种花色以及排的序号

  使用循环嵌套遍历这两个数组或者集合,使用字符串拼接再存储到新的数组或者集合中。

  最后再添加大王、小王

2、洗牌

  可以使用集合工具类的Collections的shuffle( )方法,会随机打乱集合中元素的顺序

3、发牌

  要求:1人17张牌,最后剩余3张作为底牌,一人一张轮流发牌,让集合的索引%3;

  定义4个集合,用来存储3个玩家的牌和底牌

  索引%3为0时添加到第一个集合

  索引%3为1时添加到第二个集合

  索引%3为2时添加到第三个集合

  当索引大于等于51时,添加到底牌集合

4、看牌

  直接打印集合,或者遍历存储玩家和底牌的集合

 

 

 

斗地主案例实践

复制代码
/**
 *  斗地主综合案例:
 *  1、准备牌
 *  2、洗牌
 *  3、发牌
 *  4、看牌
 */
public class DouDiZhu {
    public static void main(String[] args) {
        //准备牌
        List<String> list = new ArrayList<>();
        String[] arr = {"♠","♥","♣","♦"};
        String[] arr1 = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
        list.add("大王");
        list.add("小王");
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr1.length; j++) {
                list.add(arr[i]+arr1[j]);
            }
        }
        //洗牌
        Collections.shuffle(list);

        //发牌
        List<String> one = new ArrayList<>();
        List<String> two = new ArrayList<>();
        List<String> three = new ArrayList<>();
        List<String> dipai = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            if (i>=51){
                dipai.add(list.get(i));
            }else {
                if (i%3==0){
                    one.add(list.get(i));
                }else if (i%3==1){
                    two.add(list.get(i));
                }else if (i%3==2){
                    three.add(list.get(i));
                }
            }

        }
        System.out.println("张三:"+one);
        System.out.println("李四:"+two);
        System.out.println("王五:"+three);
        System.out.println("底牌:"+dipai);
    }
}
复制代码

 

posted @   xjw12345  阅读(260)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示