From dbc29e73f58ef39e7873de2d0c833fc09f70032d Mon Sep 17 00:00:00 2001 From: danii Date: Mon, 6 May 2024 18:47:26 +0200 Subject: [PATCH] Homework --- HNC/Exercises/Ship_Battle/ShipDirection.py | 2 +- HNC/Exercises/Ship_Battle/ShipField.py | 11 ++-- HNC/Exercises/Ship_Battle/ShipMode.py | 12 +++- .../__pycache__/ShipDirection.cpython-311.pyc | Bin 999 -> 939 bytes .../__pycache__/ShipField.cpython-311.pyc | Bin 13698 -> 13858 bytes .../__pycache__/ShipMode.cpython-311.pyc | Bin 492 -> 913 bytes HNC/Exercises/Ship_Battle/enemy_field.json | 1 + HNC/Exercises/Ship_Battle/main.py | 57 ++++++++++++++---- HNC/Exercises/Ship_Battle/my_field.json | 1 + test.json | 2 +- 10 files changed, 67 insertions(+), 19 deletions(-) create mode 100644 HNC/Exercises/Ship_Battle/enemy_field.json create mode 100644 HNC/Exercises/Ship_Battle/my_field.json diff --git a/HNC/Exercises/Ship_Battle/ShipDirection.py b/HNC/Exercises/Ship_Battle/ShipDirection.py index 163f2f1..77bae97 100644 --- a/HNC/Exercises/Ship_Battle/ShipDirection.py +++ b/HNC/Exercises/Ship_Battle/ShipDirection.py @@ -9,7 +9,7 @@ class ShipDirection(Enum): @staticmethod def from_string(raw_value): if raw_value: - value = raw_value.lower().capitalize() + value = raw_value.upper() if value in ShipDirection.__members__: return ShipDirection[value] return ShipDirection.UNKNOWN \ No newline at end of file diff --git a/HNC/Exercises/Ship_Battle/ShipField.py b/HNC/Exercises/Ship_Battle/ShipField.py index 3045881..180b454 100644 --- a/HNC/Exercises/Ship_Battle/ShipField.py +++ b/HNC/Exercises/Ship_Battle/ShipField.py @@ -29,9 +29,9 @@ class ShipField: self.field = obj['field'] self.ships = obj['ships'] self.field_size = obj['field_size'] - self.field_mode = obj['field_mode'] + self.field_mode = ShipMode.from_string(obj['field_mode']) self.ship_size = obj['ship_size'] - self.ship_direction = obj['ship_direction'] + self.ship_direction = ShipDirection.from_string(obj['ship_direction']) def __getitem__(self, item): @@ -82,7 +82,8 @@ class ShipField: else: - self.field[row * self.field_size + col] = "+" + self.field[row * self.field_size + col] += "+" + def clear_marker(self): for i in range(0, len(self.field)): @@ -91,7 +92,8 @@ class ShipField: if "+" in self.field[i]: self.field[i] = self.field[i].replace("+", "") - + + def set_ship(self, row, col): if row < 0 or row > self.field_size: return @@ -114,6 +116,7 @@ class ShipField: if self.ship_size in self.ships: self.ships.remove(self.ship_size) + def get_ship(self, row, col): if row < 0 or row > self.field_size: return diff --git a/HNC/Exercises/Ship_Battle/ShipMode.py b/HNC/Exercises/Ship_Battle/ShipMode.py index 5517662..42b7342 100644 --- a/HNC/Exercises/Ship_Battle/ShipMode.py +++ b/HNC/Exercises/Ship_Battle/ShipMode.py @@ -2,4 +2,14 @@ from enum import Enum class ShipMode(Enum): PUT = "PUT" - SHOOT = "SHOOT" \ No newline at end of file + SHOOT = "SHOOT" + UNKNOWN = "UNKNOWN" + + + @staticmethod + def from_string(raw_value): + if raw_value: + value = raw_value.upper() + if value in ShipMode.__members__: + return ShipMode[value] + return ShipMode.UNKNOWN \ No newline at end of file diff --git a/HNC/Exercises/Ship_Battle/__pycache__/ShipDirection.cpython-311.pyc b/HNC/Exercises/Ship_Battle/__pycache__/ShipDirection.cpython-311.pyc index 1dbdd7708495c7cf0923ca70a393dd936a418b04..10fb02d70664c3b334dd220749680ea78ae6dd19 100644 GIT binary patch delta 191 zcmaFPzM7qPIWI340}#kM7^XE(2KczG$)vic zF%*R~5{l$>^uadW$tDzdW_*7FTj&L1sx}PG(i={8l?+9KK&ps;@?oY>M#0IF%ra79AOVOd ZkoAkhCO1E&G$+-rNMf=-a|8=W1^{#+EVKXs diff --git a/HNC/Exercises/Ship_Battle/__pycache__/ShipField.cpython-311.pyc b/HNC/Exercises/Ship_Battle/__pycache__/ShipField.cpython-311.pyc index 857639c1d4ef50ef384fdc292c4294800a2dfa3e..2d51748bb8333328f8a10891b38b6eedf4614408 100644 GIT binary patch delta 1426 zcmZ{jO>7%Q6vub$-A#i(VmnS!JFa89A@SOd?b>NRnkXgxA}KV9NRUbqa*e%-UE8&p zH4vgo6`Xpg5aJ!E1X87fL@tP;y>Mt%aYG=aSTX`uR6UdvDw2bG%87Zqb^-!M)^DHR zym|kbd2ik;-6`8Xx7nWI*!b;sYW>r%Y?p-(ySmBm@V2n(t9RjqF|P0(>l(@P9uAK6 z_4C)bi~zq1o@d3*WWA?jaoj(ahzCm!fkTYPyD5fJ2f~R!0nM^btCfsWr^Txqv=`lO zga9v#XURHzERIe-^oE+=__lI)wwZXY;hk@K=Wp;gdw%x#ZoS&{NX)iB^hcZi$*;{j zvoAKME;Rg0P5+YmSS$;quC7?qCJ5Sxj+?ev=1tS4$-}g%lk6k$bP8R=Fysm!k(jyFzgj5P z&K2cyKAtPfS(>S2X-TFR)x67X-q54<%bdn_c%zy~!@+O@? z?+k;2r3>hT;ziIghAr2Dpd!~Z3X{*OkNRo?nS+(VutS%OV0a&58g2~EEbNOIHS5Qj z10C!oLnmMeMVaI8LK|(NP1WMF^WAf7S|dq%3POQ-|3U6E%&%atU@{|90^SX{yS~7Q zZ#i)KdetujQ$#w&9Fo~+Gbgj@G9rm#W`_Oc5paY&AN$hlJH^>Q^= zlJiu*))Tl+FxGX1V{m@>2zj6uhL=s#xM7OLJh#>|z%uG1 zJ8F1zmpFnfS~Ig(K#yY55J=KdvIrL>ANfVSB00%e81wNI11WBbK9A6^{1s*?CWg)~ z7hpRQB#+haB5p#$@F+S=rh$*WK>mQ0*pq>FD*dtHy;2t<4y$9Q$y4>CvF`~hdM=R- z>qXa(bP*%g5O_FEsIli-mjt8NCg4dTNM^vEoFIGZ+2l{eb_qjqbCQYrK}ww_0#s7( zXNJ%}f=DCq(NS!8y$LBc2u&dLPK%+Xi!P$IfOrj&LC6f6RjFs|#au7s+<$Xd_dorgSv~1rdkFzF#p;M@%)Pd?>7;%) z;!wI6#DxQnsAtoK8{JG1UC3PtiYp%=g4LoWAULxb5QSC+rK|bQO&=n9A-|mOeCM41 z`Civ^XGd*++ic|m|IWQ=JHc+-2BmTfA6fbD<8?eErD`TY72OnJev?AldPR0)o9q&~ zE#ZJ11sR9rpYfjD4f}9W4*BOi4O6*UPx!oe!9M5qPW?LTR=8a`*XVy1XrFEDFb2wU zlI55MudX?0)Z1QzMYZCW%3!3Mi>N|MP{jTsj2D3|LRhI}E!@p&2_m6}5XM1!vLZ(2 zFN6f%w8vr0_{W|C$HuPny%%<0(x(nwP0zR@)B237-8fRc3*2!tmZK=J4g60L*+z0T z;oX{+1`?WZriMqx`$n{!8qMak3`>t?*r>)18Bpu6R+!OtO6f$Ov#xiggQ7I@o2vcJ z5;WJvq01aT^JBDwEW$BSvszu(3Td5drHx7FxCA};zP_c(tgle`IzlHldpE~cM3{q| zPQt2A86TE(d?le)yySJkX=B=3DX!_^vqgxpB;NNWdsZuL<9?m?lTu50Q9hcmf7Re{ zK3}*&agRCv5OB~RG&24sP?CJCSedyG)!b(Ngf@;i>T;v;b8;9#*vK1;zrD;Kzqb6YRvdiWgoQWv$h)KE(Z8g#sBh z#rg>5o)2(Krw6j!#>2j1fQ$UE0ksc)|CdLH3GG1>+T zMm+iipyx^~Q#yEaRfk9~g{NXJNZ_9_KRyrE;=Nc9J{$kWUV-iKazBcNHQ>YcZD7Ij zj*IC=@;4LO37ZM#)1iyUS_yQ*%)DJ;vQmVdgdK#VgkuDiqqtTtWC|nMF|9D1SJ_GY z+|kGza>jiX@p(a(O2FQDAlx-Ctdo`ym8GpTy@V=<6rC4V5W&mwr!a)+M4cy3O7#SK k9*aM9kLA_VIc*CY$IFTRTazMq=7sNb!SsLn!K_*Ie~9ZEX8-^I diff --git a/HNC/Exercises/Ship_Battle/__pycache__/ShipMode.cpython-311.pyc b/HNC/Exercises/Ship_Battle/__pycache__/ShipMode.cpython-311.pyc index 85cfbec31700795cac133ee61541eef377eb40fd..718f11843931a6e8d3f28f9676a6b2afb4be8f12 100644 GIT binary patch literal 913 zcmZuv&1(}u6o0cH={6rt(Uj;x(o2c|`PaHx(gEe5<9x$DgLml7<|B*QwGm4Nk|0p+0q>-;R{qi_DoV2ks zcz~n>92~*`w-HBYnqx5CF?oa;dvJ*Pqw!(@XNH+rI3lfL#cMpTGcNTPTbt4>t``cM za%RikunRBkGTvfhs+Bs~poP$Z7Kr;TI6!{cE;jo_S|mI_C@$Wa@Ldpz=}e2JBA`@Q7|CjKR=Drzu3K$#X%44AwOw31d&ZVa zPej-hbgLF(1+QEQOO;yr9&>A+S1qmEtEK#VF3MiOgObvRK6S&e%7iT*cf}bQaqM%Lr}w6-)I&pS{yd-Rcy+6n>_bj#Eqf`Cc;h%{snux0_Vs zB%L`hzkcq{-#$sEkCU0Ml^Nh}u(Ou5D6P3Zr&LDqs&&?^DjuiwZPTreG9rR&#f$=_ zfQ$#B8+v7*hm|@LNeuk}F|X2d3Y2a`P{IZ)2<^$&izeHvz4-NZzBiX{uk|Akxz^WA zbFmKyr#iZOrT>9pbW~bZwX?c3I6hRNN{<>XC^l(+W<46+VMU}dp&nVVfza0pAw5{= WUL1WRPO$Z5*bh%t^zRj^VY7b-J<2%% delta 219 zcmbQp{)U-vIWI340}#ADqMsJRFp)2fixI>Hg3n?T>%?V)88lgLaRg^%7Wn3;q~2l< z2o1T#8tmckAL6IUIys6-k9{S>XOQyA%NX5si&%jyFu@FD6iWb!1~|OI#oyq3gGac* z6$FcTCjV!Wk>Unv-~kc5K;jpNO>TZlX-=wL5&vXUW>s@0Mv)H;m_$d(N08_jEK*>@ E0M9=%!T', savebutton_click) +savebutton = Button(window, text='Save', width=20, height=2, command=savebutton_click) savebutton.grid(column=0, row=11, columnspan=4) -loadbutton = Button(window, text='Load', width=20, height=2) -loadbutton.bind('', loadbutton_click) +loadbutton = Button(window, text='Load', width=20, height=2, command=loadbutton_click) loadbutton.grid(column=5, row=11, columnspan=4) +savebutton_enemy = Button(window, text='Save_enemy', width=20, height=2, command=savebutton_click_enemy) +savebutton_enemy.grid(column=11, row=11, columnspan=4) + +loadbutton_enemy = Button(window, text='Load_enemy', width=20, height=2, command=loadbutton_click_enemy) +loadbutton_enemy.grid(column=16, row=11, columnspan=4) + window.mainloop() \ No newline at end of file diff --git a/HNC/Exercises/Ship_Battle/my_field.json b/HNC/Exercises/Ship_Battle/my_field.json new file mode 100644 index 0000000..de56baf --- /dev/null +++ b/HNC/Exercises/Ship_Battle/my_field.json @@ -0,0 +1 @@ +{"my_field": {"field": ["1", "", "", "", "1", "1", "", "", "", "1", "1", "", "", "", "", "", "", "", "", "1", "1", "", "", "", "", "", "", "", "", "1", "", "", "", "", "1", "", "", "", " ", " ", "", "", "", "", "", " ", "", "", " ", "", "1", "", "", "", "", "", "", "", "", "1", "", "", "", "", " ", "", "", "", "", "1", "", "", "", "1", "", "", "1", "", "", "", "", "", "", "", "", "", " ", " ", " ", " ", "1", "1", "1", "1", "", "r", " ", " ", "1", "1"], "ships": [], "field_size": 10, "field_mode": "PUT", "ship_size": 1, "ship_direction": "VERTICAL"}} \ No newline at end of file diff --git a/test.json b/test.json index 085d319..685da40 100644 --- a/test.json +++ b/test.json @@ -1 +1 @@ -{"my_field": {"field": ["1", "", "", " ", " ", "1", "1", "1", " ", "1", " ", " ", " ", "", " ", " ", "", "", " ", "1", " ", "1", "", "", "", " ", "", "1", "", "", " ", "1", "", "", "", "", "", "", "", "", " ", "1", "", "", "", "1", "", "", "", "", " ", "1", "", "", "", "1", "", "", "", "", "", "", "", "", "", "", "", "", "1", "", "", "", "", "", "", "", "", "", "", "", "1", "", "1", "", "r", " ", " ", " ", " ", " ", "1", " ", "", " ", " ", " ", " ", "1", "1", "1"], "ships": [], "field_size": 10, "field_mode": "PUT", "ship_size": 1, "ship_direction": "VERTICAL"}} \ No newline at end of file +{"my_field": {"field": ["1", "", "", " ", " ", "1", "1", "1", " ", "1", " ", " ", " ", "", " ", " ", "", "", " ", "1", "", "1", "", "", "", " ", "", "1", "", "", "", "1", "", "", "", "", "", "", "", "", "", "1", "", "", "", "1", "", "", "", "", "", "1", "", "", "", "1", "", "", "", "", "", "", "", "", "", "", "", "", "1", "", "", "", "", "", "", "", "", "", "", "", "1", "", "1", "", "", " ", " ", " ", " ", " ", "1", " ", "", " ", " ", "", " ", "1", "1", "1"], "ships": [], "field_size": 10, "field_mode": "PUT", "ship_size": 4, "ship_direction": "VERTICAL"}} \ No newline at end of file