Решение на Навигация на Piet от Александър Томов

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

Към профила на Александър Томов

Резултати

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

Код

starting_colors = {
'C0FFC0' : (-1,0),
'00C000' : (1,0),
'FFFFC0' : (0,-1),
'C0C000' : (0,1),
'FFC0C0' : (1,0),
'C00000' : (-1,0),
'C0C0FF' : (0,1),
'0000C0' : (0,-1),
'FFFFFF' : (0,0),
'000000' : (100,100),

100, 100 е доста случаен начин за проверка на финални координати. Ами ако това са реални координати за стъпка, които функцията ти в някакъв момент ще получи (промяна на изискванията)?

}
def calculate_final_vector(starting_coordinates, colors):
colors = [x.upper() for x in colors]
for i in colors:
if starting_colors[i] == (100,100):
return starting_coordinates
else:
c = tuple(x+y for x, y in zip(starting_coordinates, starting_colors[i]))

c не носи много информация за съдържанието на променливата. Бих използвал нещо по-описателно. Като цяло еднобуквените променливи са излишни - нищо не печелиш, само губиш. По-подробно име винаги е по-добре.

starting_coordinates = c
return starting_coordinates

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

........
----------------------------------------------------------------------
Ran 8 tests in 0.096s

OK

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

Александър обнови решението на 24.10.2022 18:49 (преди над 1 година)

+starting_colors = {
+ 'C0FFC0' : (-1,0),
+ '00C000' : (1,0),
+ 'FFFFC0' : (0,-1),
+ 'C0C000' : (0,1),
+ 'FFC0C0' : (1,0),
+ 'C00000' : (-1,0),
+ 'C0C0FF' : (0,1),
+ '0000C0' : (0,-1),
+ 'FFFFFF' : (0,0),
+ '000000' : (100,100),

100, 100 е доста случаен начин за проверка на финални координати. Ами ако това са реални координати за стъпка, които функцията ти в някакъв момент ще получи (промяна на изискванията)?

+}
+
+def calculate_final_vector(starting_coordinates, colors):
+ colors = [x.upper() for x in colors]
+ for i in colors:
+ if starting_colors[i] == (100,100):
+ return starting_coordinates
+ else:
+ c = tuple(x+y for x, y in zip(starting_coordinates, starting_colors[i]))

c не носи много информация за съдържанието на променливата. Бих използвал нещо по-описателно. Като цяло еднобуквените променливи са излишни - нищо не печелиш, само губиш. По-подробно име винаги е по-добре.

+ starting_coordinates = c
+ return starting_coordinates