Skip to content

Commit 903731f

Browse files
committed
adding TetrisTwoBlockApp
1 parent 2f67a87 commit 903731f

3 files changed

Lines changed: 48 additions & 27 deletions

File tree

dumbdisplay_examples/tetris/tetris_common.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,25 @@ def _draw_grid(grid: Grid, pen: LayerTurtle):
6363
color_number = grid.get_value(y, x)
6464
_draw(x, y, color_number, pen)
6565

66+
def _check_can_place_block_grid(block_grid: Grid, block_grid_x_off: int, block_grid_y_offset: int, grid: Grid) -> bool:
67+
for y in range(block_grid.n_rows):
68+
for x in range(block_grid.n_cols):
69+
if block_grid.get_value(y, x) != 0:
70+
row_idx = y + block_grid_y_offset
71+
col_idx = x + block_grid_x_off
72+
if row_idx < 0 or row_idx >= grid.n_rows:
73+
return True
74+
if col_idx < 0 or col_idx >= grid.n_cols:
75+
return True
76+
if grid.get_value(row_idx, col_idx) != 0:
77+
return True
78+
return False
79+
80+
81+
def _commit_block_grid(block_grid: Grid, block_grid_x_off: int, block_grid_y_offset: int, grid: Grid):
82+
for y in range(block_grid.n_rows):
83+
for x in range(block_grid.n_cols):
84+
color = block_grid.get_value(y, x)
85+
if color != 0:
86+
grid.set_value(y + block_grid_y_offset, x + block_grid_x_off, color)
6687

dumbdisplay_examples/tetris/tetris_one_block.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def _create_grid() -> Grid:
157157

158158

159159

160-
class Block:
160+
class OneBlock:
161161
def __init__(self, x: int, y: int, block_pen: LayerTurtle):
162162
# self.x = _INIT_BLOCK_X
163163
# self.y = 0
@@ -242,7 +242,7 @@ class Shape:
242242
def __init__(self, pen: LayerTurtle, block_pen: LayerTurtle):
243243
self.grid = _create_grid()
244244
self.score_count = 0
245-
self.block: Block = None
245+
self.block: OneBlock = None
246246
self.pen = pen
247247
self.block_pen = block_pen
248248
if not self.reset_block():
@@ -260,7 +260,7 @@ def reset_block(self) -> bool:
260260
if self.grid.get_value(y, x) != 0:
261261
#self.sync_image()
262262
return False
263-
self.block = Block(x, y, self.block_pen)
263+
self.block = OneBlock(x, y, self.block_pen)
264264
self.sync_image()
265265
return True
266266

dumbdisplay_examples/tetris/tetris_two_block.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from dumbdisplay.layer_turtle import LayerTurtle
1111
from dumbdisplay.layer_lcd import LayerLcd
1212
from dumbdisplay_examples.tetris.tetris_common import Grid, _colors, _grid_n_rows, _grid_n_cols, _block_unit_width, \
13-
_width, _height, _left, _top, _draw_grid
13+
_width, _height, _left, _top, _draw_grid, _check_can_place_block_grid, _commit_block_grid
1414

1515
from dumbdisplay_examples.utils import DDAppBase, create_example_wifi_dd
1616

@@ -97,27 +97,27 @@ def _randomize_grid() -> Grid:
9797
grid_cells.append(grid_row)
9898
return Grid(grid_cells=grid_cells)
9999

100-
def _check_can_place_block_grid(block_grid: Grid, block_grid_x_off: int, block_grid_y_offset: int, grid: Grid) -> bool:
101-
for y in range(block_grid.n_rows):
102-
for x in range(block_grid.n_cols):
103-
if block_grid.get_value(y, x) != 0:
104-
row_idx = y + block_grid_y_offset
105-
col_idx = x + block_grid_x_off
106-
if row_idx < 0 or row_idx >= grid.n_rows:
107-
return True
108-
if col_idx < 0 or col_idx >= grid.n_cols:
109-
return True
110-
if grid.get_value(row_idx, col_idx) != 0:
111-
return True
112-
return False
113-
114-
115-
def _commit_block_grid(block_grid: Grid, block_grid_x_off: int, block_grid_y_offset: int, grid: Grid):
116-
for y in range(block_grid.n_rows):
117-
for x in range(block_grid.n_cols):
118-
color = block_grid.get_value(y, x)
119-
if color != 0:
120-
grid.set_value(y + block_grid_y_offset, x + block_grid_x_off, color)
100+
# def _check_can_place_block_grid(block_grid: Grid, block_grid_x_off: int, block_grid_y_offset: int, grid: Grid) -> bool:
101+
# for y in range(block_grid.n_rows):
102+
# for x in range(block_grid.n_cols):
103+
# if block_grid.get_value(y, x) != 0:
104+
# row_idx = y + block_grid_y_offset
105+
# col_idx = x + block_grid_x_off
106+
# if row_idx < 0 or row_idx >= grid.n_rows:
107+
# return True
108+
# if col_idx < 0 or col_idx >= grid.n_cols:
109+
# return True
110+
# if grid.get_value(row_idx, col_idx) != 0:
111+
# return True
112+
# return False
113+
#
114+
#
115+
# def _commit_block_grid(block_grid: Grid, block_grid_x_off: int, block_grid_y_offset: int, grid: Grid):
116+
# for y in range(block_grid.n_rows):
117+
# for x in range(block_grid.n_cols):
118+
# color = block_grid.get_value(y, x)
119+
# if color != 0:
120+
# grid.set_value(y + block_grid_y_offset, x + block_grid_x_off, color)
121121

122122

123123
# def _draw(x, y, color_number, pen: LayerTurtle):
@@ -260,7 +260,7 @@ def sync_image(self):
260260
_draw_grid(self.grid, self.pen)
261261

262262

263-
class TetrisOneBlock2App(DDAppBase):
263+
class TetrisTwoBlockApp(DDAppBase):
264264
def __init__(self, dd: DumbDisplay = create_example_wifi_dd()):
265265
super().__init__(dd)
266266
self.score: LayerTurtle = None
@@ -426,5 +426,5 @@ def moveBlockRight(self) -> bool:
426426

427427
if __name__ == "__main__":
428428
from dumbdisplay_examples.utils import create_example_wifi_dd, DDAppBase
429-
app = TetrisOneBlock2App(create_example_wifi_dd())
429+
app = TetrisTwoBlockApp(create_example_wifi_dd())
430430
app.run()

0 commit comments

Comments
 (0)