From 87ec5eba2bd862a7a76046aef73d1c3b8dbe99d4 Mon Sep 17 00:00:00 2001 From: s473561 Date: Mon, 29 May 2023 00:13:02 +0200 Subject: [PATCH] korzystanie z drzewa w main --- __pycache__/ekran.cpython-311.pyc | Bin 4663 -> 5998 bytes __pycache__/etykieta.cpython-311.pyc | Bin 1296 -> 1334 bytes __pycache__/grid.cpython-311.pyc | Bin 2026 -> 2931 bytes __pycache__/main.cpython-311.pyc | Bin 4403 -> 5197 bytes __pycache__/packageList.cpython-311.pyc | Bin 1354 -> 1202 bytes __pycache__/paczka.cpython-311.pyc | Bin 3450 -> 6120 bytes __pycache__/regal.cpython-311.pyc | Bin 3260 -> 4513 bytes __pycache__/wozek.cpython-311.pyc | Bin 6076 -> 6903 bytes __pycache__/wyszukiwanie.cpython-311.pyc | Bin 4172 -> 7045 bytes ekran.py | 58 ++++++++----- grid.py | 19 +++-- main.py | 103 ++++++++++++++++++++--- packageList.py | 17 ++-- paczka.py | 58 ++++++++++++- plansza.py | 2 +- regal.py | 42 +++++++-- wozek.py | 4 +- wyszukiwanie.py | 6 +- 18 files changed, 250 insertions(+), 59 deletions(-) diff --git a/__pycache__/ekran.cpython-311.pyc b/__pycache__/ekran.cpython-311.pyc index bcff85184f1b2289e220b22331b4f0bb5c7f9a10..fb3378d62cb05c7750db3b2e5958055af5e37f6d 100644 GIT binary patch literal 5998 zcmc&&O>7&-6`ox#N$v7S67^?UmMzIjWXeS>Ig;!;X&n7Hjcr*@Bs*>hCF+{HRw?mE zo~3G$U8StyB19mdF3`X-PysYhxeAN|271XcKzj&!;tCsxSU`Y*A_wHV~l0oj0>H@6FHKH{W~1zXk#Vf~5XSk?#2r`Zsy86K7SPJz)^Kha@C1aTFmX z8)p)1giW|2t^^n167GmQ;fZ(>-iS9*6RAn?5k4VAgoH2RV+g-1?oR|FfkZG8r0-n3 z_6m~RkvhorGMWq7Qx+QRnzNMaVUo?)dPK1Vx~|y^puP+5f%(~ zso!8Tke5zE33=&tC?PKmKsjKz#hHcJlHtBiiZE-qC*@f&ZnUSa$79j#d$A=sE>DQ> zr6eUS-ipZ=v6zoRyUmiI_a6MCF+UF`AX}@DL}SrZk_be}n(aiSV0`rKKS1xHblFxASZ=!fJrPRV zmJQ4gf%g%SqG|aBr6e{B{Ci}X{bw}!e_&qrWn`<)?y4BUmG)R$f+AhBTi>&0?!~04 z&gkA>*4pp>^Lk!Jw(9KOiV?Up#W8cAY5%_at$8u2sx$KY%Ub*0e_r8bWUJ2Zs~EwZ z4({$TO)TF^d%my##iXjv7}#Id+VB4J246g=^DQW=$1T`H%#RgdabYgAqpRG;cs z18PvMovjmj2?26>CKidYr)Kd#{w_Twr{3U`BF@TEHYOV0`Nin3l2Gv_Qt1@VWX0&5 z7#45<_%J#6n4kf66GDc;UP6fFVxACUS4JQn12CJx1n5$?!gU6V0Ut47BL-Z=fQxt# z@(|=xkWWMYso}!?eT4KAa*~kO2^k<{kdPsTD6nHs`aTjpGksN&u`)e&ZhU-tEEQc$ z00=76Q&+Bzogbbam{H_}tfcYuR5raB%_hZ}GE~CerpqsYn={u4ZcfYdSOmb#7(q}> zMp>LQx01ofU;)H;Dk|tLhrZ>5`K7hc+N8#J=zK?RWZP~iF!!%$e3#C5l^a)w?>DaD zs*Q!t`)Q5u*7@$-2pRJ?Ya{Ed#vj%Bqoz1*DD*$zH2xKxf2G{Gdh`C+dRNuP!ut=p zHNHpZd(1I2Yh7#CHNI2lJ3(Biz00qiT*Gu`p<5TabE8({s(623J)~7@EDS$r)Pz@c z;nm#ew=hIt4X>ZH8;Ce$`jzXe(XU;_#_`-G@_Pm!0Yx1y3lXy<_WA5%AotKL zT4vHvv(p&*sB4*3*}1Zeisq@4!%ZqvaJV~L0>ZpKK@@{lj;i4NzhEZ9E==se@Fm6U zEs=WkMZ+U5EXYYI>@xUyaN@Hm4Cjb1p9QdCc~&871QW(RM7%kB3#X!%bzXwTE^P>+Yf??<)C%D`!_@o4%f+uczd1+VUUT^dDNC()^vezq9D? z{I29{EOL!F3`0bn`y*$UYU(yr!0`jM6KH9uQcG#VZ6y^|hEtaQ4uMw5cr;b;GgbLH zm5s6tK+(!60!a8c2!=URpB{*Su#&|Dt^tcu@x??^1ckbnh>{F<#w;kZRI2hog(`0; z3#mB4w4{tr!&rlmmG^<<(02V{qQX{6^6rwaZspBy+D?Djq_v&Z+su}rDqKz^M3zT0uzBbfSyk;{pIA=U4Hp#m2HW*M#kV2x$V zg8<9r46s12z`q+-!B_ZjxiZ9YIfJ1p{BJM2(gcaEG)GPYP1GeIkbss)<<@1+8Su=N zzj4742H7J(K;&?q;AA+7s~io^#qdgmIv4lE(|15H?0Wh&6!?uYAqI%awIEz$xB*>f zWux}o#mV7`nW@OR$;%fnPmLNuv*Fr@Q|7y8Au}r`WP_WOqiKVauz1VhFsXZ#D3;}9 z*lqCFCBseZY=D-er$(8k56N z5ZMAXrg3PkJgfyLAF!E8+H>fbiUVF9=$yvjjDDR_BHSq98}8ooU|bRtSm_~@yLT$+ ztF?OoM)$x5^w#h8?v+$gfdmrIrM-OV#$A>(q0Yk?pdwCXOc$Usl8f98 zmzk9i`6^#<6PQB98Nx>Kg2iu=I`M?yb>D%)5R!PtbQGe/zjqp|=vA!TRgN%(59 z;cFl^0on2arTS3r0y*U;KmTNd)mnNtMzp{QJ#d1Y@@`7Bq;|UO-@aTGnTW( z5#XWBrn_{g>bDyqt>yT}q!#GY1ARZ1syr|sMYzwPau3jA4oWjgj1^)GI&Ex@7zj<^ zD0`O~2;YeOb4g_!Zjjk^a{J$R!I6cD62Ck+<=paibC=%Svx6A^6ean0 zO8(FvCO(^39s2X>!Uuo(#ovCd`G<7>P?0`6ZdB8hTi#)9erkx}9t(m1f09a8e9>#0 z1L01QWzs7jas7r5b}|otLXE?&F)=WD8u4Y)SEI=3nM6vGP3UyfznnlpDN({?e+Hih zcdy(?;e_EFVyRNUKvV(L+kap4Cah{PF298nAVY9hSqHk~Vi=}`0y+A7g5ECv7*7ce6{|f@ zP;1eCc08z|Iagb%Z_EWteC^8NExu!u?_dv0=SMwg%y~lH$#oV%qT2?s?wd<(8h}vOUb%*nxXthW5+9Nstj;EQq#Oxpk y?Q=6tJE%;8E(U_*yN6B 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 delta 287 zcmdnSHGzwFIWI340}$wkg{5RnEk*{+VAc|1$;!{nyTw|Rn3tYTZlX-=wLk>cbtEZX+$j38sNlOMt2UvS8R4Fv#R`8_89 diff --git a/__pycache__/grid.cpython-311.pyc b/__pycache__/grid.cpython-311.pyc index 2c1301437996be7e15809a509b3f1f77c3b7cc05..4416952918c1b1ec787a574c09849a7abe990a5f 100644 GIT binary patch literal 2931 zcmb_eO=ufO6rR~1{aLo`GP3etX(^Dv}i9!^bA{vz_#W9!SG+yF0K@v1k z5;c$H(Y%sZ^GQCdjm(ry821wZd3a4Re3%zwktLN2 zYAQ9Dom3g_>=g>X!ckw?WBX)Tk87$d+W}eDCX`GH$3a<6XW}WBB7EN8+iMH`Jr^$9 z;?*lX7kZb;7RZygUnb7Rh76S%v1sp=E3xQABBQCgX~YHwhoYByV%@T#YN}zf*g($A zByxIOzNDLKDmkX=iSc->GBNe6e0?IP-j0pIeoswiSrh1Yzyky0eSn$DZ@n%!6D>io zex?_H>`M#mbxY{6(lCMro)BojZo#xC+Vh}Q38BdXMwB@uZ zI>n80=<&I>xs#^PU53tdlD;$_<@TZ|d=6M@>7}*3<#*C6T7p&f8@9)wzl!3@?@2eS zD7$IiDPQ4g+_q`rowyC`S5aK~J?YhwyJ_AjU*Xzcwg~>mFmfB%ucEl}d(x{VchkI6 zzRWe+2(fi229Yw&PYX5CQ}KUI^zc)H8$InNRz|m(m?dt5y;o6O+k4WhCCj_|Z}~FU zs8HFvIPIy~d#JpZn!SrtP=}nzZ+8-3=qpugj2?!U8*a2k7T3qrQfWMZ>qii<#xYD4 zhMzy?N5G=VFlCq*p$-9S07J*IdIYR_VJ|xlolTQA9k*%1rix8fn~oYNcC^%-BEvdh zA=g}8Un(^TH5orak(ePHO)Ujl=(yW{uYHqn{!bj3?b&EPScnw*@7}m~W0TN&SO&<` zjn31noge3gdw!tC3m+64k6De!HhCbvY-zpUksn^<7SAuFA4Che$LE*Q%h9JDOJ|>R zzeb)3&qrP~JyTYuejE9tbv2Lhqx5lm8 zsp75Fnm%czSy5-!n6Xhdun>75ERLXor`$^9iSVurz%iQdP;@}Vf$yWUJ+tYTM^3CB zIXxSlyOd8Cn(}Hf*lq>eH(Czdr}?4#*9z&M2Ns(O7Z>A?>C&-fe&PD#^h(pR@iek> z?a7&?q_zK3@SVTQfs)1z)EN1NHec?KWsmq!XFl9?2gdxc=(riAd zn@)h)Az6;=`h*!blM}ij%d8WbFbo)GQ0aqAuCH506wR5oitmu&pP?YdKb@MA{m8 zB&>&CyjD^0?%98!fm2?pcc z#trv~+Rx4MoBf6PYn&-;g}Lfu=4ws8qcZjezIfcy$)hqhW-&VkUK1=wN(EAz~LVt=rTAFbli z-~gjx0Kt;>ezCBlK2lsY{H7PV7MezR&eg84JI8KAVVnA<5$qSp*qR=`H%|BTsz5Qq z#LlFnh!hZlghv<~`0+8FID(@@*tC&<33;NY$MpFFom?Xe1d88-)R=LUpghJ;#GHaA zI`KrOpovbLbPY&rMo`1;R{H#f TOpc!$vVY+_YCr#Dpr85+@_ex= diff --git a/__pycache__/main.cpython-311.pyc b/__pycache__/main.cpython-311.pyc index fc5784cbb844733c394feb1053d7e566feac0604..e376a9374a2174c384c0cab4c13d35d53232d9b9 100644 GIT binary patch literal 5197 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 diff --git a/__pycache__/packageList.cpython-311.pyc b/__pycache__/packageList.cpython-311.pyc index 6e569dac6068e9dcc81dc4a6c1ff0db42ef66dfc..5e540f6708d3bbdb81f28afee89d0b1f60c5478d 100644 GIT binary patch literal 1202 zcmbVL&1(}u6rcS_I!%*;617$cEmZ1)v>x;#A_|dGX=@=?VOdz0-DzmM*{m}gA)z5T z^x(mZQb>D}Ge_2dMSF(pptcY} zuotOf5vdZ9w-eFUb~2LA^FvUMV}m+o342Jz9DzD+NxY&zX>T#_&E~pc?ifYF%%~oZ zl1AUq0ilI<(KfdRt1U#*dA=(gg8ex52|Omw*yj1JtgA5=Dxf1_4Zz79oS!sYmpGQ6 zaYK-Lk(Mj2FBz7lh`!8-z3Iza9w{+iYG&r_gZWh3V1zO)|7vAL%a_eci8vn93U4>^ z%P+OZIwK{*JgOCHUd60AhQ920#NH|r$J{owSn-^y{=QrzJKCu93gB6AtCUZ^cJpHE z768vU*x3^xP1MKfFXN|ps*9%%vK^f3;oJ$%fwhOHPjRk`a|d1r&-L)!N%RgO5SelJ zK#3<{gL0h-T%34a_}~6hexDSXjsf!}x9n1WG(Sm6sr-p3BAwuB+BTS{k9sreKFxrK z-T+d&b*VvNF!!?sAkd>b_x7u;`nUSm#(v{-I%>{r7tgjIcJN{kFP=m%orI7zCFNsX zcZ?Fzbw8!+rLtAAxt!MZj}^lXJt6F*TP?yyKgnDQ*TYXN@p}^-Bp6@-@(2ZqL)84Y zrJV5pioFKXjGz8QrkU?&r}tM+v-92Td?%~)vPyGxAd89n0~8Z1CLVG1G6~D@Vx0t9FHS$Lx7bQ)~@DzFzo29h8MeUxbi&j6xBBV?3pX^FbJ7wy-lkMhbD1Fksd+*)7d+$Dd`V@(bA&|}W zb@LTQ=qGgsBJ_>k92j-Pp(n^hyU4^14xwWhfovd?+eI7LMz3I%@jaS~B%Wy{kE-KpfXr)1F&4JWJP7mP_)PZDJW&T^%~ERneXoJ(5#P!M&ED z_I#=0^SWtz^5rYfLyV&CP`qlWBaQEkewX6kr1-&POPXm*GtI%2OK`Rblh2omr3AJmupL@Su_;-6(I$oBOX5vkX+8*#(A`s@ z`u%^1ypOz#?nU3S#~z23m4xU^nr7(*qG|q^rWJ~2IZy3zO?y$+^T7&h!VW`%9R+oS zSTgIurWa+3_T}6IRU1B?aHN*(3OIDDi-tGh3mA3ayvgNJ z0q+2%T?$cOEhr1ka*=_yTeLunFH@3z8fP zkfQWi5%ctnl`*pAtVVf3*d~&*r(qLC(^&@voDim)m){?<(voM}@@#FXBggmW4q}J$ z$MomhCle>e*E^^DX}Tq++Hwk(h3K2r*Q@(WEkS7uN>fle;aF3M^-0AAte^$$392a9 t7+ub#2LZ(%+Vsz2oLK~;%VUhY+z19%Tvxwn?DyY=$q>HTMb{Op^9Sez7jOUo diff --git a/__pycache__/paczka.cpython-311.pyc b/__pycache__/paczka.cpython-311.pyc index e68be215881fb5ad29fddbe88eaa1c5a53955fd0..c3f6e90c48774826ad648947750ca1e0a6762219 100644 GIT binary patch literal 6120 zcmeGgO>Y~=b(Wt??Ji}>q$}B$MA@;Oty4QGY!`N1H;LssP8^|*9JggvEY{p5yArvS zXP1zX*h**^-x0D|((-wj0>MCcy`@k+SUc=91M?jr>$Odb`O zG{cZ~ARkBvXdO%k1L!hRf_IP-QUh}#kHDNq0j&fPT7|z`(h(&vgT(M-f{Kj8UNXz` znrh0^na&7W1v}sR#YoptXK&LCfVb$jXbbS3)P|xfhn%(*Ra=_fE*H>Ybz&w=*pY4-}teuv6%xm@5 zy*!oR3Q$<}*VQYV5(13c4w+3c&ZDFM6}X4LGxx|dxJUcA6RgYqx4@nK&fH_q;6BjD zonT$=KiRdmcga!VfPZ(70)Y9pUI_vwc>7WzdlvVxFko=z-BO7Fw#UO19a1!Iw){s_^bE$NphmNXcaUWJCTKQPA;fUn2O|t@~ZScB#Q){3}ns-_d2H!M@mn+`jV zOPSx0iOg+>DP!V(oN!*gspdt&2^nfWi}#ZCj1e$Szytv)0ww`CQC(K##faeZUO}bN!>KD{s%9k_@$=8YZ5dvCLA&(q-w24wSW=s%PfpSsyX=vh?$!rOwZK z+gZlMMyx^C;hyl6PF#|43pV86OK6=HK8Y?z*VvIJJJMkHx7htQyTARt@oH$9Ur!$R zY<4Yqw3$3=A3N7bzS&B?3GWBmiILCVTT2{kCXO`{Vk;rS%UGKmzL#xs2W{@)`shS! zR9qW9*&IFjRp>7RU%%TJz0?}LRGnIWuRS&a)pYydI8+~0KWGby8ru|7wvgKCv`AAJ zw}tVYOndaglC=*U1p%+ZQt9GG4?z`gcPdvs?U59`6xu@xs3M(eJvmm()k_bQuipJS z_qTE*d99Va2K@t7_&ov5qYP-?FC?_k!1o2by^p}z`&|mtahc~#-oA zE&|VRnZyzK0Z<{B?<$ngOur;v=-9m^&kG%0Nl56}UJ@^i>|T=RIrXk2B#iV)qHy3g z`DsiJ5GG-p`o_m(KQW2Cm;@cyHiQGvDMv}yegcvN93bEz0Fl8* zpfU)}6n+h$Gb%|+@usF?OX@gFsdy91kV080|7347ftNlA8(ibWCMPzy<1Oy^gIi7R zb(?#=%@5yw|I_ztq0a~E*T1;&;QF6#*sq*w@TXh+Y1?}q@k93Ts|{Xk@uJO(>jZtL z!C!3g7j6FHI=|=M&?lFdFIVZ$wYy#?OSD7n?gBKPV|Pp?kOfQZx@*a&ME8xE1`YYj z!6QHs5{BXeWDKSl+@w2$%=J|^SXxjZwUHKzhGuF--P+et-KO_bFv)lYz!nvbjn|pl zPeG}%7CUOw$6YO1p;rh`y4s}>S#1t|OxEM|!ab=Ip7vD&b^i?b-O$)-?fRKM3c=@6 z*kbc~a$9cU&F7<6`@5Fb*NF1+rR`csq=fKJ^t!!PwrCKv0{iI}<>m6}hSHbF$L#Tu zb0jj;QrUEi|2SBIZxbZyx~1;ly1h4~-V_yHqSXJF#?$-OxCRltZ?CfC+f;NK)0~Q& zM>p9bVec_PuZuC7Sve7TVL{au_r|vAvKCh7;qK_{vlekN19!?CggdEwLliUvvaCE@ zuCfrMyx>J{ec+X42yt-D3&N~T(QByF2XiF_Tk4{0jdYyxmYyp>%(w^wgF7BhRHGXa z#P8{*WNm)$-RV!KYi~68u@*mO)2A=-discX@~-}=Uc1(aPqg9_c6`F6d$ty7a^p5P z{`6Up(EYOZYEw953x}RQVjH>_YS$rugl9*y&eu-a+yp#3n)Tz_l+C5!dBIta;(J^1 z?>{)(h@Wo7PgjFP6NA-T%V*ZOi6%GE;3iw#WF6!e;dv^}hg&w`e}%@w!F{!0?d{Ja z)!*6dIE~g~jC@GZ;j0OJNEwi%LQyH@Nt>6XTO}Ecne@XO{)AXwirZ*~*lfh>yNI^~2iOkTNj{g$5 zbIE1uTlT!Gr3?5fpk%E^9>7MBVVE`=v-_Vm5|-$%jrb+{+lVYO42b%4SiQ0Q>y|M2 NPul&jZ3aZvE++f6nGJ@~?W^S*iezIiim^8MsN zxArs^ix99Iv$O2ALdaJnbrWmO{wZ*_2qTP^$pY0VMPDcjnjnxV!a^H_iQ57p&tdqc zg&rqSr!%@W)D)uhaHqu(3m#Q1X~LZVUVhJu%^s`5??f&2@rUBPIfq>)H%im`@8y z>d63|7x;T6m1`t~n-Y*=wVqY(K_yCaCBDSfmXz9%h%`wcYe<~&4-llS{#P1n1(A9g z#1Vi&V|{Z%z*+)^M-1+oMS-=}V=M+NT4#0&y<5@yAO>CtrmGd`^vKnzk%P8M6+hEP?Lg+?F@f|4} zx3I8uV0=%yHsC6{UaS;tU0;d&Pi3gSfVXDl;K8jCeqT=WSMs;P?&A-{&G_fG4w&TH z^d-^zXzt144tsI_<=ltF%?yu6 z&eDE96L~`icN49Bl&U-zy(stK_q}{Gn$2OpE8R7V726e!rJ}8ho`mUtgHhQkn1)fY z@V|zK1>GOf9y-D!vGwpEEKaL3AL`6p7y#eQA`AmOBPIsT3<7q*19Yr&0BgaoDt1Xz zv`YTKG5)Tz_YzU0jw*sLgsH0NDu%sWDjIg)Yn18ThbN!IJ%TL{l!=8qY_V*dHb)_V aH)37lcCvr8Dvwjp{Tudh?bkm7p6YK(chool diff --git a/__pycache__/regal.cpython-311.pyc b/__pycache__/regal.cpython-311.pyc index 888de4215b1543a642b6c07e9cad949fbadfec9b..37de8cc303e075649d3ba2c60ff19c476e642bd3 100644 GIT binary patch literal 4513 zcmd5<;cwf<6+eoUM46PGD7K~8PU@y!69rz{x@nzw*%Bvqx*&-cR4F=m!U%?>Rap|{ z9H}MZWI!JRj0p@Z16I@>GRz-}tU>m{!2X1N9v~S4N)QNOVCV;bQ{jCW`f2ZuA}u-1 zPz-3Bllbo4y*s|U-@Etj@vrfCAA)l9pN85N5c(Hs_$Az7b{By81gS`6if9q3p+!bz z@1ezz$^m6V=sl!{?;$m!p=HjWyzI|Lk6DDC!sC_2h{|M8I=Vxe3p=D=VLTC~A)usl zcLoS3WmXwAv>K{0HB_Jj@PS%LWi8-IugXx4*^_UA929U1JLI)HR|vTb_)T`2mWlJk$v6hpIr&g-&k@Br#Ua@XajSKRP zvTB&}oxFAx%cfSqaaaO@%Qy?9jvPK#pWTiR)Gs@NX#eKHj6LHVOs*gM!>Ao`#P~zz z{=Ch!!$^#K!gd6SiTd?jnB0pc*&4+X1JjMA%5<=t1O(X{S|(FzvEVoqs6Fsez?pj< z=U{ICi|1~_T(CiS0h4X*oFD{F7uvZ2B+a;@4%p(WaP&0MXj_-r@1>*_OhZ|f96GaLl-)Oh{0^|z5I70Ah>e!u zjNaoHSv3UC!coTwQ^$$e=q|GuB{;cZx(g-n9(W5ujvDV4a33?DAhXL&9)s{HJYL!8 zlK6cH^^Re{mDEr%RAN^-1`&6W0&V07NJJkkHPVU%tq`=Le#<=Qa|qQ!k3sL#KsStw z`O=~rI2%pqgVq(1}Rhn^cptWHY~t%hsxQ@KZ>)d;kr@bI-L=p@cVOO1yXv5eR1 zibZO;Kn;W~^A%r?(DDJF2L}i=0Uscd+qc8jn0eHn1M>qcHWGWidz>2S-Op;Q7TY+q zC*R|GEd{$6^kp?}W60;b>sk!f8K4b(fap@_G3@oJe;^Uqx*Lh;4}t{$5+V`%L6GQs z36T&wNYuVp?+{-OBvh1v%m#vRd;t@uf!ir!C|J|Hu5sLO6RSH`+rA%U@+ z!~giZY8}Xzupn2^W$TXYU4?G{ovKkT1a~MVF{g9o zewc>@$C7Er0m%?;!Mf;0EYmyGjdm_zJOcT& zx_nMEC9El?%Xt)X9WyOp62$NXA+HlcR^csnU`196fShE&mZ1i~KZ5(;aO0g0$wNG7 zQsiA0aCT#oq!eYtkR*d76p*-eN}Z+%_!x9r{S=5(K2j;@Gkyie{ZAb|W`;3CO(_oqvOw6|u^Y$eonEWE~ z+E(JV#>BhL#B?h$ZC`Ryqkj?qB!1fesNbGjyW)t6-(P)jb)8*T9~C}7{kL=A)f6h`t6o*vLT%Oc8aE(i8HOlng2^sbxSzW5KeseidMIT$%Zib9V!C!;NOlR z@yDRZO9_Kq2u@s(e9u9nH+zE{IT+a+1YT1{ zefF19=H@TnpM7us2}2#uATJ*G(&c#G@H|Ocf_P>f^1Py_lYAZRlAH)UL+H27HS7NQ zwex>2YzgUxkai9wAD(sw2JOoCuswVRmXT&L`39n42hR}hCqVXZipGQeo7(FnpR4$% zgwQ-afEs!Tyfmr)H89`WC|z#=(*>zjujvZZbT}~A^ZTIzb^m_G6ss!1wE|NY;DwWkr zk?^7<-LA-R-w_ForuZDZ8=og+7Kj_~L|{cL79}ao;CG>yTIhlof=Rf=gpf}%V+jbv zUH{kS-U!dM(KnD=3>zMT$mo;4fTMl;ntS5{j#`^4PDk-cvIu&B$oGMFvqg**oHyaR z$ZqT+wQU=Ur^e*v|1ux|hW literal 3260 zcmc&1U27XhaPM@I9P8wdOKLfBQ{?!A$OJcT+&ETDsS`UTSTUhaVlblDi|(Sz`bzdr zO)X>)B@{Ij+Cm|I=z||hnvy=~F+W2R2Nef_Kdc;WwraQZE6wV5Zf9q9 zc0P7?PT%_d-2~eEH*ToEbP@6+BJC!$20PO*ctBL5aw)P#RQ?`W<5U+wo+s}RRk%k~ z_d}kL$I$Jz=2E#867n<x*}`%I#WpS@xCG!k5^`CdyBq0*LM<*~d2S~@(o&j^n+1cx=WDTW^t!H5 zJ-VLNIbg{%W-9+@;#HNRcQt`?TEG8YkMAMir zKY>A~FV~TowU$?>z?ZH9S$ATQhsY-xMn}No!a*M2C#C0)rIbMm#KpZ#(bUFC1U>{; z0fcyKKuzW1Sv~eHIxV+~u1PAf4=gbQaiB}tR4$#_fDj70mbyg`!6M7wv7{YIic+m( zdtJU@i%!_G=>RbJq3a0%Eq~XK3>2@RzYVi@qUM{Z_$JEz<(p5Y&GV7!*+^|FQkja> z2ge@q)xn99|95ftvqc!5qZMJ0;+8S!PHX#m=Lk$aAR6WkWR1!}?zmL+mdkQ8onvli z5g|BcVf`39iD6aw6iIWNZjN9Y$WEGJKxO1)t-u3@zPB*}Fh{C^y0u!t^$-+$+*XbN zpSMlx;1l-o!4+XQ<8XUKVEsNmcBvo-9JpO=xg^tvraESY)*)1kz^=@7Oc~aIcds!!!Ru(#T}WAAoPdv5O=F02k8Y|guE1Qa5{BRIt+d)Q84Pg4s1#e=Ugbq5Ak7 zzDMe>p2YXjp9ap9Bh`UrZK+=;A5DKhS2=#JD$bhXY(<=X=Ii};+sss@bEb6e zA8aGl#?Dv9&i^%Q{?<0M<{Pf~hPPF7{Opqxweh*i_}qWF4fqY7rk98(U>gt)5Br>0 z4ha^Vo(vpNS+=@mIh|E=DIANkd?%-*YzjS%Clk*dTg6Tt9YhqtE70{307d85T zlk5lfdR!F}Xb4^`hgizk0y{T(-Zf`y^cKZ`3HVK+zXzb{;yA8O{6+R_dc2&}Bo2@~ Y+|ed+K;JM2y6gu(Rd-XuyOAUwH9(kS1Ghf+5it5>1MjXn4W@|91CoBj9cO>-m42 zbN=7==dOQV?)*Lw@Dq5tf66(PSNVL#%^;_>^JJ2y>}F?Y;OiRO+8E^>$@-4{tx z(CDbGMMgdL#%pduZosen#Jov*f+*rcBnK60%9)gI#MOK}F{z~!D_Yi{z31^qKz>5z ziAG{HNn)-7@r=+Uy(nG&;Y|1A z9ojKGMO2r4Ns3Zay&AEwiY3ylD%H=@m*34|AtoAIlQU0az7Zb zsR|CNu(wQ+1sRxw)d5q~$MYI9B~?vjQ--SYD%ZhE>8xg`OiLK1fXGj}+8Pv>Dd<{e z#Pq3ZA`{njRn^g>=nTK)8t!43!O7t197J=ceV7k;`XzvWXUKgiFzcQ3E=iGlQsl1G zP?Q=Lr3UVC@2y!5N3OiN6z;qi?z|gTieaT7%=vh~`={5g(?P{+idve*v!+K+Fip#v z!Uvg@!9s8>Lyt^)-lP|w$E59Ya18Ny>J#X`Txw{=yC;dk{$D-O;-nh`J2&@BGYzrRY&gb%ME0Ws)RuB5i zqtH&?2Y$lIE)WlC<))<(}z-^=hLJ z1=~HxkaLPp2AlepBTZK;ixH)8Xzs|`^?kXaC~sVnJMPIH3ln$cuA}$OHpL1e)~4OKjeOYE$gfnk(bN2P zLRUv1#}o()8wI|3aShJG=>m~>r;IDjyKP=jz9VFynO6W$rTW{mB@3Tg^Gi;MAo36_to|saf@vw;(*^TZY>c9 z8bl-=2vRYCN31}VD0ZW?4E)>L-sutviU;8uM22CqOjRV-glo(c+lzoD&9EBbrI%+Z zLo+=mtpBoq{V2A!TM j>%R{|%`?H0kfs!Ed+}dkVD9ar9DP()`TKt~E#v+J^p+1< delta 1768 zcmaJ>Urbw77(b`Iw}tk$&`VobVXSl(b{SA{APX{4*<=G{OPDx`+EwnwmHuPr-UVrh zqS-@DmKb&(mP{Xr57Wg5W0sky%Y5-g6Bk%WAXk0ziMK8;(U=(gzT340jh^=Y?)mFfTx^VTFYozL&rRX!*J-T;~;I}UpihA@DP8N z26@!^VP6=Cyz5j)Cah)Vjm0)aU~Rx+2LVj`d~Tjak!%O3+Ir|zXoR=coUYhv`5J<| z21S_z#nMt~$|?eD=U>#G45?)DpJJ;Hte5*-0g6i9{H&{4Kt+Dh6=>|;W6hDW%v#pE z`46tg3m@ zUj98ie@IbJVXQD#w3E7)LWTuz9rYZieGL1`6tIU)A(JpJKto()hE+J$jK*6K4k4gb z#m*Y|H{NEb-ljK7`}tp9UP&Rn%VYJA)8`=(U3{%x4#V{;ojNDNacikG5AP)!7x}xM zK)l+aw7SO>;-lCm*b|_wIN4!%S>duHxO)r%`>PtJVq@4k>`8!XsTE&TeF{0H-rbUe zn{xEN99@??Hsp?ibIUESxm$mcLL1V7O{x99)V{i~F2y#a*qRjEYHInYZlg*0G_u~* zRT#Z;s?5NB0e(d%kq*Fl7UZA%l1IYeNU@vJ!lItPlu9lnvPq2%0n-Y#93V2P0glTf z^f~^4+((1AzLSF#2K1+fu0u_rWO{O{zL3=NacjgF7Ty$$WJWWEg+$U&L?}nhKjQGC zAjGfxL;R{g0wuWZe;>>Z2R7)7Js{hj21wr6+1Y{du&mS?Fthq>j%7>-%NYqnvpNb3 z461Al;Us{L9TLU?M9v65-`Gaa@b?-woj8RPijT*eqVEJyxE}$>jzs`Wds@quM$u{? zt9~(*9z_^L@F9#Ni~!su3~iP?VY@H{><|4Oz;fkRw7JE@MN)x~OvMRWB)hPN5APf3 zsSziEy$ge)*jXeMkSaUm@o)DHO_f4G$BKht4XkvrKG>P=`O;VZ1sIo7D_T*WMXgHY xf7T3Ta_XhD_B5LU0ey}YO#*wW^4kgF2 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 HkmT^+bL@`d literal 4172 zcmbtXU2NOd6~3gX{~ybdo!W{#|HQQ;JF{bKYkrm{Q{o>aP+TC+A3Uc7Bhrp!nNmq= zjs*%6hCC>N)4D|f3qw2Tp~xJh8~T`sJ@_Gyd!P&gBM1ZtFzmr^YTW@tpLQ-O(Uu*r z>vkv}-k)>MJ@?*oKb`wWzu$v^{=9sPEko(=xY8i1Uf8(}RtmPn%|VwNBfiKY-s zK18hT8HvyfcukrmjUEbm?E89btm7e?rC29$JL>}OVBIq)>eC}wG@QH@YSOGg_gLmf?uyrI8GNPem zl1xIaVHe3Zs9BR>(F}S{OoLJ4fljRGuEiuLG;;%#0}6zhb1ltA-9TQy*(JO&y0Ec68^jum~`9l!A&$DJzZ(5XXDk zt%xpA5?+crNjP%r1d&fQ>ENw0h$ZsyWy!n)p=U7i3p~0(GSPgr3-7l&*ES%`pwjUPTl)?vwFyI7Xu+YgbY z>aupjF80AD+hxZBS#bXN75jm8aIrSomLMOHi$*jE4%S&OUE@gt@mHardTamtM*lg( zM~L)-+gLGN^2lTgcE7&sZrL+Wb~dU=!f{@w6pl`VauD#cv$7|`8a)Wfu4mxe3oBX) zBs&4SUDMmRX`2Ej;Go#Xk+waF8LlQjhI-Uv9@t&vH4c}7N%(Z>)B^l_2v}36Ca+IS z=nf{E<#;yg)$Pj|NOWg935c6q)V(6d2#Nc&pZSH?t)4*(zyGJr&P^Nc8QSr||lhJK6>;zO8d5!GDC9a#0O z`ie2lYfjK6XE z9_CeNxXf%hyA@}*=5m*=KXR6c5}|=ZVbvX}5L@nE#ohaVcD?b3%W=gQElyb8Rwll@ zs`j6*cAil?&%7M0hAye0OT~E2fxwGcu~01h4&Jp8=H^pwEi>h=a@X(St^5pg^U?f) zwIh#imB`(K_o(VUR=!>#%Tubi|4%;k#976Qf10oLllbF!Ia2ivsJ;QkH}J+AEXECt zZGu-ENH}+}r1FB%oZkTNBFD^ry{ z5>_X+3?uCxiGovh0OW!|!67>(d?e~5JI+H%CQ??L>`Yl;z1v!coOeKS_vr4Gv|8(u zBtC=^4$nHt;Dbyy!%e{@yT;Mo)q)#l>yhnHzESYX-nV%myWiGYAMH$&j^#^}j@4S% z`AL(G1vO1NR%=~{V#$IBV2@b6DSKG5-b$?AgPnLgIJuj50>H`s-%74Nk*Tl0m2Ef? zoi-p$2*Y9mW?_)hDK?pqbZUvoGP*6B$(re-k$)IDB!&kgkraBdmQQcN`3jxQB=U^3 zm|0%Y{YC?uNpNYX3jNq>APZUPvY20?O?Y$63rT)~(>)n>Imxm449^M2vE@E2?MNrV z#u!F5E&<7AwAy;QQ#?rcTwD3Lqb(6G`rsI_&jP5eu1>8mhXErUwSpcd?S1C#TA<}atK z!C^HxtOSR(VEAvr-mPG7tBx^n$PS5xMqux z58*>YnujK8H}Y{|1Y9tVf==P6)m;Mj8@N+(Y?LyC*(oNHTz-+!?Ma^H9_XZ)uDaZ-G0+UzZ74HFqEWV|!v{0Oae}~n0aYFO7tc^V$Dh<63wyoWK>V>Ft zwR{qI99YX$U0tfHOL28+!S<)VlD+0c-k>S`PZ#n8p4?wst_Hf*KzG&Mqq=*Fmo%@x zc*WSP>8MlahT)8)#JoKjIg4@J@li3n+IMI8-gVx*k6jRAAcFT>`~$F>jUWgObt%oi z8buLs?>fl7!EN8|b_8q$+%^ufZ*bdpyB(eg0dZ%s^T!A{92Ps{A_6sZkQwv+H=`GC A=Kufz diff --git a/ekran.py b/ekran.py index 85668d3..ca73794 100644 --- a/ekran.py +++ b/ekran.py @@ -1,11 +1,10 @@ import pygame from plansza import x1, y1, x2, y2, x3, y3, x4, y4, a_pix, b_pix -import packageList -import regal -import wozek +from regal import Regal, obliczPixeleNaPodstawieKratek +# import wozek from packageList import * -from paczka import Paczka +# from paczka import Paczka EKRAN_SZEROKOSC = 770 EKRAN_WYSOKOSC = 770 @@ -16,28 +15,45 @@ pygame.display.set_caption("Inteligentny wozek") icon = pygame.image.load('images/icon.png') pygame.display.set_icon(icon) -lista_paczek = packageList.zainicjuj_liste_paczek(a_pix, b_pix) +# lista_paczek = packageList.zainicjuj_liste_paczek(a_pix, b_pix) +lista_paczek = listOfPackages() + def narysuj_regaly(): - regal.Regal(1, 1, x1, y1) - regal.Regal(2, 1, x1, y1+1) - regal.Regal(3, 1, x1+1, y1) - regal.Regal(4, 1, x1+1, y1+1) + global lista_regalow + r1 = Regal('ogród', x1, y1) + r2 = Regal('ogród', x1, y1+1) + r3 = Regal('ogród', x1+1, y1) + r4 = Regal('ogród', x1+1, y1+1) - regal.Regal(5, 1, x2, y2) - regal.Regal(6, 1, x2, y2+1) - regal.Regal(7, 1, x2+1, y2) - regal.Regal(8, 1, x2+1, y2+1) + r5 = Regal('narzedzia', x2, y2) + r6 = Regal('narzedzia', x2, y2+1) + r7 = Regal('narzedzia', x2+1, y2) + r8 = Regal('narzedzia', x2+1, y2+1) - regal.Regal(9, 1, x3, y3) - regal.Regal(10, 1, x3, y3+1) - regal.Regal(11, 1, x3+1, y3) - regal.Regal(12, 1, x3+1, y3+1) + r9 = Regal('kuchnia', x3, y3) + r10 = Regal('kuchnia', x3, y3+1) + r11 = Regal('kuchnia', x3+1, y3) + r12 = Regal('kuchnia', x3+1, y3+1) - regal.Regal(13, 1, x4, y4) - regal.Regal(14, 1, x4, y4+1) - regal.Regal(15, 1, x4+1, y4) - regal.Regal(16, 1, x4+1, y4+1) + r13 = Regal('motoryzacja', x4, y4) + r14 = Regal('motoryzacja', x4, y4+1) + r15 = Regal('motoryzacja', x4+1, y4) + r16 = Regal('motoryzacja', x4+1, y4+1) + + lista_regalow = [r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16] + +def zwroc_regaly_kategoria(kategoria): + lista_reg = [] + for reg in lista_regalow: + if reg.nazwaRegalu == kategoria: + lista_reg.append(reg) + return lista_reg + +def zwroc_regaly_wspolrzedne(x_reg, y_reg): + for regal in lista_regalow: + if regal.wiersz == obliczPixeleNaPodstawieKratek(x_reg) and regal.kolumna == obliczPixeleNaPodstawieKratek(y_reg): + return regal def narysuj_siatke(): diff --git a/grid.py b/grid.py index 1227593..3909d4d 100644 --- a/grid.py +++ b/grid.py @@ -7,10 +7,17 @@ class GridCellType(Enum): FREE = 0 RACK = 1 PLACE = 2 - # dodać oznaczenie na miejsce dla paczek + +# class RackCellType(Enum): +# OGROD = 0 +# NARZEDZIA = 1 +# KUCHNIA = 2 +# MOTORYZACJA = 3 + class SearchGrid: grid: Dict[Tuple[int, int], GridCellType] = {} + # rack_grid : Dict[Tuple[int, int], GridCellType] = {} def __init__(self) -> None: self._init_grid() @@ -19,8 +26,10 @@ class SearchGrid: for i in range (0,14): for j in range(0,14): self.grid[(i, j)] = GridCellType.FREE - for r, c in [(x1, y1), (x1, y1+1), (x1+1, y1), (x1+1, y1+1), (x2, y2), (x2+1, y2), (x2, y2+1), (x2+1, y2+1), + for c, d in [(x1, y1), (x1, y1+1), (x1+1, y1), (x1+1, y1+1), (x2, y2), (x2+1, y2), (x2, y2+1), (x2+1, y2+1), (x3, y3), (x3+1, y3), (x3, y3+1), (x3+1, y3+1), (x4, y4), (x4+1, y4), (x4, y4+1), (x4+1, y4+1),]: - self.grid[(r,c)] = GridCellType.RACK - for m, n in [(a,b), (a+1,b), (a,b+1), (a+1,b+1)]: - self.grid[(m,n)] = GridCellType.PLACE + self.grid[(c,d)] = GridCellType.RACK + for e, f in [(a,b), (a+1,b), (a,b+1), (a+1,b+1)]: + self.grid[(e,f)] = GridCellType.PLACE + + diff --git a/main.py b/main.py index 89587e7..2cbd14b 100644 --- a/main.py +++ b/main.py @@ -1,35 +1,116 @@ import sys import pygame +from paczka import Paczka from wozek import Wozek import wyszukiwanie import ekran -from grid import SearchGrid +from grid import GridCellType, SearchGrid +from sklearn.tree import DecisionTreeClassifier +import pandas as pd + +from plansza import x1, y1, x2, y2, x3, y3, x4, y4, a_pix, b_pix pygame.init() def main(): wozek = Wozek() + paczka = Paczka('duzy', 10, 'ogród', False, True, False, any, any, any, any, any) + ekran.lista_paczek.add(paczka) + paczka.update_position(a_pix, b_pix) + + grid_points = SearchGrid() + while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit(0) if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE: sys.exit(0) + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_SPACE: + ## wozek jedzie po paczke + wiersz = ekran.sprawdz_ktory_wiersz(a_pix) + kolumna = ekran.sprawdz_ktora_kolumna(b_pix) + docelowy_stan = wyszukiwanie.Stan(wiersz * 70, kolumna * 70, 1) + + #wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan, grid_points) + wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points) + sciezka = wyszukiwanie.znajdz_sciezke(wezel) + wozek.przemiesc_wozek_po_sciezce(sciezka) + + if grid_points.grid[(wiersz, kolumna)] is GridCellType.PLACE: #picks up package + if wozek.ln == 0: + wozek.load_package() + wozek.dynamic_wozek_picture + print(wozek.storage) + + ## wozek jedzie odlozyc paczke na regal + paczka1 = wozek.storage.pop() + + array, reg = paczka1.tablica_do_drzewa('ogród') + + plikZPrzecinkami = open("DecisionTree/training_data.txt", 'w') + + with open('DecisionTree/200permutations_table.txt', 'r') as plik: + for linia in plik: + liczby = linia.strip() + wiersz = "" + licznik = 0 + for liczba in liczby: + wiersz += liczba + wiersz += ";" + wiersz = wiersz[:-1] + wiersz += '\n' + plikZPrzecinkami.write(wiersz) + + plikZPrzecinkami.close() + x = pd.read_csv('DecisionTree/training_data.txt', delimiter=';', + names=['wielkosc', 'waga,', 'priorytet', 'ksztalt', 'kruchosc', 'dolna', 'gorna', 'g > d']) + y = pd.read_csv('DecisionTree/decisions.txt', names=['polka']) + clf = DecisionTreeClassifier(criterion='entropy') + clf.fit(x.values, y.values) + + predictions = clf.predict([array]) + if predictions == 0: + print('odklada na dolna polke!') + else: + print('odklada na gorna polke!') + + docelowy_stan = wyszukiwanie.Stan(reg.numerWiersza * 70, reg.numerKolumny * 70, 1) # x1 i y1 bo to są regału kategorii ogród + wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points) + sciezka = wyszukiwanie.znajdz_sciezke(wezel) + wozek.przemiesc_wozek_po_sciezce(sciezka) + + # print(wozek.storage) + # if wozek.ln != 0: # drops package + # wozek.drop_package() + # wozek.dynamic_wozek_picture() + if event.type == pygame.MOUSEBUTTONDOWN: # lewy przycisk myszy if event.button == 1: - grid_points = SearchGrid() x = pygame.mouse.get_pos()[0] y = pygame.mouse.get_pos()[1] wiersz = ekran.sprawdz_ktory_wiersz(x) kolumna = ekran.sprawdz_ktora_kolumna(y) + docelowy_stan = wyszukiwanie.Stan(wiersz * 70, kolumna * 70, 1) - # wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan, grid_points) + + #wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan, grid_points) wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points) sciezka = wyszukiwanie.znajdz_sciezke(wezel) wozek.przemiesc_wozek_po_sciezce(sciezka) + # if grid_points.grid[(wiersz, kolumna)] is GridCellType.PLACE: #picks up package + # if wozek.ln == 0: + # wozek.load_package() + # wozek.dynamic_wozek_picture + # else: + # if wozek.ln != 0: # drops package + # wozek.drop_package() + # wozek.dynamic_wozek_picture() + if event.type == pygame.KEYDOWN: if event.key == pygame.K_DOWN: wozek.y_change = 1 @@ -46,14 +127,14 @@ def main(): if event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT: wozek.x_change = 0 - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_SPACE: - if wozek.ln == 0: - wozek.load_package() - wozek.dynamic_wozek_picture() - else: - wozek.drop_package() - wozek.dynamic_wozek_picture() + # if event.type == pygame.KEYDOWN: + # if event.key == pygame.K_SPACE: + # if wozek.ln == 0: + # wozek.load_package() + # wozek.dynamic_wozek_picture() + # else: + # wozek.drop_package() + # wozek.dynamic_wozek_picture() wozek.obecnyStan.x += wozek.x_change wozek.obecnyStan.y += wozek.y_change diff --git a/packageList.py b/packageList.py index 22cbc53..1a08d98 100644 --- a/packageList.py +++ b/packageList.py @@ -1,6 +1,6 @@ import pygame -from paczka import Paczka +# from paczka import Paczka class listOfPackages: list = [] @@ -15,9 +15,12 @@ class listOfPackages: self.package_group.remove(last_package) -def zainicjuj_liste_paczek(init_x, init_y): - packageList = listOfPackages() - demo_paczka = Paczka('duzy', 10, any, False, True, False, any, any, any, any, any) - demo_paczka.update_position(init_x, init_y) - packageList.add(demo_paczka) - return packageList +# def zainicjuj_liste_paczek(init_x, init_y): +# packageList = listOfPackages() +# demo_paczka = Paczka('duzy', 10, any, False, True, False, any, any, any, any, any) +# demo_paczka.update_position(init_x, init_y) +# packageList.add(demo_paczka) +# return packageList + + + diff --git a/paczka.py b/paczka.py index 3d2fd32..87fb725 100644 --- a/paczka.py +++ b/paczka.py @@ -1,9 +1,9 @@ from etykieta import Etykieta import pygame +import ekran class Paczka(pygame.sprite.Sprite): - def __init__(self, rozmiar, waga, kategoria, priorytet, ksztalt, kruchosc, nadawca, adres, imie, nazwisko, telefon): super().__init__() self.rozmiar = rozmiar @@ -68,4 +68,58 @@ class Paczka(pygame.sprite.Sprite): def update_position(self, x, y): self.x = x self.y = y - self.rect.topleft = (x, y) \ No newline at end of file + self.rect.topleft = (x, y) + + def tablica_do_drzewa(self, kategoria): + tablica = [] + + # rozmiar + if self.rozmiar == 'maly': + tablica.append(0) + elif self.rozmiar == 'sredni': + tablica.append(1) + else: tablica.append(2) + + # waga + if self.waga == 'maly': + tablica.append(0) + elif self.waga == 'sredni': + tablica.append(1) + else: tablica.append(2) + + # piorytet + if self.priorytet is True: + tablica.append(0) + else: tablica.append(1) + + # kształt + if self.ksztalt is True: + tablica.append(0) + else: tablica.append(1) + + # kruchość + if self.kruchosc is True: + tablica.append(0) + else: tablica.append(1) + + reg = ekran.zwroc_regaly_kategoria(kategoria) + + # czy dolna wolna + if reg[0].is_dolna_free() is True: + tablica.append(0) + else: + tablica.append(1) + + #czy górna wolna + if reg[0].is_dolna_free() is True: + tablica.append(0) + else: + tablica.append(1) + + # czy na górnej więcej miejsca + if reg[0].is_dolna_free() is True: + tablica.append(0) + else: + tablica.append(1) + + return tablica, reg[0] \ No newline at end of file diff --git a/plansza.py b/plansza.py index 08e9a0c..d2f2546 100644 --- a/plansza.py +++ b/plansza.py @@ -2,7 +2,7 @@ import random def obliczPixeleNaPodstawieKratek(wymiar): #Przeliczanie współrzędnych podanych w kratkach na pixele i = 1 - pixele = 73 + pixele = 70 while (i < wymiar): pixele = pixele + 70 i = i + 1 diff --git a/regal.py b/regal.py index 71234f8..89fbe12 100644 --- a/regal.py +++ b/regal.py @@ -1,5 +1,6 @@ import pygame +MAX_STORAGE = 3 def obliczPixeleNaPodstawieKratek(wymiar): #Przeliczanie współrzędnych podanych w kratkach na pixele i = 1 @@ -13,19 +14,20 @@ def obliczPixeleNaPodstawieKratek(wymiar): #Przeliczanie współrzędnych podany def obliczPixeleDlugosciRegalu(self): #Przeliczanie dlugości regału podanego w kratkach na pixele i = 1 dlugoscRegalu = 40 - while (i < self.dlugoscRegaluWKratkach) and (i <= 11 - self.numerKolumny): #Sprawdzenie, żeby regał nie wychodził poza plansze, jeżeli tak to jest ucinany tak, żeby nie wychodził + while (i < 1) and (i <= 11 - self.numerKolumny): #Sprawdzenie, żeby regał nie wychodził poza plansze, jeżeli tak to jest ucinany tak, żeby nie wychodził dlugoscRegalu = dlugoscRegalu + 80 i = i + 1 return dlugoscRegalu class Regal(pygame.sprite.Sprite): - def __init__(self, numerRegalu, dlugoscRegaluWKratkach, numerWiersza, numerKolumny): + + def __init__(self, nazwaRegalu, numerWiersza, numerKolumny): super().__init__() from ekran import screen - self.numerRegalu = numerRegalu + self.nazwaRegalu = nazwaRegalu self.wysokoscRegalu = 64 - self.dlugoscRegaluWKratkach = dlugoscRegaluWKratkach self.numerKolumny = numerKolumny + self.numerWiersza = numerWiersza self.wiersz = obliczPixeleNaPodstawieKratek(numerWiersza) self.kolumna = obliczPixeleNaPodstawieKratek(numerKolumny) @@ -36,28 +38,52 @@ class Regal(pygame.sprite.Sprite): "dolna": package_storage, "gorna": package_storage } + + + storage_dolna = [] + storage_gorna = [] - if(self.numerRegalu >= 0 and self.numerRegalu <= 4): + self.dolna = storage_dolna + self.gorna = storage_gorna + + if(self.nazwaRegalu == 'ogród'): reg = pygame.Surface([self.dlugosc, self.wysokoscRegalu]) reg = pygame.image.load("images/regal.png") self.rect = reg.get_rect() screen.blit(reg, (self.wiersz, self.kolumna)) - if(self.numerRegalu >= 5 and self.numerRegalu <= 8): + if(self.nazwaRegalu == 'narzedzia'): reg = pygame.Surface([self.dlugosc, self.wysokoscRegalu]) reg = pygame.image.load("images/regal1.png") self.rect = reg.get_rect() screen.blit(reg, (self.wiersz, self.kolumna)) - if(self.numerRegalu >= 9 and self.numerRegalu <= 12): + if(self.nazwaRegalu == 'kuchnia'): reg = pygame.Surface([self.dlugosc, self.wysokoscRegalu]) reg = pygame.image.load("images/regal2.png") self.rect = reg.get_rect() screen.blit(reg, (self.wiersz, self.kolumna)) - if(self.numerRegalu >= 13 and self.numerRegalu <= 16): + if(self.nazwaRegalu == 'motoryzacja'): reg = pygame.Surface([self.dlugosc, self.wysokoscRegalu]) reg = pygame.image.load("images/regal3.png") self.rect = reg.get_rect() screen.blit(reg, (self.wiersz, self.kolumna)) + + def is_dolna_free(self): + if len(self.dolna) <= MAX_STORAGE: + return True + return False + + def is_gorna_free(self): + if len(self.gorna) <= MAX_STORAGE: + return True + return False + + def czy_na_gornej_wiecej_miejsca(self): + if len(self.gorna) > len(self.dolna): + return True + return False + + diff --git a/wozek.py b/wozek.py index a38cfac..867e5d1 100644 --- a/wozek.py +++ b/wozek.py @@ -1,7 +1,9 @@ import ekran import pygame,math -from packageList import listOfPackages +# from packageList import listOfPackages +from ekran import lista_paczek +listOfPackages = lista_paczek class Wozek(pygame.sprite.Sprite): def __init__(self): diff --git a/wyszukiwanie.py b/wyszukiwanie.py index 41c65f0..648a5bd 100644 --- a/wyszukiwanie.py +++ b/wyszukiwanie.py @@ -57,7 +57,7 @@ def znajdz_nastepcow(wezel, search_grid, ktory_algorytm): if ktory_algorytm == 1: x1 = x / 70 y1 = y / 70 - if search_grid.grid[(x1, y1)] is GridCellType.FREE: + if search_grid.grid[(x1, y1)] is GridCellType.FREE or search_grid.grid[(x1, y1)] is GridCellType.PLACE: wezly.append(ruch_w_przod) else: wezly.append(ruch_w_przod) @@ -131,7 +131,7 @@ def wyszukiwanie_a_star(poczatkowyStan, docelowyStan, search_grid): nastepca.g = g nastepca.h = h fringe[index] = nastepca - print(index) + # print(index) # heapq.heapify(fringe) return None @@ -147,6 +147,6 @@ def dobierz_wage_do_wezla(wezel, search_grid): elif search_grid.grid[(x1, y1)] is GridCellType.RACK: wezel.waga = 99999 elif search_grid.grid[(x1, y1)] is GridCellType.PLACE: - wezel.waga = 99999 + wezel.waga = 1 return None