gpt4 book ai didi

javascript - 在 Javascript 中,将数组的最后一个元素带到开头的最紧凑、优雅和高效的方法是什么?

转载 作者:搜寻专家 更新时间:2023-11-01 04:50:09 27 4
gpt4 key购买 nike

我正在编写贪吃蛇游戏

enter image description here

蛇的移动逻辑决定了如果我有一个 Javascript 数组

var links = [elem_0, elem_1, ..., elem_n];

代表蛇链接的元素,那么蛇移动的方式是弹出elem_n,改变它的位置为elem_0加上翻译单元dxdy,然后放在数组的开头:

[elem_0, elem_1, ..., elem_n] ---> [elem_n, elem_0, ..., elem_(n-1)]

(elem_n 的一些内部属性在此过程中发生了变化)

有什么办法做到这一点又不妥协

  • 在操作数量和内存使用方面效率最高
  • 可读
  • 可维护
  • 聪明(可选)
  • 优雅
  • 紧凑

????

最佳答案

optimally efficient in number of operations and memory usage

您要求进行两项通常相互抵消的优化。例如更快的速度 == 更多的内存。

也就是说,我可能会选择 a (doubly) linked list存储我的蛇,因为在前端或尾部移除或添加非常便宜,并且对于游戏来说,更快比更少的内存更可取(在合理范围内,但我想知道在你遇到内存问题之前你的蛇必须有多长... 远远超出了可玩的范围...和一些)。

当然,我假设您已经测量并发现基于标准数组的方法太慢(似乎不太可能)。

关于javascript - 在 Javascript 中,将数组的最后一个元素带到开头的最紧凑、优雅和高效的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668399/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com