From c435561be94c31814936a714f1b99a3af81e8079 Mon Sep 17 00:00:00 2001 From: eduard ermakov Date: Sun, 14 Jul 2024 23:23:44 +0300 Subject: [PATCH] added check_killded --- .../ShipCraft/Переделка/ShipField.py | 55 ++++++++++++++++++ .../__pycache__/ShipField.cpython-39.pyc | Bin 7193 -> 8156 bytes 2 files changed, 55 insertions(+) diff --git a/HNS/Excercises/ShipCraft/Переделка/ShipField.py b/HNS/Excercises/ShipCraft/Переделка/ShipField.py index 373cbe1..5c52ae4 100644 --- a/HNS/Excercises/ShipCraft/Переделка/ShipField.py +++ b/HNS/Excercises/ShipCraft/Переделка/ShipField.py @@ -44,6 +44,48 @@ class ShipField: return None + def check_killed(self, row, col): + if row < 0 or row > ShipField.field_size: + return + if col < 0 or col > ShipField.field_size: + return + + ship_killed = True + ship_direction = ShipDirection.UNKNOWN + + #check vertical + for r in range(row + 1, ShipField.field_size): + if self.check_ship(r, col): + return False + + elif self.check_empty(r, col): + break + + for r in range(row - 1, -1, -1): + if self.check_ship(r, col): + return False + + elif self.check_empty(r, col): + break + + # проверим горизонталь + for c in range(col + 1, ShipField.field_size): + if self.check_ship(row, c): + ship_direction = ShipDirection.HORIZONTAL + else: + break + + for c in range(col + 1, ShipField.field_size): + if self.check_ship(row, c): + return False + + elif self.check_empty(row, c): + break + return True + + def fill_empty_killed(self, row, col): + pass + def action(self, row, col): self.clear_marker() @@ -56,6 +98,10 @@ class ShipField: elif self.field_mode == ShipMode.SHOOT: shoot_result = self.shoot(row, col) + + if shoot_result == ShootResult.KILLED: + self.fill_empty_killed(row, col) + return shoot_result == ShootResult.UNDEFINED return False @@ -176,6 +222,8 @@ class ShipField: return ShootResult.EMPTY elif (self.field[index]).strip() == "1": self.field[index] = "\\" + if self.check_killed(row, col): + return ShootResult.KILLED return ShootResult.DAMAGED else: return ShootResult.UNDEFINED @@ -185,6 +233,13 @@ class ShipField: # в противном случае фолс return self.field[row * ShipField.field_size + col].strip() == "1" + def check_damaged(self, row, col): + return self.field[row * ShipField.field_size + col].strip() == "\\" + + def check_empty(self, row, col): + cell = self.field[row * ShipField.field_size + col].strip() + return cell == "0" or cell == "" + def check_end(self): return "1" not in self.field diff --git a/HNS/Excercises/ShipCraft/Переделка/__pycache__/ShipField.cpython-39.pyc b/HNS/Excercises/ShipCraft/Переделка/__pycache__/ShipField.cpython-39.pyc index 380112039083664a109336e064a01307d77b961d..3d066aa40467cb459a60bf147a048d4636144dd4 100644 GIT binary patch delta 2308 zcmZ`)O>7fK6rQ*1U5_0*iH&1B4xok~!v;tKw1o20@{_py1gDVD3M*BVdQIcRapJK> z+teYHa6lERK*Oay6p&D*NL4RU>EE?ndg!H94=bu(IM4%?D)m5VtM*)*`9ue8goID0#+)PQtrAqvklvr)mN;$zGB^ZT=#M5Jg(Ew-^`N3 z)zhYO2vrjueurUsr#+=RX#PX#&Vu=pb=z|5t4#d0%#pjpePCCi)L6Q2YnZs17Jzjd z5Os*DU;e?L#f340Z;tA;6A6=#>oA%|KW+|&D zKa!~whjEl=Jcu^yXLFENG0o{J4Y3LJVl%<=a537@Sxjh1rN5BdE3}b@z+kFnDS#Dr z|A~V9;_$j*T$R6?ojb2o*(h>g)O(HzlyCAXDDsi)b7f$~-Dm;G4*!@YuE>+#$U1Qm z4eFm5RP{<=v|$Vn-3B~(EuFF&Wy!n75F5~^{Lp)-(>#8(x3{NTw4=iDolbZ6q>iS0 zx-Cyl?wLS&WMZN+B(Ei+Npm<`$xjr|;F@wAfdR(@2|&FT$AOaO$1&f!MW*V#Gw{7B!r>gIxtI4~-myask_Raz@WQnhz(63NO zN+8uO?%oA%loYQ6o#FsKAH!hAJgyqns#_K~ky~`h)=>1A*h2Qkq{tU5Vi(F8Z}-6y z2VZ&$dqg)aTRapIrPt>We#B8;DI0~p^VFXEG1Q7}^2VwdJdlZS zt31%yJVR}XX|pO+U{s5+sup9-?52K;P3u+NhB0k2iBFAsz|zy=2yLRyC5_SwmOGwo zu285AbR(KR#8IY_Gl;`f(?W08FWxTd7LZj)#OR}B0|j*sn@*g-R|`Zyz7UJo`4(=> zqWznEKm2f?qS_+2oS-}XdSN0vh8Lw``d(aL8xS?k@AIFpGGI{ULaa^=Scc1^rB+ca zqqbTtRugSxdKKZ}ak z!pfSiN@7vkwap-lv9fETyPH#?-J7CcK8mf=+Ci?4--G?~kNCiL(Mz-HYEXT%lvE)2*Ei7q%SzesdIi+qsS2(7ZdC2rF-D0UO< zBTzRMb+n+qQ;bztryxp*mkH=BT%S}aK{<=l1oSNs7%g5Z<@zjo0g4J3o%?+NqOFGl%^5E{YmRIjUyzhRb;%I#dAAd{hwXhgqz^?gVeg-lEUSG(G*$d6 zWQsMM4af24Q0n?>OIq%r6@T#IXvts7o*nXSA=L*dLNw)Nz3O|yzUMuqr8JFY zvntO?wxASpK4(Q-qg-=JuyCaWRR8=7R*IcE%Qo~>Mq4WsFH(~^m&}2gxA|fYgvDF?7zbvl10-lJ2RwoQl%ytgg!=HN@ zx)~IPE&^ADQvI?6oxEW(7z`@A^u>x(vlkkbHOJLY&0IKLoXHm^&%!V{H&kF6U@;tE zI7HyeqKrQo2{D0x7!PAFZtY8uCEE(X2!3OZssr>6HRr7Oyg{+zrm>r}Hy! z<-tob$Va#tFox6Jucfv!`9wT&T;0=TFOa#4_qrQ8-}MHq#>Y6`)0+OsX2k?r$}x#F z5u9UGNC6TlAeaZiS1>bRj;-F1Dk;OpSsnwvD4|x!0>lDE+68@0a`Oh~Q#oL?rQMW=M?UgG{pc5+5I6VCe%(5?Br1Y~dtZ+;uL;wH)