Annettuna on ruudukko, jossa jokainen ruutu on lattiaruutu tai seinäruutu. Merkki .
tarkoittaa lattiaruutua ja merkki #
tarkoittaa seinäruutua. Kaikki reunaruudut ovat seinäruutuja. Ruudukossa on myös yksi alkuruutu (A
) ja yksi loppuruutu (B
).
Tehtäväsi on etsiä lyhimmän reitin pituus alkuruudusta loppuruutuun. Reitin pituus on askelten määrä reitillä. Voit liikkua lattiaruutuja pitkin vaaka- ja pystysuunnassa.
Toteuta tiedostoon labyrinth.py
funktio find_route
, jolle annetaan ruudukko listana merkkijonoja. Funktion tulee palauttaa lyhimmän reitin pituus tai None
, jos mitään reittiä ei ole olemassa.
def find_route(grid): # TODO if __name__ == "__main__": grid = ["########", "#.#.B..#", "#A#.##.#", "#......#", "########"] print(find_route(grid)) # 6 grid = ["########", "#B#...A#", "#.#.##.#", "#......#", "########"] print(find_route(grid)) # 9 grid = ["########", "####..B#", "#.A#.#.#", "#..#...#", "########"] print(find_route(grid)) # None