Решение на Навигация на Piet от Данаил Димитров

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

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

Резултати

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

Код

def calculate_final_vector(coordinates, colours):
x, y = coordinates
for colour in colours:
upper_colour = colour.upper()
if upper_colour in ('C0FFC0', 'C00000'):
x = x - 1
elif upper_colour in ('FFFFC0', '0000C0'):
y = y - 1
elif upper_colour in ('FFC0C0', '00C000'):
x = x + 1
elif upper_colour in ('C0C0FF', 'C0C000'):
y = y + 1
elif upper_colour == '000000':
break
elif upper_colour == 'FFFFFF':
continue
else:
raise Exception("Invalid colour")
return (x,y)

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

........
----------------------------------------------------------------------
Ran 8 tests in 0.079s

OK

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

Данаил обнови решението на 23.10.2022 21:41 (преди над 1 година)

+def calculate_final_vector(coordinates, colours):
+ if len(coordinates) != 2:
+ raise Exception("Coordinates must contain only x and y")
+
+ (x,y)=coordinates
+
+ for colour in colours:
+ if type(colour)!=str:
+ raise Exception("Please provide only strings!")
+
+ upper_colour = colour.upper()
+
+ if upper_colour in ('C0FFC0', 'C00000'):
+ x = x-1
+ elif upper_colour in ('FFFFC0', '0000C0'):
+ y = y-1
+ elif upper_colour in ('FFC0C0', '00C000'):
+ x = x+1
+ elif upper_colour in ('C0C0FF', 'C0C000'):
+ y = y+1
+ elif upper_colour == '000000':
+ break
+ elif upper_colour == 'FFFFFF':
+ continue
+ else:
+ raise Exception("Invalid colour")
+ return (x,y)

Данаил обнови решението на 24.10.2022 23:30 (преди над 1 година)

def calculate_final_vector(coordinates, colours):
- if len(coordinates) != 2:
- raise Exception("Coordinates must contain only x and y")
+ x, y = coordinates
- (x,y)=coordinates
-
for colour in colours:
- if type(colour)!=str:
- raise Exception("Please provide only strings!")
-
upper_colour = colour.upper()
if upper_colour in ('C0FFC0', 'C00000'):
x = x-1
elif upper_colour in ('FFFFC0', '0000C0'):
y = y-1
elif upper_colour in ('FFC0C0', '00C000'):
x = x+1
elif upper_colour in ('C0C0FF', 'C0C000'):
y = y+1
elif upper_colour == '000000':
break
elif upper_colour == 'FFFFFF':
continue
else:
raise Exception("Invalid colour")
return (x,y)

Данаил обнови решението на 24.10.2022 23:33 (преди над 1 година)

def calculate_final_vector(coordinates, colours):
x, y = coordinates
for colour in colours:
upper_colour = colour.upper()
if upper_colour in ('C0FFC0', 'C00000'):
- x = x-1
+ x = x - 1
elif upper_colour in ('FFFFC0', '0000C0'):
- y = y-1
+ y = y - 1
elif upper_colour in ('FFC0C0', '00C000'):
- x = x+1
+ x = x + 1
elif upper_colour in ('C0C0FF', 'C0C000'):
- y = y+1
+ y = y + 1
elif upper_colour == '000000':
break
elif upper_colour == 'FFFFFF':
continue
else:
raise Exception("Invalid colour")
return (x,y)