我应该使用什么数据结构进行蛇游戏?

bAN*_*bAN 9 delphi data-structures

我为学校做了一些功课,我必须在德尔福做一个像诺基亚一样的蛇游戏.我想知道哪种解决方案是最好的.我希望我的蛇是一个类,主体是一个点数组(父类)或点链接列表.什么是最好的?数组或链表?

Lar*_*s D 8

一个简单的解决方案是创建一个类型的数组[水平] [垂直],这样屏幕上的每个坐标都有一个项目.每种类型都可以是蛇方向,食物,毒药,墙壁或空洞.这意味着你只需要记住蛇的头部和尾部位置,以及食物和毒药的数量,并且阵列描述了屏幕的样子.

这消除了处理蛇元素的麻烦,并且可以轻松地将新食物或毒物放置在屏幕上,确保您不会将其放入已占用的地方.

当你需要移除蛇的尾部元素时,使用方向获得尾部的方向:= array [tailx,taily]; 然后设置数组[tailx,taily]:= empty.然后,根据方向更新tai​​lx和taily.而已.


And*_*rew 7

链接列表更好.(每个节点都可以指向上一个节点和下一个节点)将节点添加到链接列表的末尾更容易.

如果你使用一个数组,你需要调整它或者将它初始化为最大可能的蛇长度,这可能会浪费在内存上.

更新 本文讨论了Delph中的指针,甚至提出了一个简单的Node定义delphi文章