Java集合练习之——斗地主游戏模拟(发牌遍历(而已))

还在苦于学了知识没处练而遗忘知识而发愁吗?

我想是的,
那么来跟我一起,用宇宙无敌第一帅的Java语言来练习一下人尽皆知的斗地主游戏(壳子),
那么为什么只做个壳子呢?…因为!高手看不上,低手做不出高级部分 ,所以!壳子足以!上结果图!在这里插入图片描述
不知道能不能看清,看不清也问题不大
上代码!细节与知识点都在注释里了(希望看官能学到一丢丢)
其中变量的命名我是很随意的,反正我想你也愿意敲一遍,名字你自己再改吧,这样你就能理解了!

第一部分、弄出一副完整的牌,存入集合

ArrayList<String> PkCover = new ArrayList<>();//牌盒,放牌
        String[] color={"♠","♣","♢","♥"};//花色
        String[] shuzi={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};//牌号
        String[] King={"大王","小王"};
        //把牌放进盒子,需要两个for循环组合放入,大小王单独放入。
        for(String c:color){//foreach,增强for循环,好用
            for(String s:shuzi){
                String poker=c+s;
                PkCover.add(poker);
            }
        }
        PkCover.add(King[1]);
        PkCover.add(King[0]);//放入大小王
        System.out.println("打乱前"+PkCover);//插进去了,遍历一下
        Collections.shuffle(PkCover);//打乱顺序,无可作弊。干!
        System.out.println("打乱后"+PkCover);//康康打乱没有,

遍历一下是否成功
在这里插入图片描述

第二部分、发牌分底牌功能实现

        ArrayList<String> DPoker = new ArrayList<>();//三张底牌
        ArrayList<String> A = new ArrayList<>();//把牌分成A,B,C三幅,存入集合
        ArrayList<String> B = new ArrayList<>();
        ArrayList<String> C = new ArrayList<>();
        String name;//斗地主人名字

        for(int k=0;k<PkCover.size();k++){//发牌
            if(k>=PkCover.size()-3){//从打乱的牌中把后三张拿出来当底牌
                DPoker.add((PkCover.get(k)));//dddd懂得都懂
            }else if(k%3==0) {//分三副就对3取余,分几副牌就对几取余,道理很简单
                A.add(PkCover.get(k));
            }else if(k%3==1){
                B.add(PkCover.get(k));
            }else if(k%3==2){
                C.add(PkCover.get(k));
            }
        }

第三部分、看牌!

        Putpoker("host",A);//调用函数,直接调用
        Poker.Putpoker("张三",B);//静态函数可通过类名.方法调用(又TM一个小细节)
        Poker.Putpoker("王五",C);

    }
    public static void Putpoker(String name,ArrayList<String> poker){//发牌函数]
            //朴实无华的函数,很简单
        System.out.println(name+"的牌是:"+poker);
    }
}

用到的方法不是很多,显然发到的牌很乱,所以它是不完善的,那么如何将这些东西变得更高级呢,明天告诉你优化后的代码!万事都有个循序渐进的过程,不能一开始就追求所谓完美,一步一步来才能有更加深刻得理解!优化部分明天更新(面向对象),今天我累了,要早睡哈哈哈哈。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值