可控的金币随机掉落算法
来源:互联网 发布:hr数据分析 编辑:程序博客网 时间:2024/04/29 20:46
需求是这样的,我们设计好了一个副本,里面怪物和怪的数量已经确定了,就100只吧,现在我们想让怪物随机得掉落金币,但是一个副本掉落金币的总量需要精确控制到10000金。那么算法应该怎么写?突然觉得很像微信抢红包的算法。
要实现起来,方法很多,这里记录一个我觉得最简单有效的办法。
const int c_min_package = 20;int DropsManager::dropsCoin(int leftmoney, int leftcount){ int money = 0; assert(leftmoney > 1); if(leftcount == 1) { leftcount--; money = leftmoney; } else { float max = leftmoney / leftcount * 2; //最多拿两人份 money = CCRANDOM_0_1() * max; if(money < c_min_package) money = c_min_package; } return money;}
常量 c_min_package 是我们定制的最小金币量
参数1. leftmoney 剩余金币总量
参数2. leftcount 剩余分金币的人的数量
测试代码跑一下
int totalmon = 10000; int totalpackage = 100; int leftmoney = totalmon; int leftpackage = totalpackage; int totalmon2 = 0; for(int index = 1; index <= totalpackage; index++) { int drop = DM()->dropsCoin(leftmoney, leftpackage); CCLOG("[%d] drop %d", index, drop); leftmoney -= drop; if(drop > 0) leftpackage--; totalmon2 += drop; } assert(totalmon2 == totalmon);
0 0
- 可控的金币随机掉落算法
- 怪物的攻击 掉落金币
- 怪物的生成 攻击和掉落金币
- 怪物掉落金币随想
- 宝箱的随机掉落物品
- uva11300分金币 随机选择算法
- Html5金币掉落配有声音插件demo
- unity进度条,物品随机掉落
- 游戏掉落算法
- 游戏 掉落算法
- 游戏掉落概率算法
- 10个房间里放着随机数量的金币
- 2014-8-15 精确随机掉落
- android随机整屏幕鲜花掉落
- 掉落的球体
- 不可控的世界,可控的意志力
- 算法题:分金币
- 算法 分金币
- 面向对象下-3
- ccf 网络延时
- Android笔记——六大布局
- 乐观锁和悲观锁
- 71道Android开发面试题
- 可控的金币随机掉落算法
- 51nod 1046 A^B Mod C
- Android Studio导入第三方库
- Swift中文教程(十三) 继承
- 循环赛事日程表
- hrbust 2046 哈理工oj 2046 最后的题目八个字【二维树状数组】
- 哈理工OJ 2033 A Funny Game(博弈问题)
- [数据存储之五]JSON文件读取
- C指针一个小错误(2)-返回值不能是局部变量的指针