gpt4 book ai didi

javascript - 涉及数组和 json javascript 的基本 2d 游戏问题

转载 作者:行者123 更新时间:2023-11-30 19:59:43 24 4
gpt4 key购买 nike

2d javascript question

现在这个游戏的格式已经确定,让我们开始一次一小块地编写一些功能。对于这一部分,编写一个名为“movePlayer”的函数,该函数将一个表示上述格式中的关卡的 JSON 字符串和一个表示玩家的第一个 Action 的字符串作为参数。根据玩家打算移动的方向,移动字符串将是“w”、“a”、“s”或“d”,“w”代表向上,“a”代表左,“s”代表下,和“d”代表权利。以 [x, y] 格式的数组形式返回新玩家位置。记得检查墙壁、锁着的门和导出,因为玩家无法穿过这些(您可以假设玩家没有 key ,也没有所有的 Crystal )。您可能会假设玩家没有走进熔岩地 block 。如果玩家走到 map 的边缘,它应该被视为一堵墙(例如,当玩家已经在 map 的右边缘时向右走不应该移动玩家)

function movePlayer(json_object, f){
var level = JSON.parse(json_object);
var grid = level["grid"];
var pos = level["start"];
var x = pos[0];
var y = pos[1];

if (f=="w"){
y = y - 1;
}
else if (f=="s"){
y = y + 1;
}
else if (f=="a"){
x = x - 1;
}
else if(f=="d"){
x = x + 1;
}


if (grid[y][x] == 1 || grid[y][x] == 3 || grid[y][x] == 7){
pos = level["start"];
}


else if (grid.includes(grid[y][x])){
pos = [x, y];
}
else{
pos = level["start"]
}
return pos;
}

函数 movePlayer 在输入时不正确 ['{"start": [2, 1], "grid": [[1, 1, 0, 1], [0, 3, 0, 7], [1, 0 , 0, 1], [0, 1, 0, 0]]}', 'w']

返回:[2, 1]预期:[2, 0]

我很困惑,不知道如何解决这个问题,如果有人能提供帮助,我将不胜感激。

最佳答案

您得到 [2,0],但随后陷入检查,最后一个 else 语句将您返回到 [2,1],这是您的开始

我认为你在 grid.includes(grid[y][x]) 条件中弄错了,它总是错误的,因为 grid 是数组的数组,而你正在检查它的精确整数值。

关于javascript - 涉及数组和 json javascript 的基本 2d 游戏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53519304/

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