diff --git a/HNS/Excercises/ShipCraft/main.py b/HNS/Excercises/ShipCraft/main.py index 44cd4b1..b05d62f 100644 --- a/HNS/Excercises/ShipCraft/main.py +++ b/HNS/Excercises/ShipCraft/main.py @@ -80,6 +80,7 @@ def draw_field(window, field): btn.bind('', right_button_click) btn.bind('', lambda e, x=r, y=c: button_enter(field, x, y)) buttons.append(btn) + colorize(field, buttons) def colorize(field, buttons): @@ -98,19 +99,15 @@ def colorize(field, buttons): def keypress_handler(e): global ship_size - if 1 <= int(e.keysym) <= 4: - ship_size = int(e.keysym) - return ship_size - - -def keypress_handler_2(f): global field_mode - if f.keysym == 'm': - if field_mode == 0: - field_mode = 1 - else: - field_mode = 0 - return field_mode + if e.keysym.isnumeric(): + ship_size = int(e.keysym) + else: + if e.keysym == 'm': + if field_mode == 0: + field_mode = 1 + else: + field_mode = 0 def left_button_click(field, row, col): @@ -177,7 +174,7 @@ def check_blocked(field, row, col): # либо находятся за пределами поля, либо в них нет корабля/они пустые for r in range(row - 1, row + 2): for c in range(col - 1, col + 2): - if 0 < r < field_size and 0 < c < field_size: + if 0 <= r < field_size and 0 <= c < field_size: cell = (field[r * field_size + c]).strip() if cell != '' and cell != 'p': return False @@ -188,7 +185,6 @@ window = Tk() window.title("Ship Craft!") window.geometry('450x410') window.bind_all('', keypress_handler) -window.bind_all('', keypress_handler_2) set_ship(1, 1, 4, 1) set_ship(0, 6, 3, 0) set_ship(7, 3, 1, 0)