Решение на Навигация на Piet от Иван Лаков

Обратно към всички решения

Към профила на Иван Лаков

Резултати

  • 10 точки от тестове
  • 0 бонус точки
  • 10 точки общо
  • 8 успешни тест(а)
  • 0 неуспешни тест(а)

Код

def calculate_final_vector(start_point, color_list):
x = start_point[0]
y = start_point[1]
for color in color_list:
match color.upper():
case "C0FFC0": # light green
x -= 1
case "00C000": # dark green
x += 1
case "FFFFC0": # light yellow
y -= 1
case "C0C000": # dark yellow
y += 1
case "FFC0C0": # light red
x += 1
case "C00000": # dark red
x -= 1
case "C0C0FF": # light blue
y += 1
case "0000C0": # dark blue
y -= 1
case "FFFFFF": # white
pass
case "000000": # black
break
case _: # default because it seems like a normal thing to do
break
return (x, y)
calculate_final_vector((1, 1), ['00C000', 'C0FFC0', 'C00000', 'FFFFFF', 'C0C000'])

Лог от изпълнението

........
----------------------------------------------------------------------
Ran 8 tests in 0.091s

OK

История (1 версия и 2 коментара)

Иван обнови решението на 24.10.2022 23:20 (преди около 2 години)

+def calculate_final_vector(start_point, color_list):
+ x = start_point[0]
+ y = start_point[1]
+ for color in color_list:
+ match color.upper():
+ case "C0FFC0": # light green
+ x -= 1
+ case "00C000": # dark green
+ x += 1
+ case "FFFFC0": # light yellow
+ y -= 1
+ case "C0C000": # dark yellow
+ y += 1
+ case "FFC0C0": # light red
+ x += 1
+ case "C00000": # dark red
+ x -= 1
+ case "C0C0FF": # light blue
+ y += 1
+ case "0000C0": # dark blue
+ y -= 1
+ case "FFFFFF": # white
+ pass
+ case "000000": # black
+ break
+ case _: # default because it seems like a normal thing to do
+ break
+
+ return (x, y)
+
+calculate_final_vector((1, 1), ['00C000', 'C0FFC0', 'C00000', 'FFFFFF', 'C0C000'])