ZnS

  • 2023年3月11日
  • 注册于 2021年1月13日
  • 0 best answers
  • 54 金币
  • Deleted User 删掉了前一段多余的话
    下面是一种最简单的情况,A可能重复,但B不会

    抱歉…我和朋友再讨论一下
    {
    “抽取”:[
    “::2::进行抽牌A{牌堆}{牌堆}”,
    “进行抽牌B{牌堆}{牌堆}”,
    “进行抽牌B{牌堆}{牌堆}”
    ],
    “牌堆”:[
    “结果1”,
    “结果2”
    ]
    }

    • 这个bug是朋友发现的,我嘛则是代为转发,框架为mirai,版本为565
      下为原话

      A
      ::2::牌堆内容{牌堆}{牌堆}
      B
      牌堆内容{牌堆}{牌堆}
      牌堆内容{牌堆}{牌堆}
      并不等价
      写法A会导致后面调用的牌堆结果出现重复
      例如A会产生
      牌堆内容结果1结果1
      但写法B
      必定不会产生两个相同的结果1

      推测出错原因为写法A的实现使用了循环 并使得随机牌堆的变量在循环中遭到了污染

      编辑:删掉了一段多余的