2016-12-30 253 views
-4

我正在尝试重新创建PokemonGO中的孵化蛋IV计算算法。如何从0-15中产生3组3个随机数,并将它们平均为一组三个数字?

对于攻击,速度和HP,IV的值在0-15之间。 孵化蛋每个价值三次掷骰子,并取最高的一个。

例如,要计算攻击IV,他们会生成3个随机数并取最高的数,然后再用于速度,然后再用于HP。所以攻击的数字将是10,10和14.

然后,它会选择14,速度是11,12,15,所以它会选择15,而惠普将是13,13,15 ,所以它会选择15.相应的列表将是[14,15,15]。这是怎么做到的?我试过了,我无法走到那么远。

+0

这听起来像一个坚实的算法,你有什么尝试?什么地方出了错?你实际需要什么帮助? –

+0

使用list.append()和max(list) –

+0

我试着做三个独立的随机数函数,并从这些函数中取出最大值。然后尝试将其编入索引列表。我很难弄清楚如何使用生成的随机值通过最大函数传递它,然后传递给列表。这是我无法弄清的部分。如何将这些随机生成的数字传递给不同的函数。 –

回答

0

很简单,您可以通过使用列表理解创建随机数的列表,random.randint

rolls = [random.randint(0, 15) for _ in range(3)] 
#   minimum roll--^ ^--max   ^--number of rolls 

可以使用内置max功能(在这种情况下产生的表达,而不是确定的最大列表理解可以使用):

max_roll = max(random.randint(0, 15) for _ in range(3)) 

它作为一个练习来找到最大的几个这样的计算。

+0

我试着把代码放入提示符,但它没有输出。我做得不对吗? –

+0

进口随机 辊= [random.randint(0,15),用于在_范围(3)] max_rolls = MAX(random.randint(0,15),用于在_范围(3))没有输出 –

+0

@ RyanPostell如果你想看看结果,然后'打印'变量。 – MSeifert

相关问题