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

2019-10-13 17:43:09 +08:00
 muamua

预览: TopdeckGo Github: TopdeckGo

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

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: 卡牌图片是外站的资源,所以会有某些卡牌图片缺失

2516 次点击
所在节点    程序员
8 条回复
yukiww233
2019-10-13 17:57:34 +08:00
在循环里使用时间做 seed 会导致大量重复
densuc
2019-10-13 20:50:01 +08:00
不能一张一张自己点开没有灵魂(大雾)
muamua
2019-10-13 21:25:48 +08:00
@densuc 最开始最开始的版本就是一张一张开的🤐
muamua
2019-10-13 21:26:57 +08:00
@yukiww233 这还没仔细了解过,我还以为每次调用都会产生新的随机数列呢
luhe
2019-10-13 21:54:47 +08:00
营地好像也有模拟开包
tearain
2019-10-13 23:25:30 +08:00
开了 5 包,在有基本卡的情况下都开了 2 橙 4 紫 4 蓝 9 白。。。然而再去游戏上一开,emmmm
zepto
2019-10-14 11:10:30 +08:00
5 包两橙怕不是托吧 哈哈
zw1one
2019-10-14 13:56:58 +08:00
没有酒馆老板音效差评!(狗头

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/608888

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX