diff --git a/HNC/Exercises/Ship_Battle/main.py b/HNC/Exercises/Ship_Battle/main.py index 16a7c45..b9f93b0 100644 --- a/HNC/Exercises/Ship_Battle/main.py +++ b/HNC/Exercises/Ship_Battle/main.py @@ -2,8 +2,7 @@ from tkinter import * from enum import Enum field_size = 10 -ship_size = 4 -ship_direction = 0 +ship_size = [] buttons = [] @@ -100,21 +99,15 @@ def check_possible(field, row, col): if ship_direction == 0: if field_size - row >= ship_size: - # Здесь мы знаем, что корабль помещается на поле. - # Теперь нужно проверить, не заблокировано ли какое-то из полей, - # на которые мы хотим поставить корабль. - # Для этого, все поля, на которые мы его поставили бы исходя из координат row, col - # нужно проверить с помощью вызова метода check_blocked(...) - return True + for r in range(col, col + ship_size): + if check_blocked(field, row, col): + return True if ship_direction == 1: if field_size - col >= ship_size: - # Здесь мы знаем, что корабль помещается на поле. - # Теперь нужно проверить, не заблокировано ли какое-то из полей, - # на которые мы хотим поставить корабль. - # Для этого, все поля, на которые мы его поставили бы исходя из координат row, col - # нужно проверить с помощью вызова метода check_blocked(...) - return True + for c in range(row, row + ship_size): + if check_blocked(field, row, col): + return True return False @@ -128,7 +121,7 @@ def check_blocked(field, row, col): if 0 < r < field_size and 0 < c < field_size: if (field[r * field_size + c]).strip() != '': return False - + return True @@ -137,6 +130,7 @@ def button_click(field, row, col): colorize(field, buttons) + window = Tk() window.title("Ship Craft!") window.geometry('450x410') @@ -144,18 +138,28 @@ window.geometry('450x410') set_ship(1, 1, 4, 1) set_ship(0, 6, 3, 0) set_ship(7, 3, 1, 0) +set_ship(9, 9, 1, 0) +set_ship(5, 8, 3, 0) draw_field(window, my_field) colorize(my_field, buttons) #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] + ', ' +# 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]) + # print(blocked_string[:-2] + ' ' + 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]) \ No newline at end of file