7.FF7777.|77.-L-77.|F-7-.L77|7F|7-|-JF77 …
J7L-||LL7L|7-J.|.|7LL-|.F7|FJ7----J-7-|L …
.77L|7-|L-L7J.L7FJ.||F|F|-F-JJ.|..|LL-L. …
""" Façon très mathématique de calculer le nombre de points intérieur
avec le Théorème de Pick qui relie l'aire au nombre de points
et avec un calcul d'aire des polygones avec la formule des lacets (déterminants) """
def get_nb_pos_interieures(grid):
pos, last_pos = starting_pos, None
nb = 0
sum_det = 0
for _ in range(len(parcours)):
last_pos, pos = pos, next(pos, last_pos)
# https://en.wikipedia.org/wiki/Shoelace_formula :
sum_det += last_pos[0]*pos[1] - last_pos[1]*pos[0]
nb += 1
area = abs(sum_det) / 2.0
# https://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_de_Pick :
return area - nb//2 + 1