Мариян обнови решението на 23.10.2022 15:17 (преди около 2 години)
+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]
Можеш да unpack-неш:
x, y = vector
+ y = vector[1]
+
+ for colour in colour_path:
+ colour = colour.lower()
+ if colour == Colour.light_green or colour == Colour.dark_red:
При подобна проверка можеш да използваш in
:
if colour in (Colour.light_green, 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)
Можеш да пропуснеш скобите.
Не най-удачното използване на
class
, но разбирам идеята. За подобна имплементация бих използвал Enum, поне да е ясно, че това е просто един вид namespace, а не рандом клас, който бих инстанцитал, но имайки предвид, че това не е тема, по която сме говорили, съм напълно съгласен с избора ти. Просто давам съвет как да го направиш по-ясно и за останалите "читатели".Можеш да unpack-неш:
x, y = vector
При подобна проверка можеш да използваш
in
:if colour in (Colour.light_green, Colour.dark_red):
Можеш да пропуснеш скобите.