gpt4 book ai didi

javascript - 在游戏中反转 javascript 中的数组

转载 作者:行者123 更新时间:2023-11-30 18:07:26 25 4
gpt4 key购买 nike

else if(po==true){
snake_array.reverse();
var i=0;
var c=snake_array[i];
//paints head
paint_head(c.x,c.y);
for(i=1;i<snake_array.length;i++){
//paints body
var c=snake_array[i];
paint_body(c.x,c.y);
if(snake_array[i].x<snake_array[i-1].x){
d="right";
}
else if(snake_array[i].x>snake_array[i-1].x){
d="left";
}
else if(snake_array[i].y>snake_array[i-1].y){
d="up";
}
else if(snake_array[i].y<snake_array[i-1].y){
d="down";
}
}
//poison status false
po=false;
}

po 是毒物状态的变量。每当蛇吃这种食物时。它应该被逆转,回到它之前的踪迹.. 是的,蛇恢复了,但问题是蛇没有回到它之前的踪迹。,而是在它吃毒之前的方向相反......

      x  <-food
^ <-head v <-tail v <-tail
| | |
| >-becomes-> | >-instead of-> |
>.....| .......| <.....|
^ | ^
|_tail V <-head |_head

最佳答案

您的新方向基于尾部而不是头部。 d 在循环的每次迭代中设置,这意味着唯一重要的是最后一次。因此,由于示例中您的尾部朝下,因此 d 设置为向下。

您要么需要在反转之前检查尾部,然后反转 d,要么检查头部而不是尾部。

假设蛇的长度至少为 2,在循环外执行以下操作:

if(snake_array[0].x<snake_array[1].x){
d="left"; // left or right depending on how your coordinate system works
} ...

这只会看头部的正面。您可能想要检查蛇的长度是否只有 1,然后将当前的方向反转。

关于javascript - 在游戏中反转 javascript 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15478664/

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