首页   æ³¨å†Œ   ç™»å½•
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  ç™»å½•
V2EX  â€º  程序员

摸🐠🐴,一个模拟炉石开卡包的小东西

  •  
  •   muamua · 55 天前 · 1591 次点击
    这是一个创建于 55 天前的主题,其中的信息可能已经有所发展或是发生改变。

    预览: TopdeckGo Github: TopdeckGo

    1. 翻出个以前的课设项目,改了改 UI,发现无论怎么改都太难看了
    2. 还有一点就是按概率抽取卡牌这个有疑问,暂时的实现代码在下面,实际运行之后发现橙卡抽到的概率高于预期的 0.4%

    image.png

    private static final Double[] WEIGHTS = new Double[]{0.4,4.1,24.5,71.0};
        private static final Integer[] ID = new Integer[]{LEGEND,EPIC,RARE,COMMON};
        private static int randomChoice(){
            double sumOfWeight = 0;
            for (Double weight : WEIGHTS) {
                sumOfWeight += weight;
            }
            Random random = new Random();
            double randNumber = random.nextDouble()*sumOfWeight;
            for (int i = 0; i < WEIGHTS.length; i++) {
                if (randNumber<WEIGHTS[i]) return ID[i];
                randNumber -= WEIGHTS[i];
            }
            return COMMON;
        }
    
        public static int[] getARandomSet(){
            int[] sum = new int[5];
            for (int i = 0; i < 5; i++) {
                sum[randomChoice()]++;
            }
            return sum;
        }
    
    

    ps: 卡牌图片是外站的资源,所以会有某些卡牌图片缺失

    8 回复  |  ç›´åˆ° 2019-10-14 13:56:58 +08:00
        1
    yukiww233   55 天前   ♥ 2
    在循环里使用时间做 seed 会导致大量重复
        2
    densuc   55 天前
    不能一张一张自己点开没有灵魂(大雾)
        3
    muamua   55 天前
    @densuc 最开始最开始的版本就是一张一张开的🤐
        4
    muamua   55 天前
    @yukiww233 这还没仔细了解过,我还以为每次调用都会产生新的随机数列呢
        5
    luhe   55 天前
    营地好像也有模拟开包
        6
    tearain   54 天前
    开了 5 包,在有基本卡的情况下都开了 2 橙 4 紫 4 蓝 9 白。。。然而再去游戏上一开,emmmm
        7
    zepto   54 天前
    5 包两橙怕不是托吧 哈哈
        8
    zw1one   54 天前
    没有酒馆老板音效差评!(狗头
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2248 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 15:03 · PVG 23:03 · LAX 07:03 · JFK 10:03
    ♥ Do have faith in what you're doing.