from sys import exit def carica_piramide(filename: str): try: fio = open(filename, "r") except FileNotFoundError: exit(f"Attenzione! {filename} non trovato") mappa = [] for i in fio: righa = [int(c) for c in i.strip().split()] mappa.append(righa) fio.close() return mappa def lista_adiacenti(mappa: list, x: int, y: int): items = [] for a in range(max(0, x - 1), min(x + 2, len(mappa))): for b in range(max(0, y - 1), min(y + 2, len(mappa[x]))): if a == x and b == y: continue items.append(mappa[a][b]) return items def cerca_piramidi(mappa: list): somma_altezze = 0 numero_piramidi = 0 for x in range(len(mappa)): for y in range(len(mappa[x])): altezza_massima = max(lista_adiacenti(mappa, x, y)) if mappa[x][y] > altezza_massima: print(mappa[x][y], x, y) somma_altezze += mappa[x][y] numero_piramidi += 1 return somma_altezze / numero_piramidi def main(): mappa = carica_piramide("mappa.txt") media = cerca_piramidi(mappa) print(f"Altezza media: {media} m") main()