Skip to content

Latest commit

 

History

History
49 lines (32 loc) · 2.15 KB

File metadata and controls

49 lines (32 loc) · 2.15 KB

第 6 节

本节最后修改于 2022 / 11 / 12

MP模块的无限制递归猜想

我们上一节讲过,

但是由于MP模块的参数是“全局”的,而基岩版我的世界中又没有二维的计分板没法实现计分板堆栈,MP模块调用自己会丢失现在的计分板参数,所以只能实现尾递归或者用一些奇技淫巧。

现在我表示,这段话不一定正确,因为最近我找到了计分板堆栈可能的实现方法。

计分板堆栈是什么,不就是一大堆计分板吗?

这是原来的计分板结构:

   |计分板A|计分板B|计分板C ...
-----|-------|-------|-------
实体1| 分数A1| 分数B1| 分数C1
实体2| 分数A2| 分数B2| 分数C2
实体3| 分数A3| 分数B3| 分数C3
...

这是我们希望的计分板结构:

   |计分板A|计分板B|计分板C ...
-----|-------|-------|-------
实体1| 数组A1| 数组B1| 数组C1
实体2| 数组A2| 数组B2| 数组C2
实体3| 数组A3| 数组B3| 数组C3
...

我们可以发现什么?

首先,我们希望的大概是不可能实现的,因为基岩版中计分板值不可能是个数组——以及Java版我没了解过。

但是,我们还可以发现,其实我们需要的不是一个数组,而是一个“方格”!

没错,实际上我们需要的是已知横坐标(计分板)和纵坐标(实体)就可得到的唯一一个数组。数组的形式不重要,重要的是我们能根据一个计分板和一个实体确定这一个数组。

到这里就明了了。我们只需要创造一大堆额外的实体,然后让这堆实体都和“实体1”、“实体2”等已有的实体联系起来,就可以了。我们就能根据一个确定的已有实体(也就是实体1、2、3)得到一大堆与其联系的实体。这个时候再来一个确定的计分板,我们就能得到已知实体的分数,及其联系着的实体们的分数。这就是传说中的根据已有实体和计分板,得到一大堆分数,就能达到目的,实现计分板堆栈。

主要的技术难点就在于,如何把一大堆实体同一个确定的已知实体联系起来。

下一节