Теперь, когда у вас есть функция, которая может перемещать игрока на одно место, вы будете использовать эту функцию для обработки всего пути игрока.
Записьфункция с именем takePath
, которая принимает в качестве параметров строку JSON
, представляющую уровень в указанном выше формате, и массив строк, представляющих ходы игрока в том порядке, в котором они взяты, где каждый ход равен либо «w», «a"," s "или" d ", используя тот же стандарт, что и в части 1.
Возвращает местоположение нового игрока после выполнения всех ходов в виде массива в формате [x, y].
Вы можетепредположим, что на уровне нет ключей, запертых дверей, ботинок, лавовых плиток или выхода.
Вы захотите вызвать свою функцию из части 1, чтобы завершить эту часть, хотя вам может потребоваться изменить функцию movePlayer, чтобы она соответствовала вашим требованиям.новые потребности
function movePlayer(string, movement){
var parsed = JSON.parse(string)
var array = parsed['grid']
var answer = parsed['start']
var x = answer[0]
var y = answer[1];
var final = []
console.log(array[y][x-1])
if (movement == 'a') {
if ((x-1) >= 0) {
if (array[y][x-1] != 1);{
x = x - 1;
}
}
}
if (movement == 'd') {
if ((x+1) < array[y].length) {
if (array[y][x+1] != 1);{
x = x + 1;
}
}
}
if (movement == 'w') {
if ((y-1) >= 0) {
if (array[y-1][x] != 1);{
y = y - 1;
}
}
}
if (movement == 's') {
if ((y+1) < array[0].length) {
if (array[y+1][x] != 1);{
y = y + 1;
}
}
}
final = [x, y]
parsed['start'] = final;
JSON.stringify(parsed)
return final
} // end of MovePlayer function
function takePath(string, movementArray) {
var parsed = JSON.parse(string);
var start = parsed['start']
for (var movement of movementArray) {
string = JSON.stringify(parsed);
start = movePlayer(string, movement);
parsed['start'] = start;
}
return start;
} //end of takePath function
моя программа заставляет игрока проходить сквозь стены, и я не знаю, как это исправить.
функция takePath неверна при вводе ['{"start": [2, 0]," сетка ": [[1, 1, 0, 1], [1, 2, 0, 2], [2, 2, 2, 1], [0, 1, 0, 0]]} ', [' d ',' d ','w']]
возвращено: [3, 0]
ожидается: [2, 0]