From 75c78cc9a558e6f319479ba0b62ea5f009770d7c Mon Sep 17 00:00:00 2001 From: danii Date: Mon, 29 Apr 2024 19:05:10 +0200 Subject: [PATCH] All changes from last lesson --- HNC/Exercises/Ship_Battle/ShipDirection.py | 6 +-- HNC/Exercises/Ship_Battle/ShipField.py | 12 ++++- HNC/Exercises/Ship_Battle/ShipMode.py | 4 +- .../__pycache__/ShipDirection.cpython-311.pyc | Bin 535 -> 535 bytes .../__pycache__/ShipField.cpython-311.pyc | Bin 12771 -> 13269 bytes .../__pycache__/ShipMode.cpython-311.pyc | Bin 492 -> 492 bytes HNC/Exercises/Ship_Battle/files.py | 28 ++++++++++++ HNC/Exercises/Ship_Battle/game1.json | 7 +++ HNC/Exercises/Ship_Battle/main.py | 42 +++++++++++++----- HNC/Exercises/Ship_Battle/test.json | 1 + 10 files changed, 82 insertions(+), 18 deletions(-) create mode 100644 HNC/Exercises/Ship_Battle/files.py create mode 100644 HNC/Exercises/Ship_Battle/game1.json create mode 100644 HNC/Exercises/Ship_Battle/test.json diff --git a/HNC/Exercises/Ship_Battle/ShipDirection.py b/HNC/Exercises/Ship_Battle/ShipDirection.py index 6c002f6..72f4354 100644 --- a/HNC/Exercises/Ship_Battle/ShipDirection.py +++ b/HNC/Exercises/Ship_Battle/ShipDirection.py @@ -1,6 +1,6 @@ from enum import Enum class ShipDirection(Enum): - VERTICAL = 0 - HORIZONTAL = 1 - UNKNOWN = -1 \ No newline at end of file + VERTICAL = "VERTICAL" + HORIZONTAL = "HORIZONTAL" + UNKNOWN = "UNKNOWN" \ No newline at end of file diff --git a/HNC/Exercises/Ship_Battle/ShipField.py b/HNC/Exercises/Ship_Battle/ShipField.py index 9e3790f..50a9e9a 100644 --- a/HNC/Exercises/Ship_Battle/ShipField.py +++ b/HNC/Exercises/Ship_Battle/ShipField.py @@ -1,3 +1,4 @@ +import copy from ShootResult import ShootResult from ShipMode import ShipMode from ShipDirection import ShipDirection @@ -242,4 +243,13 @@ class ShipField: blocked_string += str(self.check_blocked(r, c))[0] + ", " ship_string += self.field[r * self.field_size + c] + ', ' print(blocked_string[:-2] + ' ' + ship_string[:-2]) - print("********************************************************************") \ No newline at end of file + print("********************************************************************") + + + @staticmethod + def convert_to_json(obj): + if isinstance(obj, ShipField): + result = copy.copy(obj.__dict__) + result['field_mode'] = obj.field_mode.value + result['ship_direction'] = obj.ship_direction.value + return result \ No newline at end of file diff --git a/HNC/Exercises/Ship_Battle/ShipMode.py b/HNC/Exercises/Ship_Battle/ShipMode.py index 657f3e7..5517662 100644 --- a/HNC/Exercises/Ship_Battle/ShipMode.py +++ b/HNC/Exercises/Ship_Battle/ShipMode.py @@ -1,5 +1,5 @@ from enum import Enum class ShipMode(Enum): - PUT = 0 - SHOOT = 1 \ No newline at end of file + PUT = "PUT" + SHOOT = "SHOOT" \ 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 31f8f6e439b39b561893c7bc0aba013773caa3ab..d82802b35b45f8a9de82d66a7ef0997b9ce925e7 100644 GIT binary patch delta 208 zcmbQvGM$BYIWI340}$LhqMz0_k$1lQEsikPpb$@IN1t0<9{xd|QT~1*KsI}*pSPcX zxZlLx>ik7)Kn+FgAc6x(OlD*(^ptGyxFIOp;B|vfyulp=i+DlutU$s~llc})YF=q> z5i?AvhzG<1tKb8&esS33=BJeAq}mk;Oy13?ZYuGCfteAVnBejeB>Dx56xb*L38gX_ delta 179 zcmbQvGM$BYIWI340}zP1%B5vb=JvVL*c0OOb}IsgCw diff --git a/HNC/Exercises/Ship_Battle/__pycache__/ShipField.cpython-311.pyc b/HNC/Exercises/Ship_Battle/__pycache__/ShipField.cpython-311.pyc index 1b091d4cc9b3796513568bbb0907d748b7cd072a..c3e554da5f91b5b4cd1fcb2a6fcb832c9fe2d8f8 100644 GIT binary patch delta 939 zcmZ`$OK1~e5dLQ$Nz*h{^Jq;i5{zw{KJ`=swWXKnq0OaIGzdX=qfOW(Wp^W5BJCkU zE<(c!t)Pe^6{$k;zjzZts28D?h+#pCNKr46QZIUP{tc}Ube8@8nfbn%|1lq>Hy4{9 zxLl0{t++aH;bgGfy#MqVMhiqHGAJa@R!)Ho!~vMkD_n+)bCxeCe1?znKsa)O$YPPm zwk3{`W&G)9f;|{f5EI-Y(Cq44MB3VLmxn6)6_sVXp@z5TiJUHlv z@Cl%uuG&n_9!6e!O^iFPF1qG;$-^MM>2mWBqmTB^@Gwb3-X5D>VX9Hi=<^<<<+d>a z?$Y-M4S*G@299$;>B^yJ9K4{@9itq)qEA8zfVb2gz6S7tE_O!&KGTh!#~ge$uJ>>D zNw9l1LIm`A{I~BRED-%Su0V8-7|&Z<1vR3J#(bA|wm{NMY}pb@mv`k?0Xf#pvb4D4 z6+ng|43M?$F)W__m9Vn)9;_-Xsxs@sCa1Cy zscbs+&Kc&h^H{t6Xc)@mxYCHf`iF3~Ss)lrQaO5%%xc$Fz%gTTI I4{PoB6MNX)F#rGn delta 443 zcmcbb{y3R$IWI340}!Zr$fc<&P2`jCcLDOIGo&!2Fy=7iGDI;jg4j$sjJb?aj9@l% z4pS~u6cZx@6N5WL3QG$^3hOc^28Pu@3;|KhDQv+En(Qw@+=+FTT#QhO&v_FM=CY*- z0wskudogZiX5`rXkL5Wdqx9xyY`2&gH8vmQ{Km{^ws{Ay5Hq9i=Fk{=zjBiq8P{)~s9?*)xM}lwrTt8dhd1}DIx;by*?dtw zo{{m|W<$+ZM#cx5w`;jEGCtq@PkSvB zj1deRtYM5Fz+{m$P`rp8Ncd^86fuK1EFgjvCR~&XVu4jj0$IN}Y;yBcN^?@}iqe2w kkf)0qfy4)9Mn=ZTamE&&`OJ(U!*Np|A#z{vC;{6C08@U|?cICpt<# Mf<(Vykpde90OrmnwEzGB delta 155 zcmaFE{Dzr#IWI340}x2*$fbEr-I9K|Rj#RF7Y#0w($fW$8jo80`A(wtPgB7w;h7}ZVrJ}@vbq7xk@ NA3>sDut', keypress_handler) -my_field.toggle_ship_direction() -my_field.set_ship_size(4) -my_field.set_ship(1, 1) -my_field.toggle_ship_direction() -my_field.set_ship_size(3) -my_field.set_ship(0, 6) -my_field.set_ship_size(1) -my_field.set_ship(7, 3) - my_buttons = draw_field(window, my_field, 0) enemy_buttons = draw_field(window, enemy_field, 11) lbl = Label(window, text='', width=5, height=2) lbl.grid(column=10, row=0) +savebutton = Button(window, text='Save', width=20, height=2) +savebutton.bind('', savebutton_click) +savebutton.grid(column=0, row=11, columnspan=4) + +loadbutton = Button(window, text='Load', width=20, height=2) +loadbutton.bind('', loadbutton_click) +loadbutton.grid(column=5, row=11, columnspan=4) + + window.mainloop() \ No newline at end of file diff --git a/HNC/Exercises/Ship_Battle/test.json b/HNC/Exercises/Ship_Battle/test.json new file mode 100644 index 0000000..3041a88 --- /dev/null +++ b/HNC/Exercises/Ship_Battle/test.json @@ -0,0 +1 @@ +{"shapes": {"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