From fefb73a2abefb0985038ce208bde5aaaec11048a Mon Sep 17 00:00:00 2001 From: ehermakov Date: Sun, 12 Nov 2023 21:09:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B6=D0=B0?= =?UTF-8?q?=D1=8E=20=D0=BC=D0=BE=D1=80=D1=81=D0=BA=D0=BE=D0=B9=20=D0=B1?= =?UTF-8?q?=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 6148 -> 6148 bytes HNS/.DS_Store | Bin 6148 -> 6148 bytes HNS/Excercises/.DS_Store | Bin 6148 -> 8196 bytes HNS/Excercises/ShipCraft/main.py | 105 +++++++++++++++++++++++++++++++ 4 files changed, 105 insertions(+) create mode 100644 HNS/Excercises/ShipCraft/main.py diff --git a/.DS_Store b/.DS_Store index 4b6330a9d200af808af5d91b75e9410bc964ae08..48edf8569e018772f0e80cb6335f321a88729717 100644 GIT binary patch delta 166 zcmZoMXfc=|#>B!ku~2NHo}wr_0|Nsi1A_oVQh9MfQcivnkiTPdA@g!(UXTVN(+w1w#vqS{;RIOCtjv1rt-F$={faMd7N-f{XHU^7GO`hEC>Tx{gi9 m=5I`zOqC0NV7Oc{0CB)qu~2NHo}w@-0|Nsi1A_oVesWSyeiD!;u(5C@BO~kNFD%!EjZAbD zjEqfcbrh;CjSO@YOpMJo-(%He+Su@dX)`+qKL^mD&4L`?nJ4p$IC20rgUn*t93irX F82~8s7;*pr diff --git a/HNS/.DS_Store b/HNS/.DS_Store index 7391456f1e30fd988a35e744ce894c1517e2b582..875fa235c4472c7e77f00c8b530d0b252a22fcbf 100644 GIT binary patch delta 32 ncmZoMXffDulS$arL`T8U!lG73q1w{OKu5vE)M)b?CJ9jhod*c< delta 32 ncmZoMXffDulS$afL`T8M*rZlRq1w{OKu5vE*lhC~CJ9jhoHhvP diff --git a/HNS/Excercises/.DS_Store b/HNS/Excercises/.DS_Store index 5794bfea7e0592c33b2ce14383f2f80fe57a57c6..f9f9bb959b728110b7c5a5553cf11a208875d925 100644 GIT binary patch delta 463 zcmZoMXmOBWU|?W$DortDU;r^WfEYvza8E20o2aMA$g?qEH}hr%jz7$c**Q2SHn1@A zZ02D($}G&u5X_LlkjYTM;LK3OkjRk6P%@c?wNcpASVzIo!lG73q1w{OKu5vE)M)Yy zR^xgs>T}W!gOl@f3xM{)02Wob`7SO=Ir&LIB^(zx8$K*(IO+&wV^x`gQ>6o{QwuVP zvAQg{C@&{JFCAzd*rX;)AvZ5HJC&ODi4#B;Jg4+jS$BmfyE$Ma0h Q#R#6qo qb8rYU162Tl05_0u1u5QG_?>w&zl field_size - 1: + return + if col < 0 or col > field_size - 1: + return + index = row * field_size + col + if direction == 0: + if field_size - row < size: + return + for r in range(row, row + size): + index = r * field_size + col + my_field[index] = '1' + if direction == 1: + if field_size - col < size: + return + for c in range(col, col + size): + index = row * field_size + c + my_field[index] = "1" + + +def shoot(field, row, col): + if row < 0 or row > field_size - 1: + return + if col < 0 or col > field_size - 1: + return + index = row * field_size + col + if field[index] == "": + field[index] = 0 + return ShootResult.EMPTY + elif field[index] == "1": + field[index] = "\\" + return ShootResult.DAMAGED + elif field[index] == "1" or field[index] == "\\" or field[index] == "x": + return ShootResult.DAMAGED + + +def draw_field(window, field): + for r in range(0, field_size): + for c in range(0, field_size): + index = r * field_size + c + bg = 'Lightgray' + if field[index] == '1': + bg = 'pink' + btn = Button(window, text='', bg=bg, width=5, height=2) + btn.grid(column=c, row=r) + buttons.append(btn) + + +def colorize(field, buttons): + bg = "grey" + for i in range(len(field)): + if i == '1': + bg = 'pink' + if i == '\\': + bg = 'red' + if i == '0': + bg = 'black' + buttons.configure(bg=bg) + + +window = Tk() +window.title("Ship Craft!") +window.geometry('450x410') +set_ship(1, 1, 4, 1) +set_ship(0, 6, 3, 0) +set_ship(9, 9, 1, 0) +set_ship(0, 0, 1, 0) +set_ship(9, 0, 1, 0) +set_ship(9, 2, 4, 1) +shoot(my_field, 9, 2) +draw_field(window, my_field) +window.mainloop()