Решение на Навигация на Piet от Кристиан Иванов

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

Към профила на Кристиан Иванов

Резултати

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

Код

def calculate_final_vector(coord, color_list):
colors_table = {"C0FFC0": (-1, 0), "FFFFC0": (0, -1), "FFC0C0": (1, 0), "C0C0FF": (0, 1),
"00C000": (1, 0), "C0C000": (0, 1), "C00000": (-1, 0), "0000C0": (0, -1)}
coordX, coordY = coord
for color in color_list:
if color.upper() == "000000":
return coordX, coordY
if color.upper() == "FFFFFF":
continue
if color.upper() in colors_table:
coordX += colors_table[color.upper()][0]
coordY += colors_table[color.upper()][1]
return coordX, coordY

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

........
----------------------------------------------------------------------
Ran 8 tests in 0.093s

OK

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

Кристиан обнови решението на 25.10.2022 12:40 (преди над 1 година)

+def calculate_final_vector(vec, lst):
+ colors = {"C0FFC0": (-1, 0), "FFFFC0": (0, -1), "FFC0C0": (1, 0), "C0C0FF": (0, 1),
+ "00C000": (1, 0), "C0C000": (0, 1), "C00000": (-1, 0), "0000C0": (0, -1)}
+
+ a, b = vec[0], vec[1]
+
+ for i in lst:
+ if i.upper() == "000000":
+ return a, b
+
+ if i.upper() == "FFFFFF":
+ continue
+
+ if i.upper() in colors:
+ a += colors[i.upper()][0]
+ b += colors[i.upper()][1]
+
+ return a, b

Доста неописателни имена на променливите. Lst не казва нищо, освен че съдържанието е списък. i е стандартно име за индекс, а ние никъде не ползваме индекси.

Кристиан обнови решението на 25.10.2022 15:05 (преди над 1 година)

-def calculate_final_vector(vec, lst):
- colors = {"C0FFC0": (-1, 0), "FFFFC0": (0, -1), "FFC0C0": (1, 0), "C0C0FF": (0, 1),
+def calculate_final_vector(coord, color_list):
+ colors_table = {"C0FFC0": (-1, 0), "FFFFC0": (0, -1), "FFC0C0": (1, 0), "C0C0FF": (0, 1),
"00C000": (1, 0), "C0C000": (0, 1), "C00000": (-1, 0), "0000C0": (0, -1)}
- a, b = vec[0], vec[1]
+ coordX, coordY = coord
- for i in lst:
- if i.upper() == "000000":
- return a, b
+ for color in color_list:
+ if color.upper() == "000000":
+ return coordX, coordY
- if i.upper() == "FFFFFF":
+ if color.upper() == "FFFFFF":
continue
- if i.upper() in colors:
- a += colors[i.upper()][0]
- b += colors[i.upper()][1]
+ if color.upper() in colors_table:
+ coordX += colors_table[color.upper()][0]
+ coordY += colors_table[color.upper()][1]
- return a, b
+ return coordX, coordY