Merge remote-tracking branch 'origin/main'

# Conflicts:
#	HNC/Exercises/Ship_Battle/main.py
This commit is contained in:
Artur Savitskiy 2023-11-27 19:16:34 +01:00
commit 85063e95a9
1 changed files with 27 additions and 23 deletions

View File

@ -2,8 +2,7 @@ from tkinter import *
from enum import Enum from enum import Enum
field_size = 10 field_size = 10
ship_size = 4 ship_size = []
ship_direction = 0
buttons = [] buttons = []
@ -100,21 +99,15 @@ def check_possible(field, row, col):
if ship_direction == 0: if ship_direction == 0:
if field_size - row >= ship_size: if field_size - row >= ship_size:
# Здесь мы знаем, что корабль помещается на поле. for r in range(col, col + ship_size):
# Теперь нужно проверить, не заблокировано ли какое-то из полей, if check_blocked(field, row, col):
# на которые мы хотим поставить корабль. return True
# Для этого, все поля, на которые мы его поставили бы исходя из координат row, col
# нужно проверить с помощью вызова метода check_blocked(...)
return True
if ship_direction == 1: if ship_direction == 1:
if field_size - col >= ship_size: if field_size - col >= ship_size:
# Здесь мы знаем, что корабль помещается на поле. for c in range(row, row + ship_size):
# Теперь нужно проверить, не заблокировано ли какое-то из полей, if check_blocked(field, row, col):
# на которые мы хотим поставить корабль. return True
# Для этого, все поля, на которые мы его поставили бы исходя из координат row, col
# нужно проверить с помощью вызова метода check_blocked(...)
return True
return False return False
@ -128,7 +121,7 @@ def check_blocked(field, row, col):
if 0 < r < field_size and 0 < c < field_size: if 0 < r < field_size and 0 < c < field_size:
if (field[r * field_size + c]).strip() != '': if (field[r * field_size + c]).strip() != '':
return False return False
return True return True
@ -137,6 +130,7 @@ def button_click(field, row, col):
colorize(field, buttons) colorize(field, buttons)
window = Tk() window = Tk()
window.title("Ship Craft!") window.title("Ship Craft!")
window.geometry('450x410') window.geometry('450x410')
@ -144,18 +138,28 @@ window.geometry('450x410')
set_ship(1, 1, 4, 1) set_ship(1, 1, 4, 1)
set_ship(0, 6, 3, 0) set_ship(0, 6, 3, 0)
set_ship(7, 3, 1, 0) set_ship(7, 3, 1, 0)
set_ship(9, 9, 1, 0)
set_ship(5, 8, 3, 0)
draw_field(window, my_field) draw_field(window, my_field)
colorize(my_field, buttons) colorize(my_field, buttons)
#window.mainloop() #window.mainloop()
for r in range(0, field_size): # for r in range(0, field_size):
#blocked_string = '' # blocked_string = ''
ship_string = '' # ship_string = ''
for c in range(0, field_size): # for c in range(0, field_size):
#blocked_string += str(check_blocked(my_field, r, c))[0] + ', ' # blocked_string += str(check_blocked(my_field, r, c))[0] + ', '
ship_string += my_field[r * field_size + c] + ', ' # ship_string += my_field[r * field_size + c] + ', '
#print(blocked_string[:-2] + ' ' + ship_string[:-2]) # print(blocked_string[:-2] + ' ' + ship_string[:-2])
print(ship_string[:-2])
# for r in range(0, field_size):
# blocked_string = ''
# ship_string = ''
# for c in range(0, field_size):
# blocked_string += str(check_possible(my_field, r, c))[0] + ', '
# ship_string += my_field[r * field_size + c] + ', '
# print(blocked_string[:-2] + ' ' + ship_string[:-2])