python - 蛇与梯子,检查是否会降落在最后一个方 block 上

标签 python linked-list

我正在使用链表在 python 中实现蛇和梯子游戏。该节点链接到下一个方 block ,最后一个方 block 链接到第一个方 block 。 (圆)。我还有蛇和梯子,这样每个节点还有一个名为destination的参数,如果它没有链接到任何地方,则为None,但如果链接到任何地方,则它包含另一个节点的地址。

我的游戏有一个特别之处,那就是我有一个固定骰子。如果我的固定滚动是 4,我将始终移动 4 个节点。如果我登陆的节点与蛇或梯子相连,那么我就会去那里。

我从第四个方格开始,或者说我的骰子所在的方格。

我需要一种方法来检查我是否会降落在最后一个方 block 上。

enter image description here

考虑 16 个方格和 2 个方格。我从第 2 个方格开始。但是有一个梯子,所以我移动到11号方格。现在每次我移动2个节点。转两圈后,我将移动到黄色方 block 。然后,当我再次移动时,我将移动到最后一个方格,然后返回方格 1(你必须落在最后一个方格上才能获胜)。但后来我注意到,如果我继续滚动 2,我将永远不会落在最后一个方 block 上,我需要一种方法来检测这一点。

我不需要任何代码,只需要一些关于如何检测我是否永远不会降落在最后一个方 block 的建议。谢谢

最佳答案

你的问题转化为在正方形遍历中找到循环的问题。 总体思路如下:“如果我多次访问同一个节点而没有到达最终的方 block ,那么我将永远不会到达它。”

例如,您可以通过将访问过的成员包含到方 block 类中并检查您是否到达之前访问过的方 block 来实现此目的。在这种情况下,您可以停止遍历。

关于python - 蛇与梯子,检查是否会降落在最后一个方 block 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41917504/

相关文章:

python - 使用 Python API 运行 ansible-playbook

python-2.7 - 解释器在执行 "from xyz import Abc"时做了什么?

python - 使用 C 代码的 Python 中的 SAAT-500 系列有源 RFID 项目

c - 我的链表代码有什么问题?

python - 在 python 2.6.5 上使用 idlestartup 的正确方法是什么?

python - 添加边缘权重以在 networkx 中绘制输出

java - 将两个链表表示的数相加,进位值不传递给下一次计算

c++ - 如何使用结构创建链表?

java - java中链表的实现

java - java.util.List 的降序迭代器