Labyrintissa on kahdenlaisia seinäruutuja: merkki #
on reunalla oleva seinä ja merkki *
on sisällä oleva seinä.
Voit rikkoa sisällä olevaa seinää, jolloin pystyt kulkemaan vapaammin labyrintissa.
Tehtäväsi on etsiä reitti ruudusta A
ruutuun B
. Voit liikkua joka askeleella viereiseen ruutuun vaaka- tai pystysuunnassa. Mikä on pienin mahdollinen määrä seinäruutuja, jotka sinun täytyy rikkoa?
Toteuta tiedostoon breakwall.py
funktio find_route
, joka kertoo pienimmän rikottavien seinäruutujen määrän.
def find_route(grid): # TODO if __name__ == "__main__": grid = ["########", "#*A*...#", "#.*****#", "#.**.**#", "#.*****#", "#..*.B.#", "########"] print(find_route(grid)) # 2
Tässä tapauksessa voit liikkua askeleen vasemmalle, neljä askelta alaspäin sekä neljä askelta oikealle. Tämä reitti vaatii, että rikot kaksi seinäruutua.