我正在用javascript实现一个Snake游戏,这很有趣,我已经成功实现了蛇,蛇的 Action 和吃苹果的蛇的成长。
要计算苹果位置,我目前正在按照以下步骤操作:
不幸的是,我发现此算法非常弱..假设我有一个10 x 10的游戏容器,红色方块是苹果,绿色方块是我的蛇头(初始游戏状态)
随着游戏的进行,蛇吃了越来越多的苹果,这增加了它的长度,并留下了越来越少的空细胞来放置一个苹果。
现在假设蛇在吃一个苹果时的长度等于99。这意味着只剩下一个正方形,可以放置下一个苹果。我的算法(这显然是最坏的情况)可能要花很长时间才能随机化正确的值,因为它会丢弃蛇头或尾部已经占据的任何随机位置,根本不在乎将某个范围内的新位置随机化的“空单元格”,而是在整个10 x 10游戏 Canvas 上随机分配。
我应该如何解决我的业务问题?您能给我有关我可以使用的良好算法的任何建议吗?
谢谢
最佳答案
如评论中所述,我能想到的最简单的解决方案是列出自由坐标的列表,然后从它们中随机选择。
而且,只有在需要时(需要添加苹果时),您才可以计算自由坐标。
关于javascript - 蛇游戏-如何计算下一个苹果位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28685388/