我正在使用链表在 python 中实现蛇和梯子游戏。该节点链接到下一个方 block ,最后一个方 block 链接到第一个方 block 。 (圆)。我还有蛇和梯子,这样每个节点还有一个名为destination
的参数,如果它没有链接到任何地方,则为None
,但如果链接到任何地方,则它包含另一个节点的地址。
我的游戏有一个特别之处,那就是我有一个固定骰子
。如果我的固定滚动是 4
,我将始终移动 4 个节点
。如果我登陆的节点与蛇或梯子相连,那么我就会去那里。
我从第四个方格开始,或者说我的骰子所在的方格。
我需要一种方法来检查我是否会降落在最后一个方 block 上。
考虑 16 个方格和 2 个方格。我从第 2 个方格开始。但是有一个梯子,所以我移动到11号方格。现在每次我移动2个节点。转两圈后,我将移动到黄色方 block 。然后,当我再次移动时,我将移动到最后一个方格,然后返回方格 1(你必须落在最后一个方格上才能获胜)。但后来我注意到,如果我继续滚动 2,我将永远不会落在最后一个方 block 上,我需要一种方法来检测这一点。
我不需要任何代码,只需要一些关于如何检测我是否永远不会降落在最后一个方 block 的建议。谢谢
最佳答案
你的问题转化为在正方形遍历中找到循环的问题。 总体思路如下:“如果我多次访问同一个节点而没有到达最终的方 block ,那么我将永远不会到达它。”
例如,您可以通过将访问过的成员包含到方 block 类中并检查您是否到达之前访问过的方 block 来实现此目的。在这种情况下,您可以停止遍历。
关于python - 蛇与梯子,检查是否会降落在最后一个方 block 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41917504/