summaryrefslogtreecommitdiff
path: root/cameltris/playfield.py
diff options
context:
space:
mode:
authorOlivier Gayot <olivier.gayot@sigexec.com>2021-11-12 18:25:20 +0100
committerOlivier Gayot <olivier.gayot@sigexec.com>2021-11-12 18:29:29 +0100
commitf9666c85abb56b8fd1ce8b7574066543148c8316 (patch)
tree8b9c16cd722b561ccad7c751ac8bd0b6391418f0 /cameltris/playfield.py
parent71ff729b4d42a28d300c62ac4b436d8143e6a8cc (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.py17
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)