diff --git a/HNC/Exercises/Ship_Battle/main.py b/HNC/Exercises/Ship_Battle/main.py index c0aa5d8..16a7c45 100644 --- a/HNC/Exercises/Ship_Battle/main.py +++ b/HNC/Exercises/Ship_Battle/main.py @@ -2,6 +2,8 @@ from tkinter import * from enum import Enum field_size = 10 +ship_size = 4 +ship_direction = 0 buttons = [] @@ -101,7 +103,7 @@ def check_possible(field, row, col): # Здесь мы знаем, что корабль помещается на поле. # Теперь нужно проверить, не заблокировано ли какое-то из полей, # на которые мы хотим поставить корабль. - # Для этого, всего поля, на которые мы его поставили бы исходя из координат row, col + # Для этого, все поля, на которые мы его поставили бы исходя из координат row, col # нужно проверить с помощью вызова метода check_blocked(...) return True @@ -110,7 +112,7 @@ def check_possible(field, row, col): # Здесь мы знаем, что корабль помещается на поле. # Теперь нужно проверить, не заблокировано ли какое-то из полей, # на которые мы хотим поставить корабль. - # Для этого, всего поля, на которые мы его поставили бы исходя из координат row, col + # Для этого, все поля, на которые мы его поставили бы исходя из координат row, col # нужно проверить с помощью вызова метода check_blocked(...) return True @@ -121,7 +123,13 @@ def check_blocked(field, row, col): # Функция возвращает True, если все клетки вокруг клетки с координатами row, col # либо находятся за пределами поля, либо в них нет корабля/они пустые # Во всех других случаях, функция возвращает False - pass + 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 (field[r * field_size + c]).strip() != '': + return False + + return True def button_click(field, row, col): @@ -129,7 +137,6 @@ def button_click(field, row, col): colorize(field, buttons) - window = Tk() window.title("Ship Craft!") window.geometry('450x410') @@ -141,4 +148,14 @@ set_ship(7, 3, 1, 0) draw_field(window, my_field) colorize(my_field, buttons) -window.mainloop() \ No newline at end of file +#window.mainloop() + +for r in range(0, field_size): + #blocked_string = '' + ship_string = '' + for c in range(0, field_size): + #blocked_string += str(check_blocked(my_field, r, c))[0] + ', ' + ship_string += my_field[r * field_size + c] + ', ' + + #print(blocked_string[:-2] + ' ' + ship_string[:-2]) + print(ship_string[:-2])