Tarkastellaan -ruudukkoa, jonka jokainen ruutu on aluksi seinäruutu. Rivit ja sarakkeet on numeroitu . Ruudukosta aletaan poistaa seinää muuttamalla seinäruutuja lattiaruuduiksi.
Tehtäväsi on pitää kirjaa huoneiden määrästä tässä prosessissa. Huoneissa lattiaruutuja voi kulkea vaaka- ja pystysuuntaisesti, kuten aiemmissa kurssin tehtävissä.
Toteuta tiedostoon wallgrid.py
luokka WallGrid
, jossa on seuraavat metodit:
create_floor
muuttaa ruudun lattiaksi, mikäli se ei jo ole lattiaacount_rooms
ilmoittaa, montako huonetta ruudukossa on
Metodien tulee toimia tehokkaasti myös suurella ruudukolla.
class WallGrid: def __init__(self, n): # TODO def create_floor(self, x, y): # TODO def count_rooms(self): # TODO if __name__ == "__main__": wall_grid = WallGrid(5) print(wall_grid.count_rooms()) # 0 wall_grid.create_floor(2, 2) wall_grid.create_floor(4, 2) print(wall_grid.count_rooms()) # 2 wall_grid.create_floor(3, 2) print(wall_grid.count_rooms()) # 1 wall_grid.create_floor(2, 4) wall_grid.create_floor(2, 4) wall_grid.create_floor(4, 4) print(wall_grid.count_rooms()) # 3 wall_grid.create_floor(3, 3) print(wall_grid.count_rooms()) # 3 wall_grid.create_floor(3, 4) print(wall_grid.count_rooms()) # 1