Snake风格游戏的简约方法

Car*_*arx 5 calculator texas-instruments ti-basic

我大约两天前收到了我的TI-82 STATS可编程计算器(实际上更像是TI-83) - 并希望使用内置的TI-BASIC语言编写Snake游戏.

虽然我不得不发现:TI-BASIC 非常慢.我的第一次实施是如此缓慢,甚至对玩家来说都不是一个挑战!对我来说,主要的瓶颈在于管理包含蛇体坐标的列表(数组).

我尝试了两件事:

  • 当蛇移动时,更新头部位置,然后从尾部位置环绕阵列,并设置myList[ N ]myList[ N - 1 ],以使蛇看起来在移动.

但是,在列表长达4个部分之后,这将无法播放.(太慢了)

  • 然后,我尝试使用TI-BASIC的列表操作功能实现某种队列/双端队列,比如弹出结尾并在阵列的前面添加一些东西.

这样做效果更好,但随着时间的推移也会变得太慢.

TL; DR /实际问题:

  • 你知道一个技巧,所以游戏不会随着蛇越来越慢而减速吗?我已经看到这在TI-BASIC制作的其他游戏中是可行的

zvo*_*kov 3

使用循环缓冲区。详细说明:

准备一个足够大的数组来容纳最大的蛇。建立两个指针,一个用于头部,一个用于尾部。

开始时,尾部位于单元格#1 中,头位于单元格#3 中。当蛇移动时,将头指针向右移动并写入新的坐标。然后,如果没有吃食物,则将尾部指针也向右移动。如果任何一个指针试图超出数组的最右端,则将它们包装到开头。