在整个 80 年代和 90 年代的英国(我相信也是 70 年代!)有一个经典的电视节目叫做“大片”,它在蜂窝网格中显示六边形,像这样(抱歉图片模糊!):
(来源:ukgameshows.com)
如您所见,有 5 列字母和 4 行。1个人或团队正在尝试水平旅行,一个人正在尝试垂直旅行。您通过回答一个问题赢得一个六边形,答案将以该六边形中显示的字母开头。
获胜的人或团队是第一个“连接线”的人 - 请注意,这可能会自行返回(例如,如果它被赢得该六边形的对方团队阻挡)因此有很多很多可能的获胜组合。
几年前,当我刚开始编码时,我根据这个谜题编写了一个会议游戏(我们让它交替使用八边形和正方形以避免侵犯版权!)但我一直在努力解决的问题是检查何时完成一行的算法被制作了。简单的很好,但是那些上下,来回的我真的被卡住了!
我最终基本上编写了一个巨大的蛮力循环,但仍然没有捕捉到所有的可能性。因此,我不得不在会议组织者的屏幕上放置一个按钮,以使他们能够在逻辑未检测到它的情况下快速宣布获胜者!谈论肮脏的黑客...
现在我回想起我必须解决的这个难题,我想知道你们中是否有人愿意提出一个更优雅的解决方案?当然语言不可知论(所有包括愉快地接受的伪代码)。
编辑您可以按照自己的方式存储数据。我把它放在一个数组中。