Tehtäväsi on suunnitella labyrintti, jossa lyhimmän reitin pituus ruudusta A
ruutuun B
on haluttu luku.
Labyrintin tulee täyttää samat vaatimukset kuin viikon aiemmassa tehtävässä. Lisäksi labyrintin leveys ja korkeus saa olla enintään 10 ruutua.
Toteuta tiedostoon design.py
funktio create_grid
, jolle annetaan parametrina positiivinen kokonaisluku: haluttu reitin pituus. Funktion tulee palauttaa labyrintti listana merkkijonoja.
Voit muodostaa minkä tahansa labyrintin, jossa reitin pituus on haluttu. Jos labyrinttia ei ole mahdollista muodostaa, funktion tulee palauttaa None
.
def create_grid(steps): # TODO if __name__ == "__main__": grid = create_grid(5) print("\n".join(grid)) # ######## # #.#B...# # #.#.##.# # #.....A# # ######## grid = create_grid(10) print("\n".join(grid)) # ######## # #.#A...# # #.####.# # #B.....# # #.####.# # #......# # ######## grid = create_grid(42) print(grid) # None
Yllä olevassa koodissa on esimerkit labyrinteista, joissa lyhimmän reitin pituus on 5 ja 10 askelta. Sinun ei kuitenkaan tarvitse muodostaa juuri tällaisia labyrintteja. Ei ole olemassa vaatimukset täyttävää labyrinttia, jossa lyhimmän reitin pituus on 42 askelta.