java - 如何偶然获得有效且正确的掉落系统
问题描述
我想根据我设定的赔率获得 Minecraft 中最有效、最正确的掉落系统。
我实际上是这样创建的:
double randomChance = getRandom(0, 100);
for(DropObject dropObject : getDropByCategoryAndSource(category, source)) {
if(randomChance <= dropObject.getChance()) {
//give item etc.
}
}
这样做的问题是,并非所有物品都会掉落,只有少数物品会掉落。我怎样才能使它成为一个更有效的系统以使其更好地工作?
解决方案
我看到的一个问题是,由于您正在生成一个从 0 到 100 的数字,然后将其与列表进行比较。因此,如果您从随机方法中获得数字 37,则意味着所有机会等于或高于 37% 的项目都将被丢弃,我认为这不是预期的行为。
我不知道该列表的大小,但也许您可以在列表循环中生成一个新的随机数。
推荐阅读
- reactjs - reactjs 出现错误第 3:7 行:解析错误:意外令牌,预期“;”
- react-native - react-native-image-slider-box 与本地图像不起作用
- python - 如何在 Python 中获取 RAM 使用百分比?
- c++ - 我无法理解我的 C++ 代码的输出
- node.js - 我如何使用上传按钮将图像(使用 NodeJs)上传到烧瓶中的图像分类器 api 或在 XYZ.com 上运行的图像分类器
- azure - 如何解决 Microsoft Graph API 的“暂时性错误”?
- android - 如何添加android.support.v7.widget.Toolbar
- react-native - React Native : Expo Start Gives EIO: i/o error, read
- mysql - MYSQL ID 不按顺序
- java - 我真的需要一个新的 Solr 系列吗?