Skip to content

Commit 9448702

Browse files
Connect4: improve layout
1 parent 89afe98 commit 9448702

File tree

1 file changed

+21
-16
lines changed
  • internal_filesystem/apps/com.micropythonos.connect4/assets

1 file changed

+21
-16
lines changed

internal_filesystem/apps/com.micropythonos.connect4/assets/connect4.py

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ class Connect4(Activity):
1515
COLS = 7
1616
ROWS = 6
1717

18-
# Screen layout
18+
# Screen layout (dynamically set in onCreate)
1919
SCREEN_WIDTH = 320
2020
SCREEN_HEIGHT = 240
21-
BOARD_TOP = 50
22-
CELL_SIZE = 35
23-
PIECE_RADIUS = 14
21+
BOARD_TOP = 40
22+
CELL_SIZE = 30
23+
PIECE_RADIUS = 12
2424

2525
# Colors
2626
COLOR_EMPTY = 0x2C3E50
@@ -64,17 +64,22 @@ def onCreate(self):
6464
self.screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
6565
self.screen.remove_flag(lv.obj.FLAG.SCROLLABLE)
6666

67-
# Title
68-
title = lv.label(self.screen)
69-
title.set_text("Connect 4")
70-
title.set_style_text_font(lv.font_montserrat_20, 0)
71-
title.set_style_text_color(lv.color_hex(0xFFFFFF), 0)
72-
title.set_pos(10, 5)
67+
# Get dynamic screen resolution
68+
d = lv.display_get_default()
69+
self.SCREEN_WIDTH = d.get_horizontal_resolution()
70+
self.SCREEN_HEIGHT = d.get_vertical_resolution()
7371

74-
# Difficulty selector
72+
# Calculate scaling based on available space
73+
available_height = self.SCREEN_HEIGHT - 75 # Leave space for controls
74+
max_cell_size = min(available_height // self.ROWS, (self.SCREEN_WIDTH - 20) // self.COLS)
75+
self.CELL_SIZE = max_cell_size
76+
self.PIECE_RADIUS = int(self.CELL_SIZE * 0.4)
77+
self.BOARD_TOP = 35
78+
79+
# Difficulty selector (top left)
7580
difficulty_cont = lv.obj(self.screen)
76-
difficulty_cont.set_size(150, 30)
77-
difficulty_cont.set_pos(165, 5)
81+
difficulty_cont.set_size(145, 28)
82+
difficulty_cont.set_pos(5, 3)
7883
difficulty_cont.set_style_bg_color(lv.color_hex(0x2C3E50), 0)
7984
difficulty_cont.set_style_border_width(1, 0)
8085
difficulty_cont.set_style_border_color(lv.color_hex(0xFFFFFF), 0)
@@ -88,12 +93,12 @@ def onCreate(self):
8893
self.difficulty_label.set_style_text_color(lv.color_hex(0xFFFFFF), 0)
8994
self.difficulty_label.center()
9095

91-
# Status label
96+
# Status label (top right)
9297
self.status_label = lv.label(self.screen)
9398
self.status_label.set_text("Your turn!")
94-
self.status_label.set_style_text_font(lv.font_montserrat_14, 0)
99+
self.status_label.set_style_text_font(lv.font_montserrat_12, 0)
95100
self.status_label.set_style_text_color(lv.color_hex(0xFFFFFF), 0)
96-
self.status_label.set_pos(10, 32)
101+
self.status_label.set_pos(self.SCREEN_WIDTH - 95, 10)
97102

98103
# Create board background
99104
board_bg = lv.obj(self.screen)

0 commit comments

Comments
 (0)