Merge remote-tracking branch 'origin/main'

This commit is contained in:
vitalii Malcov 2024-02-19 19:51:32 +01:00
parent 201f58a58f
commit 34b594ac28
2 changed files with 42 additions and 21 deletions

View File

@ -1 +1 @@
main4.py main (4).py

View File

@ -1,5 +1,7 @@
from tkinter import * from tkinter import *
from enum import Enum
field_size = 10
empty_field = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', empty_field = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
@ -38,33 +40,52 @@ step2_field = [' ', ' ', ' ', ' ', ' ', '1', ' ', ' ', ' ', ' ',
my_field = list(empty_field) my_field = list(empty_field)
enemy_field = list(empty_field) enemy_field = list(empty_field)
buttons = []
class ShootResult(Enum):
Enum = 0
Damaged = '\\'
Killed = X
Underfined = 'undefined'
def set_ship(field, row, col, size, direction): def set_ship(field, row, col, size, direction):
# size - 1, 2, 3, 4 if row < 0 or row > field_size - 1:
# direction - вниз(0), вправо(1)
if row < 0 or row > size - 1:
return return
if col < 0 or col > size - 1: if col < 0 or col > field_size - 1:
return 0 return
if direction == 0: if direction == 0:
if row + size > size - 1: if row + size > field_size - 1:
return 0 return
for i in range(row, row + size): for r in range(row, row + size):
index = i * size + col index = r * field_size + col
size[index] = '1' field[index] = '1'
if direction == 1:
if col + size > field_size - 1:
return
for c in range(col, col + size):
index = c * field_size + row
field[index] = '1'
def draw_field(window, field): def draw_field(field):
btn = Button(window, text=" ") for r in range(0, field_size):
btn.grid(column=0, row=0) for c in range(0, field_size):
btn1 = Button(window, text=" ", bg='pink') bg = 'white'
btn1.grid(column=1, row=0) if field[index] == '1':
btn2 = Button(window, text=" ") bg = 'ping'
btn2.grid(column=2, row=0) elif field[index] == '\\':
bg = 'red'
elif field[index] == '0':
bg = 'black'
btn.configupe(bg=bg)
def button_action(field, row, col):
shoot(field, row, col)
colorize(field)
window = Tk() window = Tk()
@ -72,8 +93,8 @@ window.title("Ship Craft!")
window.geometry('800x400') window.geometry('800x400')
set_ship(my_field, 1, 1, 4, 1) set_ship(my_field, 1, 1, 4, 1)
set_ship(1, 5, 3, 0)
draw_field(window, my_field)
draw_field(field_size)
window.mainloop() window.mainloop()