链接列表:“进化的”缺失链接…

因此,昨天Lee和我正在研究如何让我们的Pokemon进化,而不必每次我们想检查它们是否进化时都不必查询数据库。 Bobasaur变成Ivysaur变成Venasaur。 每个人都知道。 但是红宝石没有。 我们如何让红宝石知道Venasaur是Bobasaur的最终形式?

输入链接列表

什么是链表? 它是具有两个属性的类:节点和下一个。 该节点只是一个类,它可以是您想要的任何类。 Next实际上是列表中的下一个“节点”。 因此,当您有一组节点时,每个节点都有一个“下一个”值,该值与列表中的下一个节点相关。

这与口袋妖怪有什么关系?

很好的问题。 回到Bobasaur,我们知道Bobasaur有两个演变。 我们也知道这两种演变的pokemon_id。 该数据库将如下所示:

请注意,每个“最终形式”在它们的next_id插槽中如何都有“ nil”。 这是为了确保我们的进化方法正常工作。 现在,如果您在下面看到,您将看到进化背后的逻辑。 确保您的神奇宝贝级别合适,并确保它具有可用的“下一个节点”。

让我们来看一下实际情况,以总结一下。 我们将与Jeff’s Bobasaur合作。 我们给他起泡菜的名字。

现在,我们需要确保泡菜可以变成强大的维纳萨罗。 我们必须首先将他升级到所需的水平,然后发展他,然后重复直到找到venasaur。

因此,我们将bobasaur升级到了所需的级别并对其进行了升级。 但是,由于我们的链接列表,他无法摆脱venasaur! 精彩! Venasaur指向nil的“ next_id”,因此他永远不会过去。