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

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

Към профила на Мариян Христов

Резултати

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

Код

class Colour:

Не най-удачното използване на class, но разбирам идеята. За подобна имплементация бих използвал Enum, поне да е ясно, че това е просто един вид namespace, а не рандом клас, който бих инстанцитал, но имайки предвид, че това не е тема, по която сме говорили, съм напълно съгласен с избора ти. Просто давам съвет как да го направиш по-ясно и за останалите "читатели".

light_green = "c0ffc0"
dark_green = "00c000"
light_yellow = "ffffc0"
dark_yellow = "c0c000"
light_red = "ffc0c0"
dark_red = "c00000"
light_blue = "c0c0ff"
dark_blue = "0000c0"
white = "ffffff"
black = "000000"
def calculate_final_vector(vector, colour_path):
x = vector[0]
y = vector[1]
for colour in colour_path:
colour = colour.lower()
if colour == Colour.light_green or colour == Colour.dark_red:
x -= 1
elif colour == Colour.dark_green or colour == Colour.light_red:
x += 1
elif colour == Colour.light_yellow or colour == Colour.dark_blue:
y -= 1
elif colour == Colour.dark_yellow or colour == Colour.light_blue:
y += 1
elif colour == Colour.black:
break
elif colour == Colour.white:
continue
return (x, y)

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

........
----------------------------------------------------------------------
Ran 8 tests in 0.103s

OK

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

Мариян обнови решението на 23.10.2022 15:17 (преди над 1 година)

+class Colour:

Не най-удачното използване на class, но разбирам идеята. За подобна имплементация бих използвал Enum, поне да е ясно, че това е просто един вид namespace, а не рандом клас, който бих инстанцитал, но имайки предвид, че това не е тема, по която сме говорили, съм напълно съгласен с избора ти. Просто давам съвет как да го направиш по-ясно и за останалите "читатели".

+ light_green = "c0ffc0"
+ dark_green = "00c000"
+ light_yellow = "ffffc0"
+ dark_yellow = "c0c000"
+ light_red = "ffc0c0"
+ dark_red = "c00000"
+ light_blue = "c0c0ff"
+ dark_blue = "0000c0"
+ white = "ffffff"
+ black = "000000"
+
+def calculate_final_vector(vector, colour_path):
+ x = vector[0]
+ y = vector[1]
+
+ for colour in colour_path:
+ colour = colour.lower()
+ if colour == Colour.light_green or colour == Colour.dark_red:
+ x -= 1
+ elif colour == Colour.dark_green or colour == Colour.light_red:
+ x += 1
+ elif colour == Colour.light_yellow or colour == Colour.dark_blue:
+ y -= 1
+ elif colour == Colour.dark_yellow or colour == Colour.light_blue:
+ y += 1
+ elif colour == Colour.black:
+ break
+ elif colour == Colour.white:
+ continue
+ return (x, y)