Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.05.2022, 14:47
Новичок на форуме
Отправить личное сообщение для marishka88 Посмотреть профиль Найти все сообщения от marishka88
 
Регистрация: 30.05.2022
Сообщений: 3

Задача по js
Добрый день! Прошу объяснить или помочь решить данную задачу.
Наш робот умеет преобразовывать команды движения в правильный сигнал и двигаться в соответствии с ним:

'forward' означает y + 1
'back' означает y - 1
'right' означает x + 1
'left' означает x - 1

Было бы здорово, чтобы робот знал, где он сейчас находится даже без GPS.

Напишите функцию getLocation, которая принимает массив начальных координат coordinates (в виде [x, y]) и массив истории команд commands.

Функция должна возвращать массив конечных координат робота в том же формате ([x, y]) после движений согласно командам из commands.

Например:

coordinates = [2, 1]
commands = ['left', 'back', 'back']

Координаты после первой команды: [1, 1] // 1 шаг влево
Координаты после второй команды: [1, 0] // 1 шаг назад
Координаты после третьей команды: [1, -1] // 1 шаг назад

Результатом будет [1, -1]

Вот мой нерабочий код :
function getLocation(coordinates, commands) {
  let x = coordinates[0];
  let y = coordinates[1];
 
  for(let i = 1; i < commands.length; i++){
    if(commands[i] === 'forward'){
      y += coordinates[1] + 1 ;
    }
    
     if(commands[i] === 'back'){
      y += coordinates[1] - 1;
    }
    
     if(commands[i] === 'right'){
      x += coordinates[0] + 1 ;
    }
    
     if(commands[i] === 'left'){
      x += coordinates[0] - 1;
    }
     
    
  }
 return [x, y]
  
}
Ответить с цитированием
  #2 (permalink)  
Старый 30.05.2022, 15:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

marishka88,
зачем плодить тему, и зачем вы всунули лишнее в прежний почти рабочий код?

уберите лишнее из строк 7, 11, 15, 19
Ответить с цитированием
  #3 (permalink)  
Старый 30.05.2022, 15:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

marishka88,
function getLocation(coordinates, commands) {
            let [x, y] = coordinates;
            for (let command of commands) {
                if (command === 'forward') {
                    y++;  //y += 1
                }
                if (command === 'back') {
                    y--;  //y -= 1
                }
                if (command === 'right') {
                    x++;  //x += 1
                }
                if (command === 'left') {
                    x--; // x -= 1
                }
            }
            return [x, y]
        }
        let coordinates = [2, 1],
            commands = ['left', 'back', 'back']
        alert(getLocation(coordinates, commands));
Ответить с цитированием
  #4 (permalink)  
Старый 30.05.2022, 15:34
Новичок на форуме
Отправить личное сообщение для marishka88 Посмотреть профиль Найти все сообщения от marishka88
 
Регистрация: 30.05.2022
Сообщений: 3

Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подгрузка удаленного скрипта средствами JS seowin Общие вопросы Javascript 1 02.03.2015 10:12
Проблема с видеоплеером на js web-master2014 Общие вопросы Javascript 0 26.02.2014 13:24
Вывыод контента через JS inet_boy Элементы интерфейса 0 18.11.2013 03:00
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
Не получается передать переменную из JS в PHP Lion_astana AJAX и COMET 2 23.11.2010 17:23