Skip to content

Commit f97b127

Browse files
committed
updated board_manager
1 parent a25d557 commit f97b127

5 files changed

Lines changed: 26 additions & 12 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# DumbDisplay MicroPython Library (v0.4.0)
22

33
DumbDisplay MicroPython Library -- workable with Python 3 -- is a port of the [DumbDisplay Arduino Library](https://github.com/trevorwslee/Arduino-DumbDisplay)
4-
to MicroPython / Python 3 for the [DumbDisplay Android app](https://play.google.com/store/apps/details?id=nobody.trevorlee.dumbdisplay)
4+
to Micro-Python / Python 3 for the [DumbDisplay Android app](https://play.google.com/store/apps/details?id=nobody.trevorlee.dumbdisplay)
55

66
For a video introduction, please watch the YouTube video: [Introducing DumbDisplay MicroPython Library --
77
with ESP32, Raspberry Pi Pico, and Raspberry Pi Zero](https://www.youtube.com/watch?v=KVU26FyXs5M)
@@ -26,7 +26,7 @@ Enjoy
2626

2727
# Installation
2828

29-
For MicroPython, please refer to the [above-mentioned YouTube video](https://www.youtube.com/watch?v=KVU26FyXs5M)
29+
For Micro-Python, please refer to the [above-mentioned YouTube video](https://www.youtube.com/watch?v=KVU26FyXs5M)
3030
for examples of using DumbDisplay MicroPython Library for microcontroller boards programming.
3131

3232
If your targeted is desktop / laptop, you can install the library by cloning the repository:

dumbdisplay/examples/sliding_puzzle/board_manager.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ def randomizeBoardStep(self) -> tuple[int, int, int]:
5656
self.hole_tile_col_idx = from_col_idx
5757
self.hole_tile_row_idx = from_row_idx
5858
return (to_col_idx, to_row_idx, from_tile_id)
59+
def moveTile(self, from_col_idx: int, from_row_idx: int) -> int:
60+
prev_hole_tile_id = self.board_tiles[self.hole_tile_row_idx * self.tile_count + self.hole_tile_col_idx]
61+
self.board_tiles[self.hole_tile_row_idx * self.tile_count + self.hole_tile_col_idx] = self.board_tiles[from_row_idx * self.tile_count + from_col_idx]
62+
self.board_tiles[from_row_idx * self.tile_count + from_col_idx] = prev_hole_tile_id
63+
self.hole_tile_col_idx = from_col_idx
64+
self.hole_tile_row_idx = from_row_idx
65+
return prev_hole_tile_id
5966
def checkBoardSolved(self) -> bool:
6067
for row_tile_idx in range(0, self.tile_count):
6168
for col_tile_idx in range(0, self.tile_count):

dumbdisplay/examples/sliding_puzzle/sliding_puzzle_app.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -274,11 +274,14 @@ def onBoardDragged(self, x: int, y: int) -> bool:
274274
if self.move_tile_delta >= self.tile_size / 3:
275275
tile_anchor_x = self.board_manager.hole_tile_col_idx * self.tile_size
276276
tile_anchor_y = self.board_manager.hole_tile_row_idx * self.tile_size
277-
prev_hole_tile_id = self.board_manager.board_tiles[self.board_manager.hole_tile_row_idx * self.tile_count + self.board_manager.hole_tile_col_idx]
278-
self.board_manager.board_tiles[self.board_manager.hole_tile_row_idx * self.tile_count + self.board_manager.hole_tile_col_idx] = self.board_manager.board_tiles[self.move_tile_row_idx * self.tile_count + self.move_tile_col_idx]
279-
self.board_manager.board_tiles[self.move_tile_row_idx * self.tile_count + self.move_tile_col_idx] = prev_hole_tile_id
280-
self.board_manager.hole_tile_col_idx = self.move_tile_col_idx
281-
self.board_manager.hole_tile_row_idx = self.move_tile_row_idx
277+
if True:
278+
self.board_manager.moveTile(self.move_tile_col_idx, self.move_tile_row_idx)
279+
else:
280+
prev_hole_tile_id = self.board_manager.board_tiles[self.board_manager.hole_tile_row_idx * self.tile_count + self.board_manager.hole_tile_col_idx]
281+
self.board_manager.board_tiles[self.board_manager.hole_tile_row_idx * self.tile_count + self.board_manager.hole_tile_col_idx] = self.board_manager.board_tiles[self.move_tile_row_idx * self.tile_count + self.move_tile_col_idx]
282+
self.board_manager.board_tiles[self.move_tile_row_idx * self.tile_count + self.move_tile_col_idx] = prev_hole_tile_id
283+
self.board_manager.hole_tile_col_idx = self.move_tile_col_idx
284+
self.board_manager.hole_tile_row_idx = self.move_tile_row_idx
282285
else:
283286
tile_anchor_x = self.move_tile_col_idx * self.tile_size
284287
tile_anchor_y = self.move_tile_row_idx * self.tile_size
@@ -385,15 +388,19 @@ def moveAsSuggested(self, suggested_move_from_dir: int) -> bool:
385388
if suggested_move_from_dir != -1:
386389
(from_col_idx, from_row_idx) = self.board_manager.canMoveFromDirToFromIdxes(suggested_move_from_dir)
387390
if from_col_idx >= 0 and from_col_idx < self.tile_count and from_row_idx >= 0 and from_row_idx < self.tile_count:
388-
prev_hole_tile_id = self.board_manager.board_tiles[self.board_manager.hole_tile_row_idx * self.tile_count + self.board_manager.hole_tile_col_idx]
391+
#prev_hole_tile_id = self.board_manager.board_tiles[self.board_manager.hole_tile_row_idx * self.tile_count + self.board_manager.hole_tile_col_idx]
389392
prev_hole_tile_col_idx = self.board_manager.hole_tile_col_idx
390393
prev_hole_tile_row_idx = self.board_manager.hole_tile_row_idx
391394
from_tile_id = self.board_manager.board_tiles[from_row_idx * self.tile_count + from_col_idx]
392395
from_tile_level_id = str(from_tile_id)
393-
self.board_manager.board_tiles[self.board_manager.hole_tile_row_idx * self.tile_count + self.board_manager.hole_tile_col_idx] = self.board_manager.board_tiles[from_row_idx * self.tile_count + from_col_idx]
394-
self.board_manager.board_tiles[from_row_idx * self.tile_count + from_col_idx] = prev_hole_tile_id
395-
self.board_manager.hole_tile_col_idx = from_col_idx
396-
self.board_manager.hole_tile_row_idx = from_row_idx
396+
if True:
397+
self.board_manager.moveTile(from_col_idx, from_row_idx)
398+
else:
399+
prev_hole_tile_id = self.board_manager.board_tiles[self.board_manager.hole_tile_row_idx * self.tile_count + self.board_manager.hole_tile_col_idx]
400+
self.board_manager.board_tiles[self.board_manager.hole_tile_row_idx * self.tile_count + self.board_manager.hole_tile_col_idx] = self.board_manager.board_tiles[from_row_idx * self.tile_count + from_col_idx]
401+
self.board_manager.board_tiles[from_row_idx * self.tile_count + from_col_idx] = prev_hole_tile_id
402+
self.board_manager.hole_tile_col_idx = from_col_idx
403+
self.board_manager.hole_tile_row_idx = from_row_idx
397404
self.board.switchLevel(from_tile_level_id)
398405
self.board.setLevelAnchor(prev_hole_tile_col_idx * self.tile_size, prev_hole_tile_row_idx * self.tile_size, SUGGESTED_MOVE_TILE_IN_MILLIS)
399406
time.sleep_ms(SUGGESTED_MOVE_TILE_IN_MILLIS)

screenshots/u_melody_dd.jpg

361 KB
Loading

screenshots/u_neopixeldd_dd.jpg

361 KB
Loading

0 commit comments

Comments
 (0)