Project1

标题: 请教一下被攻击率【已解决】 [打印本页]

作者: 间桐樱    时间: 2024-2-12 12:56
标题: 请教一下被攻击率【已解决】
本帖最后由 间桐樱 于 2024-2-17 12:05 编辑

想把被攻击率改成魅力值,做成与原先完全相反的效果,魅力值越高被攻击几率就越低,然后看着代码麻爪
  def tgr_sum
    alive_members.inject(0) {|r, member| r + member.tgr }
  end

  def random_target
    tgr_rand = rand * tgr_sum
    alive_members.each do |member|
      tgr_rand -= member.tgr
      return member if tgr_rand < 0
    end
    alive_members[0]
  end
作者: 间桐樱    时间: 2024-2-14 11:40
没大佬来啊
作者: 间桐樱    时间: 2024-2-16 17:44
没人来,想让全世界变猫奴好难
作者: alexncf125    时间: 2024-2-16 21:30
本帖最后由 alexncf125 于 2024-2-16 21:31 编辑

X越高Y就越低...这不是小学数学么?
1 / 100 = 0.01
1 / 200 = 0.005

只是ruby不能直接用1 / X
要用1.0 / X
作者: 间桐樱    时间: 2024-2-17 10:35
alexncf125 发表于 2024-2-16 21:30
X越高Y就越低...这不是小学数学么?
1 / 100 = 0.01
1 / 200 = 0.005

道理我懂,但不知道改哪儿
作者: alexncf125    时间: 2024-2-17 11:47
间桐樱 发表于 2024-2-17 10:35
道理我懂,但不知道改哪儿


你都知道"被攻击率"是叫tgr了
那当然是把member.tgr改成1.0 / member.tgr喽,即是
alive_members.inject(0) {|r, member| r + 1.0 / member.tgr }
以及tgr_rand -= 1.0 / member.tgr
作者: 间桐樱    时间: 2024-2-17 11:56
alexncf125 发表于 2024-2-17 11:47
你都知道"被攻击率"是叫tgr了
那当然是把member.tgr改成1.0 / member.tgr喽,即是
alive_members.inject( ...

原来如此,感觉自己好傻,脑子转不过来,之前就拽着负数试




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1