【发布时间】:2015-10-18 13:00:43
【问题描述】:
我正在编写一个贪吃蛇游戏
而蛇的移动逻辑表明,如果我有一个 Javascript 数组
var links = [elem_0, elem_1, ..., elem_n];
代表蛇的链接的元素,那么蛇的移动方式是弹出elem_n,将其位置更改为elem_0加上翻译单元dx和dy的位置,然后把它放在数组的开头:
[elem_0, elem_1, ..., elem_n] ---> [elem_n, elem_0, ..., elem_(n-1)]
(过程中elem_n的一些内部属性发生了变化)
有什么方法可以做到这一点不妥协
- 在操作数量和内存使用方面达到最佳效率
- 可读
- 可维护
- 聪明(可选)
- 优雅
- 紧凑
??????
【问题讨论】:
-
links.unshift(links.pop()); -
您的需求列表是否按重要性排序?
-
聪明从来都不是我的要求。 “最佳效率”是一个定义不明确的目标。通常需要的是最少的努力来实现满足要求的解决方案。这为解决问题的其他重要领域留下了更多时间。由于您尚未定义足够的内容,因此我们无法针对特定目标进行编码。此外,最大效率通常需要增加与您的许多其他目标相冲突的复杂性,因此必须知道如何在它们之间进行权衡。
标签: javascript arrays algorithm optimization game-physics