◂ 10 décembre 2023 ▸
Pipe Maze : Suivre parcours circulaire et compter l'intérieur
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. …
⋮
- code_part1_part2.py
- code_part2_diag.py
- code_part2_compterInterieur_replace.py
- map.png
- map_animation
- mapColor.png
- mapFilledWithGimp.png
- code_part2_compterInterieur_maths.py
- code_part2_broaden_floodfill.py
- mapBroadenAndFill.png
- map_animation_flood_fill
- code_part2_floodFillLeftSide.py
- left_right.png
- code_part2_sensCourbe.py
""" S'il s'agit uniquement de compter et non d'enregistrer les positions intérieures,
alors il suffit d'effacer sur chaque ligne les bords inutiles et de remplacer
ceux intéressants par un équivalent bord vertical | """
def get_nb_pos_interieures(grid):
nb = 0
for y,line in enumerate(grid):
line = ''.join(line)
for pattern, subs in {'-':'', 'F7':'', 'LJ':'', 'L7':'|', 'FJ':'|'}.items():
line = line.replace(pattern, subs)
outside = True
for lettre in line:
if lettre == '|':
outside = not outside
else:
if not outside:
nb += 1
return nb