Ruudukossa on n \times n ruutua, joista jokainen on aluksi seinää. Rivit ja sarakkeet on numeroitu 1 \dots n. 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ä.
Voit olettaa, että n on enintään 100 ja luokan metodeita kutsutaan enintään 10000 kertaa. Lisäksi reunaruutuja ei koskaan muuteta lattiaksi.
Toteuta tiedostoon wallgrid.py
luokka WallGrid
, jossa on seuraavat metodit:
- konstruktori, jolle annetaan ruudukon koko
remove
muuttaa ruudun (x,y) lattiaksi, mikäli se ei jo ole lattiaacount
ilmoittaa, montako huonetta ruudukossa on
class WallGrid: def __init__(self,n): # TODO def remove(self,x,y): # TODO def count(self): # TODO if __name__ == "__main__": w = WallGrid(5) print(w.count()) # 0 w.remove(2,2) w.remove(4,2) print(w.count()) # 2 w.remove(3,2) print(w.count()) # 1 w.remove(2,4) w.remove(2,4) w.remove(4,4) print(w.count()) # 3 w.remove(3,3) print(w.count()) # 3 w.remove(3,4) print(w.count()) # 1