загружаю фичи с кнопками
This commit is contained in:
parent
d37cd7b41c
commit
1b6b143423
|
@ -11,14 +11,13 @@ from GameMode import GameMode
|
|||
active_view = {}
|
||||
|
||||
|
||||
def create_view(window, col_offset=0, row_offset=0):
|
||||
def create_view(window):
|
||||
field = ShipField()
|
||||
buttons = []
|
||||
view = ShipView(field, buttons)
|
||||
for r in range(0, field.field_size):
|
||||
for c in range(0, field.field_size):
|
||||
btn = Button(window, text='', width=5, height=2)
|
||||
btn.grid(column=c + col_offset, row=r + row_offset)
|
||||
btn.bind('<Button-1>', lambda e, x=r, y=c: left_button_click(view, x, y))
|
||||
btn.bind('<Button-3>', lambda e: right_button_click(view))
|
||||
btn.bind('<Enter>', lambda e, x=r, y=c: button_enter(view, x, y))
|
||||
|
@ -27,6 +26,18 @@ def create_view(window, col_offset=0, row_offset=0):
|
|||
colorize(view)
|
||||
return view
|
||||
|
||||
def show_view(view, col_offset=0, row_offset=0):
|
||||
field_size = view.ship_field.field_size
|
||||
|
||||
for r in range(0, field_size):
|
||||
for c in range(0, field_size):
|
||||
btn = view.buttons[r * field_size +c]
|
||||
btn.grid(column=c + col_offset, row=r + row_offset)
|
||||
|
||||
def hide_view(view):
|
||||
for button in view.buttons:
|
||||
button.grid_forget()
|
||||
|
||||
|
||||
def colorize(view):
|
||||
field = view.ship_field
|
||||
|
@ -137,16 +148,54 @@ def update_game_mode():
|
|||
my_view.ship_field.set_field_mode(ShipMode.INACTIVE)
|
||||
enemy_view.ship_field.set_field_mode(ShipMode.INACTIVE)
|
||||
|
||||
lbl_lower_enemy_horizontal.grid_forget()
|
||||
lbl_lower_horizontal.grid_forget()
|
||||
|
||||
savebutton.grid_forget()
|
||||
loadbutton.grid_forget()
|
||||
|
||||
hide_view(my_view)
|
||||
hide_view(enemy_view)
|
||||
|
||||
elif game_mode == GameMode.PLAN:
|
||||
my_view.ship_field.set_field_mode(ShipMode.PUT)
|
||||
enemy_view.ship_field.set_field_mode(ShipMode.INACTIVE)
|
||||
|
||||
lbl_lower_enemy_horizontal.grid(column=start_column_enemy_field, row=row_horizontal_separator, columnspan=10)
|
||||
lbl_lower_horizontal.grid(column=start_column_my_field, row=row_horizontal_separator, columnspan=10)
|
||||
|
||||
savebutton.grid(column=start_column_my_field, row=load_button_row, columnspan=4)
|
||||
loadbutton.grid(column=start_column_my_field + 6, row=load_button_row, columnspan=4)
|
||||
|
||||
show_view(my_view, start_column_my_field, start_row_my_field)
|
||||
show_view(enemy_view, start_column_enemy_field, start_row_enemy_field)
|
||||
|
||||
elif game_mode == GameMode.BATTLE:
|
||||
my_view.ship_field.set_field_mode(ShipMode.INACTIVE)
|
||||
enemy_view.ship_field.set_field_mode(ShipMode.SHOOT)
|
||||
|
||||
lbl_lower_enemy_horizontal.grid_forget()
|
||||
lbl_lower_horizontal.grid_forget()
|
||||
|
||||
savebutton.grid_forget()
|
||||
loadbutton.grid_forget()
|
||||
|
||||
show_view(my_view, start_column_my_field, start_row_my_field)
|
||||
show_view(enemy_view, start_column_enemy_field, start_row_enemy_field)
|
||||
|
||||
elif game_mode == GameMode.END:
|
||||
my_view.ship_field.set_field_mode(ShipMode.INACTIVE)
|
||||
enemy_view.ship_field.set_field_mode(ShipMode.INACTIVE)
|
||||
|
||||
lbl_lower_enemy_horizontal.grid_forget()
|
||||
lbl_lower_horizontal.grid_forget()
|
||||
|
||||
savebutton.grid_forget()
|
||||
loadbutton.grid_forget()
|
||||
|
||||
hide_view(my_view)
|
||||
hide_view(enemy_view)
|
||||
|
||||
game_mode_stringvar.set(str(game_mode))
|
||||
|
||||
|
||||
|
@ -171,8 +220,9 @@ row_horizontal_separator = start_row_my_field + ShipField.field_size
|
|||
|
||||
load_button_row = start_row_my_field + ShipField.field_size + 1
|
||||
|
||||
my_view = create_view(window, start_column_my_field, start_row_my_field)
|
||||
enemy_view = create_view(window, start_column_enemy_field, start_row_enemy_field)
|
||||
my_view = create_view(window)
|
||||
enemy_view = create_view(window)
|
||||
active_view = my_view
|
||||
|
||||
if start_column_my_field > 0:
|
||||
lbl_left_vertical = Label(window, text='', width=5, height=2)
|
||||
|
@ -186,22 +236,11 @@ if start_row_my_field > 0:
|
|||
lbl_upper_horizontal.grid(column=start_column_my_field, row=start_row_my_field - 1)
|
||||
|
||||
lbl_lower_horizontal = Label(window, text='', width=50, height=2, textvariable=my_view.remaining_ship_text)
|
||||
lbl_lower_horizontal.grid(column=start_column_my_field, row=row_horizontal_separator, columnspan=10)
|
||||
|
||||
lbl_lower_enemy_horizontal = Label(window, text='', width=50, height=2, textvariable=enemy_view.remaining_ship_text)
|
||||
lbl_lower_enemy_horizontal.grid(column=start_column_enemy_field, row=row_horizontal_separator, columnspan=10)
|
||||
|
||||
|
||||
savebutton = Button(window, text='Save', width=20, height=2, command=lambda: savebutton_click(my_view))
|
||||
savebutton.grid(column=start_column_my_field, row=load_button_row, columnspan=4)
|
||||
|
||||
loadbutton = Button(window, text='Load', width=20, height=2, command=lambda: loadbutton_click(my_view))
|
||||
loadbutton.grid(column=start_column_my_field + 6, row=load_button_row, columnspan=4)
|
||||
|
||||
savebutton_enemy = Button(window, text='Save', width=20, height=2, command=lambda: savebutton_click(enemy_view))
|
||||
savebutton_enemy.grid(column=start_column_enemy_field, row=load_button_row, columnspan=4)
|
||||
|
||||
loadbutton_enemy = Button(window, text='Load', width=20, height=2, command=lambda: loadbutton_click(enemy_view))
|
||||
loadbutton_enemy.grid(column=start_column_enemy_field + 6, row=load_button_row, columnspan=4)
|
||||
|
||||
lbl_game_mode = Label(window, text='', width=50, height=2, textvariable=game_mode_stringvar)
|
||||
lbl_game_mode.grid(column=start_column_my_field + 6, row=load_button_row + 1, columnspan=10)
|
||||
|
|
Loading…
Reference in New Issue