Вычисление конечных координат робота
Доброго времени суток!
Нужна функция getLocation, которая будет принимать массив начальных координат coordinates (в виде [x, y]), массив истории команд роботу commands и возвращать массив конечных координат робота в том же виде ( [x, y])
Возможные команды роботу:
"forward" - прямо x + 0, y + 1,
"back" - назад x + 0, y - 1,
"right" - направо x + 1, y + 0,
"left" - налево x - 1, y + 0,
Примеры:
getLocation([0, 0], ['forward', 'right']) === [1, 1]
getLocation([2, 3], ['back', 'back', 'back', 'right']) === [3, 0]
getLocation([0, 5], ['back', 'back', 'back', 'right', 'left', 'forward']) === [0, 3]
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
я бы сделал так:
def getLocation(coords, commands):
dictionary = {
'forward': (0, 1),
'back': (0, -1),
'left': (-1, 0),
'right': (1, 0)
}
for command in commands:
data = dictionary.get(command, (0, 0))
coords = [coords[0] + data[0], coords[1] + data[1]]
return coords
заодно левые команды отсекать будет
Автор решения: SergFSM
→ Ссылка
или еще так:
def getLocation(coords, commands):
x, y = coords
x += commands.count('right') - commands.count('left')
y += commands.count('forward') - commands.count('back')
return x, y