Решение на Навигация на Piet от Велислава Крумова

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

Към профила на Велислава Крумова

Резултати

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

Код

move_dict = {"00C000": [1, 0], "C0FFC0": [-1, 0], "C00000": [-1, 0], "FFFFFF": [0, 0], "C0C000": [0, 1],
"FFFFC0": [0, -1], "FFC0C0": [1, 0], "C0C0FF": [0, 1], "0000C0": [0, -1]}
def calculate_final_vector(coord_tuple, hex_list):
coord_list = []
coord_list.append(coord_tuple[0])
coord_list.append(coord_tuple[1])
for code in hex_list:
if code.upper() == '000000':
print(tuple(coord_list))
break
else:
for key in move_dict:

Това итериране през речник е ненужно. Ползваш го на практика като list. "Индексирането" в речник става по ключ, без да итерираш през всички ключове.

if code.upper() == key:
new_coord = move_dict.get(code.upper())
coord_list[0] += new_coord[0]
coord_list[1] += new_coord[1]
break
return(tuple(coord_list))

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

........
----------------------------------------------------------------------
Ran 8 tests in 0.090s

OK

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

Велислава обнови решението на 20.10.2022 16:39 (преди над 1 година)

+move_dict = {"00C000": [1, 0], "C0FFC0": [-1, 0], "C00000": [-1, 0], "FFFFFF": [0, 0], "C0C000": [0, 1],
+ "FFFFC0": [0, -1], "FFC0C0": [1, 0], "C0C0FF": [0, 1], "0000C0": [0, -1]}
+
+
+def calculate_final_vector(coord_tuple, hex_list):
+ coord_list = []
+ coord_list.append(coord_tuple[0])
+ coord_list.append(coord_tuple[1])
+ for code in hex_list:
+ if code.upper() == '000000':
+ print(tuple(coord_list))
+ break
+ else:
+ for key in move_dict:

Това итериране през речник е ненужно. Ползваш го на практика като list. "Индексирането" в речник става по ключ, без да итерираш през всички ключове.

+ if code.upper() == key:
+ new_coord = move_dict.get(code.upper())
+ coord_list[0] += new_coord[0]
+ coord_list[1] += new_coord[1]
+ break
+ print(tuple(coord_list))

Велислава обнови решението на 24.10.2022 19:48 (преди над 1 година)

move_dict = {"00C000": [1, 0], "C0FFC0": [-1, 0], "C00000": [-1, 0], "FFFFFF": [0, 0], "C0C000": [0, 1],
"FFFFC0": [0, -1], "FFC0C0": [1, 0], "C0C0FF": [0, 1], "0000C0": [0, -1]}
def calculate_final_vector(coord_tuple, hex_list):
coord_list = []
coord_list.append(coord_tuple[0])
coord_list.append(coord_tuple[1])
for code in hex_list:
if code.upper() == '000000':
print(tuple(coord_list))
break
else:
for key in move_dict:
if code.upper() == key:
new_coord = move_dict.get(code.upper())
coord_list[0] += new_coord[0]
coord_list[1] += new_coord[1]
break
- print(tuple(coord_list))
+ return(tuple(coord_list))