我在javascript中实现了一个Snake游戏以获得乐趣,我已经成功实现了蛇,它的动作以及它吃掉苹果时的蛇生长。
要计算当前遵循以下步骤的苹果位置:
不幸的是我发现这个算法很弱..让我说我有一个10 x 10游戏容器,红色方块是苹果,绿色方块是我的蛇头(初始游戏状态)< / p>
随着游戏的进行,蛇吃掉越来越多的苹果,增加它的长度,留下越来越少的空细胞放置苹果
现在假设在吃苹果时蛇的长度等于99。这意味着只剩下只有一个方格来放置下一个苹果。我的算法(显然这是最糟糕的情况)可能需要永远才能使正确的值随机化,因为它丢弃了它的头部或尾部已经采取的任何随机位置,而不是完全关心在一系列空单元格中随机化新位置&#34;只是随机化整个10 x 10游戏画布。
我该如何解决我的公共汽车问题?你能给我一些关于我可以使用的好算法的建议吗?
谢谢
答案 0 :(得分:5)
正如评论中所说,我能想到的最简单的解决方案是制作一个免费坐标列表,然后从中随机选择。 并且您可以仅在需要时(当您需要添加苹果时)计算自由坐标。