Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何规划“机会”?_C#_Mysql - Fatal编程技术网

C# 如何规划“机会”?

C# 如何规划“机会”?,c#,mysql,C#,Mysql,我有一个想法,但我不知道怎么做:D 基本上就像在游戏中一样,每6小时你可以打开一个箱子,在那里你可以免费抓取一些物品。现在我想有一个箱子,用户可以每6小时打开一次,我在mysql服务器中编写了每个项目,每个项目都给用户提供经验点。但是怎么做呢? 假设数据库有15个项目,例如,现在每个项目都有其机会值 什么都不做=得到它的75% 剑_1=获得它的15% 剑2=获得它的30% 知道怎么做吗 定义%的范围以获取项目 示例-剑1=0-15%,剑2=15-45% 请注意,上面的数字加起来不等于100%,因

我有一个想法,但我不知道怎么做:D 基本上就像在游戏中一样,每6小时你可以打开一个箱子,在那里你可以免费抓取一些物品。现在我想有一个箱子,用户可以每6小时打开一次,我在mysql服务器中编写了每个项目,每个项目都给用户提供经验点。但是怎么做呢? 假设数据库有15个项目,例如,现在每个项目都有其机会值 什么都不做=得到它的75% 剑_1=获得它的15% 剑2=获得它的30% 知道怎么做吗

定义%的范围以获取项目 示例-剑1=0-15%,剑2=15-45% 请注意,上面的数字加起来不等于100%,因此,除非您确实希望返回多次,否则有时。。上述范围不考虑任何结果。 如果你想在一次掷骰中获得多个奖励,只需相应地调整范围即可

生成一个介于0和100之间的随机数。对于生成数量在范围内的项目,这些是您在该回合中赢得的奖励


您可以为表中的每个项目分配一个数值,获得该数值的百分比将是该数值与其下一个最低数值之间的差值

Nothing, 60  (60% chance)
sword_1, 70  (10% chance)
sword_2, 100 (30% chance)
确保您的最大物品数为100

然后,您可以使用随机数从该表中进行选择:

SELECT * FROM ChestItems WHERE ChanceValue < FLOOR(RAND() * 100) ORDER BY ChanceValue DESC LIMIT 1;

有几种更好的方法可以做到这一点。这只是一个简单的例子。

Tons:查找加权分布,您将找到许多解决此问题的方法。