diff options
author | Olivier Gayot <olivier.gayot@sigexec.com> | 2021-11-12 18:25:20 +0100 |
---|---|---|
committer | Olivier Gayot <olivier.gayot@sigexec.com> | 2021-11-12 18:29:29 +0100 |
commit | f9666c85abb56b8fd1ce8b7574066543148c8316 (patch) | |
tree | 8b9c16cd722b561ccad7c751ac8bd0b6391418f0 /cameltris/playfield.py | |
parent | 71ff729b4d42a28d300c62ac4b436d8143e6a8cc (diff) |
Move playfield outside the Player class
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
Diffstat (limited to 'cameltris/playfield.py')
-rw-r--r-- | cameltris/playfield.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cameltris/playfield.py b/cameltris/playfield.py new file mode 100644 index 0000000..d1f4e9d --- /dev/null +++ b/cameltris/playfield.py @@ -0,0 +1,17 @@ +class PlayField: + def __init__(self): + self.grid = [[None for _ in range(10)] for _ in range(20)] + + def burn_rows(self) -> int: + """ Burn rows that can be filled and return how many of them were burnt """ + rows_to_burn = [] + + for row in self.grid: + if all(map(lambda element: element is not None, row)): + rows_to_burn.append(row) + + for row in rows_to_burn: + self.grid.insert(0, [None for _ in range(10)]) + self.grid.remove(row) + + return len(rows_to_burn) |