抽卡游戏的随机机制(转载)

游戏中的随机概率:本篇主要讲述抽卡游戏中最简单的实现,概率是统计意义上的还是分布意义上的问题。第一种是列表方式,然后概率抽取,这样就能使其成为正态分布。第二种是直接用正态随机函数,初始化对所有物品按权值进行正态分布随机,每次取位置最小值的物品(也就是最先出现的),然后其它物品均减去该值,被取出的物品再单独进行一次正态分布随机,再次循环判断位置最小值。原博客挂了,再贴一个能看图片的网址:https://bbs.gameres.com/thread_466473_1_1.html

几种随机算法的实现原理:主要讲解一个随机算法加扰动。

伪随机数的数学原理:真正的随机恐怕涉及到量子物理。所以计算机只会通过一个特定数学公式或者算法生成类似随机的序列。本篇从最简单的数学原理线性同余开始讲。

所以各位同学,抽卡建议不要一个时间点抽,因为可能随机几率按照服务器时间做种子(大雾)

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随机算法是一种可以控制概率的随机算法,在游戏开发中经常使用。以下是一个简单的随机算法脚本: ``` using UnityEngine; using System.Collections.Generic; public class DrawCard : MonoBehaviour { public List<Card> cards; public int drawCount; public float baseProbability; public float probabilityIncrease; private float currentProbability; void Start() { currentProbability = baseProbability; } public List<Card> Draw() { List<Card> result = new List<Card>(); for (int i = 0; i < drawCount; i++) { if (Random.Range(0f, 1f) <= currentProbability) { //随机到一张 Card card = cards[Random.Range(0, cards.Count)]; result.Add(card); //重置概率 currentProbability = baseProbability; } else { //没有,增加概率 currentProbability += probabilityIncrease; } } return result; } } [System.Serializable] public class Card { public string name; public int rarity; } ``` 在这个脚本中,我们定义了一个DrawCard类,它包含一个Card列表、次数、基础概率和概率增加量。每次时,我们使用Random.Range方法来生成一个0到1之间的随机数,如果这个随机数小于等于当前概率,就到了一张;否则,就没有,我们会增加当前概率。如果到了,我们会重置概率为基础概率。最后,我们返回一个包含到的所有的Card列表。 在这个脚本中,我们还定义了一个名为Card的简单类,用于表示一张的名称和稀有度。你可以根据自己的需求扩展这个类。 使用这个脚本,你需要将所有可取的存储在cards列表中,然后调用Draw方法来进行。例如,你可以在一个按钮的OnClick事件中调用Draw方法,并将结果显示在UI中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值