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

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

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

Резултати

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

Код

# Piet
def calculate_final_vector(coords, hexes):
x1 = coords[0]
y1 = coords[1]
for hex in hexes:
hex = hex.lower()
if hex == "ffffff":
continue
elif hex == "000000":
break
elif hex == "c0ffc0" or hex == "c00000":
x1 -= 1
elif hex == "00c000" or hex == "ffc0c0":
x1 += 1
elif hex == "c0c000" or hex == "c0c0ff":
y1 += 1
elif hex == "ffffc0" or hex == "0000c0":
y1 -= 1
else:
print("I should not be here")
return (x1, y1)

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

........
----------------------------------------------------------------------
Ran 8 tests in 0.081s

OK

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

Йоан обнови решението на 21.10.2022 23:24 (преди над 1 година)

+#Piet
+def calculate_final_vector(coords, *argv):
+ x1 = coords[0]
+ y1 = coords[1]
+ for list in argv:
+ lowerList = [hex.lower() for hex in list]
+ for hex in lowerList:
+ if hex == "ffffff":
+ continue
+ elif hex == "000000":
+ break
+ elif hex == "c0ffc0" or hex == "c00000":
+ x1 -= 1
+ elif hex == "00c000" or hex == "ffc0c0":
+ x1 += 1
+ elif hex == "c0c000" or hex == "c0c0ff":
+ y1 += 1
+ elif hex == "ffffc0" or hex == "0000c0":
+ y1 -= 1
+ else:
+ print("I should not be here")
+ return (x1, y1)

Съветвам те да прочетеш как се именоват променливи в Python и да преименуваш camelCase променливата си.

*argv е излишно, очакваш 1 списък като входни данни, не множество такива. Doesn't do any harm, но създава грешно впечатлениее.

Arguably най-важното - гледай да не override-ваш builtin имена. list е лошо име за променлива!

Йоан обнови решението на 24.10.2022 13:33 (преди над 1 година)

-#Piet
-def calculate_final_vector(coords, *argv):
+# Piet
+def calculate_final_vector(coords, hexes):
x1 = coords[0]
y1 = coords[1]
- for list in argv:
- lowerList = [hex.lower() for hex in list]
+
- for hex in lowerList:
+ for hex in hexes:
- if hex == "ffffff":
+ hex = hex.lower()
- continue
+ if hex == "ffffff":
- elif hex == "000000":
+ continue
- break
+ elif hex == "000000":
- elif hex == "c0ffc0" or hex == "c00000":
+ break
- x1 -= 1
+ elif hex == "c0ffc0" or hex == "c00000":
- elif hex == "00c000" or hex == "ffc0c0":
+ x1 -= 1
- x1 += 1
+ elif hex == "00c000" or hex == "ffc0c0":
- elif hex == "c0c000" or hex == "c0c0ff":
+ x1 += 1
- y1 += 1
+ elif hex == "c0c000" or hex == "c0c0ff":
- elif hex == "ffffc0" or hex == "0000c0":
+ y1 += 1
- y1 -= 1
+ elif hex == "ffffc0" or hex == "0000c0":
- else:
+ y1 -= 1
- print("I should not be here")
+ else:
- return (x1, y1)
+ print("I should not be here")
+ return (x1, y1)