From 2ce075c29f7a35650820beaeb9163744aab50267 Mon Sep 17 00:00:00 2001 From: Neerka Date: Thu, 11 Apr 2024 13:55:55 +0200 Subject: [PATCH 1/3] movement basics Signed-off-by: Neerka --- classes/Garbagetruck.py | 44 +++++++++++++++++++++++++++++++++++----- classes/Household.py | 17 ++++++++++++---- classes/Tilemap.py | 16 +++++++-------- classes/Tileset.py | 5 +++-- classes/Trashcan.py | 9 ++++---- generators.py | 13 ++++++------ main.py | 12 +++++------ sprites/smieciara.png | Bin 0 -> 13322 bytes 8 files changed, 81 insertions(+), 35 deletions(-) create mode 100644 sprites/smieciara.png diff --git a/classes/Garbagetruck.py b/classes/Garbagetruck.py index 08f89cb..59ac9fe 100644 --- a/classes/Garbagetruck.py +++ b/classes/Garbagetruck.py @@ -1,16 +1,16 @@ import pygame from classes.Household import * -from classes.Trashcan import * class Garbagetruck: - def __init__(self): + def __init__(self, mult): + self.mult = mult self.capacity: int = 20 self.trash: list = [] self.trashweight: int = 0 - self.image = pygame.image.load("sprites/garbage_truck.png").convert_alpha() - self.image = pygame.transform.scale(self.image, (32, 32)) + self.image = pygame.image.load("sprites/smieciara.png").convert_alpha() + self.image = pygame.transform.scale(self.image, (mult, mult)) self.position = [3, 3] self.houses: list = [] self.trashcans: list = [] @@ -24,8 +24,16 @@ class Garbagetruck: self.scanner = None self.planner = None self.driver = None + self.orientation = 3 # Niech numery będą tak: N - 0, W - 1, S - 2, E - 3 -- po prostu odwrotnie do zegara self.runningtime = 0 + def getOrientation(self): + return self.orientation + + def setOrientation(self, orientation): + self.orientation = orientation % 4 + return self + def getRunningtime(self): return self.runningtime @@ -135,13 +143,39 @@ class Garbagetruck: def printme(self): x, y = self.getPosition() - return 32*x, 32*y + return self.mult*x, self.mult*y def throwGarbage(self, trash): if self.segregation[trash.getTtype()] == self.state.getTrashtype(): self.addTrashweight(trash.getWeight * (-1)) self.trash.remove(trash) + def rotateImage(self, arg): + self.image = pygame.transform.rotate(self.image, 90*arg) + + def rotateLeft(self): + self.setOrientation(self.getOrientation()+1) + self.rotateImage(1) + + def rotateRight(self): + self.setOrientation(self.getOrientation()-1) + self.rotateImage(-1) + + def moveForward(self): + ort = self.orientation + x, y = self.getPosition() + stepX = 0 + stepY = 0 + if ort == 0 and y != 0: + stepY = -1 + elif ort == 1 and x != 0: + stepX = -1 + elif ort == 2 and y != 20: + stepY = 1 + elif ort == 3 and x != 30: + stepX = 1 + self.modPosiotion(stepX, stepY) + def classifyTrash(self): pass # Tutaj jest plan żeby dopiero napisać funkcję jak już będzie klasyfikator diff --git a/classes/Household.py b/classes/Household.py index 17b03ef..ac5069f 100644 --- a/classes/Household.py +++ b/classes/Household.py @@ -2,11 +2,20 @@ from classes.Garbage import * class Household: - def __init__(self): + def __init__(self, mult): + self.mult = mult self.id: int = 0 self.image: object = None self.position: tuple = None self.garbage: object = Garbage() + self.final = False + + def getFinal(self): + return self.final + + def switchFinal(self): + self.final = False if self.final else True + return self def setPosition(self, position: tuple): self.position = position @@ -38,16 +47,16 @@ class Household: def printme(self): x, y = self.getPosition() - return 32*x, 32*y + return self.mult*x, self.mult*y -def generateHousehold(i, image, position): +def generateHousehold(mult, i, image, position): """ :param int i: :param object image: :param tuple position: :return: """ - house = Household() + house = Household(mult) house.setId(i).setImage(image).setPosition(position) return house diff --git a/classes/Tilemap.py b/classes/Tilemap.py index 8acc24c..1e46463 100644 --- a/classes/Tilemap.py +++ b/classes/Tilemap.py @@ -4,32 +4,32 @@ import numpy as np class Tilemap: - def __init__(self, tileset, size=(30, 20), rect=None): + def __init__(self, tileset, mult, size=(30, 20), rect=None): self.size = size self.tileset = tileset self.map = np.zeros(size, dtype=int) w, h = self.size - self.image = pygame.Surface((32*w, 32*h)) + self.image = pygame.Surface((mult*w, mult*h)) if rect: self.rect = pygame.Rect(rect) else: self.rect = self.image.get_rect() - def render(self): + def render(self, mult): m, n = self.map.shape for i in range(m): for j in range(n): tile = self.tileset.tiles[self.map[i, j]] - self.image.blit(tile, (i*32, j*32)) + self.image.blit(tile, (i*mult, j*mult)) - def set_zero(self): + def set_zero(self, mult): self.map = np.zeros(self.size, dtype=int) - self.render() + self.render(mult) - def set_random(self): + def set_random(self, mult): n = len(self.tileset.tiles) self.map = np.random.randint(n, size=self.size) - self.render() + self.render(mult) def __str__(self): return f'{self.__class__.__name__} {self.size}' diff --git a/classes/Tileset.py b/classes/Tileset.py index c240795..230a799 100644 --- a/classes/Tileset.py +++ b/classes/Tileset.py @@ -3,12 +3,13 @@ import pygame class Tileset: - def __init__(self, file, size=(32, 32), margin=1, spacing=1): + def __init__(self, file, mult, margin=1, spacing=1): self.file = file - self.size = size + self.size = (mult, mult) self.margin = margin self.spacing = spacing self.image = pygame.image.load(file) + self.image = pygame.transform.scale(self.image, self.size) self.rect = self.image.get_rect() self.tiles = [] self.load() diff --git a/classes/Trashcan.py b/classes/Trashcan.py index 9cb21d1..4bfee09 100644 --- a/classes/Trashcan.py +++ b/classes/Trashcan.py @@ -1,5 +1,6 @@ class Trashcan: - def __init__(self): + def __init__(self, mult): + self.mult = mult self.id: int = 0 self.image: object = None self.position: tuple = None @@ -35,10 +36,10 @@ class Trashcan: def printme(self): x, y = self.getPosition() - return 32*x, 32*y + return self.mult*x, self.mult*y -def generateTrashcan(newId, image, position, trashtype): +def generateTrashcan(mult, newId, image, position, trashtype): """ :param int newId: :param string image: @@ -46,6 +47,6 @@ def generateTrashcan(newId, image, position, trashtype): :param string trashtype: :return object Trashcan: """ - trash = Trashcan() + trash = Trashcan(mult) trash.setId(newId).setImage(image).setPosition(position).setTrashtype(trashtype) return trash diff --git a/generators.py b/generators.py index 40e7622..ec52ae6 100644 --- a/generators.py +++ b/generators.py @@ -7,7 +7,7 @@ from QOLfunc import * import pygame -def trashcanGenerator() -> list: +def trashcanGenerator(mult) -> list: typelist = ["paper", "metals_and_plastics", "mixed", "bio_waste", "glass"] trash_cans = [ {'position': (1, 0), 'type': 'paper'}, @@ -25,22 +25,23 @@ def trashcanGenerator() -> list: } trashcans = [] for key in trash_can_images: - trash_can_images[key] = pygame.transform.scale(trash_can_images[key], (32,32)) + trash_can_images[key] = pygame.transform.scale(trash_can_images[key], (mult, mult)) for i in range(5): - trashcan = generateTrashcan(i, trash_can_images[typelist[i]], trash_cans[i]["position"], trash_cans[i]["type"]) + trashcan = generateTrashcan(mult, i, trash_can_images[typelist[i]], trash_cans[i]["position"], + trash_cans[i]["type"]) trashcans.append(trashcan) return trashcans -def householdGenerator(): - new_house_size = (32, 32) +def householdGenerator(mult): + new_house_size = (mult, mult) house_positions = [(15, 5), (17, 5), (19, 5), (21, 5), (15, 8), (17, 8), (19, 8), (21, 8)] houses = [] for i in range(8): house_image = pygame.image.load(f'sprites/domek.png') house_image = pygame.transform.scale(house_image, new_house_size) - house = generateHousehold(i, house_image, house_positions[i]) + house = generateHousehold(mult, i, house_image, house_positions[i]) houses.append(house) return houses diff --git a/main.py b/main.py index bf10913..d736857 100644 --- a/main.py +++ b/main.py @@ -2,15 +2,15 @@ from generators import * W = 30 H = 20 -MULT = 32 +MULT = 48 SIZE = (MULT*W, MULT*H) pygame.init() screen = pygame.display.set_mode(SIZE) -tilemap = Tilemap(Tileset("sprites/Tiles/1 Tiles/FieldsTile_38.png"), (W, H)) +tilemap = Tilemap(Tileset("sprites/Tiles/1 Tiles/FieldsTile_38.png", mult=MULT), mult=MULT, size=(W, H)) -trashcans = trashcanGenerator() -houses = householdGenerator() -garbagetruck = Garbagetruck().setHouses(houses).setTrashcans(trashcans) +trashcans = trashcanGenerator(MULT) +houses = householdGenerator(MULT) +garbagetruck = Garbagetruck(MULT).setHouses(houses).setTrashcans(trashcans) running = True while running: @@ -19,7 +19,7 @@ while running: running = False screen.fill((0, 0, 0)) - tilemap.render() + tilemap.render(MULT) screen.blit(tilemap.image, tilemap.rect) screen.blit(garbagetruck.getImage(), garbagetruck.printme()) for i in trashcans: diff --git a/sprites/smieciara.png b/sprites/smieciara.png new file mode 100644 index 0000000000000000000000000000000000000000..dff4d157a85f0d84d2eb4fedea28c29fc845d75e GIT binary patch literal 13322 zcmc(G_ct8Q_qX1yNOV?j(W6_z>O}9X-eO7g)jL7nderEANs#VM)*%+ zp!jAF503!fSl?Vz+fScQlut%U`iY8+rlE$621p1jZER^^4l#Ccwib{VL}>yYEl8H!1jg$mKw~`f^x=cbo@XyFKa=59yvQb zCNUmjGE!a>@KZ%uIT=Z1OI`HjHz}Q`YHCldt<4>r?M%&#B%VsFt$mmEFdO{b>*?h- z!@?9E8u(vwLifk^whxW(5T*GAIgK?HIf9&7CZd7KQ9i;v?qNRV@jjKg$)6eNwYiwT zsVZUIT`qT5C;wqW6J}~?hWA@BmtEx5BT6E~s^7CaJFoL+qvMiEofA)+6Ho3=_Z&Y= zOy7mvP2?`(t~Q674);DBZzR0Es}Dp@IwCf2R!0y2j%@H^z<=@ZIPr8fRLw(|j|wua z9xkzejvyo8C!HAmHvR3{c!kZPxbXSQ>X~fURD>(i8H->{g}0Ckq3dJS+jM^DDcp@6 zH?;NK|B5;-Wq$sd!}|17$lB8R?RUixu|fH@zu!W7F9Wa-;yKCwzs;LW^n04%GKU6Q z35;c>$zyq!*npv$X~dM$`;YYsS$h}8|3PpxwB&5&mvVIA;tyf(dSGdz9ATb8K}@D$zF@A9uU$4~x_pJ!v;OjfZ384Bb;gdsmmkw$Q5F zkbMPY{g{vI-4Nt}m1P~!=5T!DLEG+3nfE?u=k!Bi#qZyIMW^(uXmbaLXh_v}yKDQq zS(XOW&FX2M#A>g|boh0?p++58;A+7^xw^+8kQ0-onEj4FrynXw{z73>*0kBzd{1e~ zbbU0(`(kVNd49srX8{PicjTBa{&tdMgeGNM-WOHbS9Aq3) z^QvdP3DdC+zQuYTlBXNKFEdP%SMe8t!QHF0Nz`2x_pwa_^ClxTbI#>OeiM>We6=55 zjeHN?85DX5=dJVi;OOwx0+q93%a6Q*lpX78h$Whh=*knbdr6}Lh>z0LHB z{dRYHq)p1Zp%kcOVwHCqpf6V#QmgP=i9`v%aad}3sd+e4!Krzy?g7@Tz7~q*Ql>!_k!g*7irt>_Me<;qxCL=&$+J8 z_#aT~6B7hS$iFNuO;;0&<9$F;xwRk454h*e1^9n;lcq2GwbWj5&W`+5@X@N-=o@1; zXV?4E_a;-H29;@3!@m0ka)K_`c_Z=52|~q>l)E$A)dVEQGL6zRKm_l=z&1!&aWWz1 z6VFT5qSE7vH1eM+svCc`o0Wc)pI;(g2Qf=B^Rc9xVn!Gk7^MJ6vb1 z;)&(w?AWOUHom>YSG43YyoMx^DX)_Nb_pev1<#>oL;)6^oZ6Ez?4(n7o~pkG^!hK< z!gmHce!vW~Nt;#2uL>d-y1Rk`G!l0GerVEwS$|kLm7IjbZ$Nj4e}3m%!gw%##lb{+cv|J-@BQVr7v+ql9N`P= z)ZzP@RksOK%I!fR_63^B#~C=U*&XEm5@{Y?dFJF_w=zH{8E$cOD-DKYdVO)SDlVZ`shs>zSqw8tQjWMUHV+KAmn93CM>p(kZ3{fqCv>|9 zSrmR>m&Zg$N&We4;j*@+`(X9SY01K2BHzm4;tC^=uQu5OjMCr<@SH2B*b?bH3Y1OC z(?|`Vw4zbuE>igUQs>uX=BG}Ecs2r0hz{^CGEw-$uvs!UQuV_^ajGZehFJ*Y0YM)f zS-j;(3V5{3%E?)=51NeETFI6w-B;Gx77JX}3oa9u;r}_Ny%r@K|A`WyEso)mklZA| zC}l48%mBXv$MNMJJ=7QvXZ8==+Zp!N0j7x*#ei;p_Mcy0maBx~{9cAejwXFA+TKhs7FF{d+FPlTOTi^gf5X^B}89r@|%d^#iQF7cdB2{ou2;=wCX?| zq1logzwA$$<33v*4!xT5;;VJ-qZ0cRaXCrbZulDM_^A>Z!kcN=`Q|%jq*+;KHU(Cg zDiJ)AeegL4QDVB~Z@rRsHcs$!FoC1Bl1)RpVicok2Af3vLECUI>uK%CXxKnVcWX?t7U$HD!U7O!PSsHO$VcDt@$* z$A3a{tYwa+*U4MOK34FEvex3f4^Uzi^QmXDl(zZI);21*$w~7QcLbJyqrao}v(1fS zQK`Nj6U@zOK=;e}Prmo2 z#A5TJ#I}U@N)ln(tMkPF_Fo!;)%Dt2C6;{JmUEgR?`MVVDMZzZh}&e}!X6;XM=TG| znLPLO#4UalO%MTzC~HY^+Yhd@|^ z%J;(;==8O|DV5pciMEE>XF|mdli9~3$GfuaoEBY_Y6!EPRXGn*%?30XmqXHj(AuIZ z^dTO#jKMqV@DDgD1n*2}fDp=HJTv#{b%p9ofzv4+vk*?hJb9PT8+|x*{Ef1x&wwqQ z4WUQ<{o-iemIaj+eLw>o6c~2t@yEB{2bSL+`bMf;S$)*`7_hOf?|%0&cj%CGq_SR1Y_jdAFT<_EH4Gdgh!gi z`A|D@;x?C6b43WP{M1X-rnH!(C$Mx+ms*jYykyXN3tb(A0g1gaVrGMu`3VlHsh0^D z;Y3@{I?$&lQ<^}lQ5%K;Mpz|L4%eEwCu~{KxJZBu$Vvt@ha>9C9Ypl7K7A1vBdkwB zcwJ|r=C~(u{MRhPog=hM4&M{2Kx!Sv+QhJkP)aJpREjuNo;dYlB9H;%qco;}W;{Z* zc)RCwxR|7uxa%7n3o08!P5~sN67mdJz@q1mugUC%+nSG|P7CFpP)q_87< zJ@AMv-fh9UAX?kw6Eerlgx|j5M9fF)N8d*iF$09rTGR*JwuBw}G5LgP-c7<@GWwqm z`r<*79`TIDpwwP^1NG7E85`9&e(`7Okcwb%F^jY%%6YXn?C{R`lU9);)A7ajWW{v{ zdmj(F1)d7RJ|V+-saxXQ`c`hwo9M9tfBTJ8f}A9eG^!<;iMt>Z3J4xw!*;jS!}v8n zOX)H(1B>av=9COSEJ0YlcP%wRxA_g?E9F3ohNcl3tFuWg`H&(sS6V$EJ&DCjZQ9B! zop$S9)!Li>)l~F z=0&eeghXfU(9<9+A&?OI(dE4e9!{OU3zLJszGe=uW@LegIW z^EWI)u(#?tlLg`u8Y?EBs3022fKp3@!Jw-k?SwEyO-@)5$3sF%IZiKtGMyoW(-=u( z!*AP{wRv!vY~khkI12Dqx<7g8*R;kxZtWf`OOx()QVmi);@(L=u!n-QRsZYV9+V2| zu}l61<}pc6qlI*s`wR`}2RSfv0Xsq+od4nu-49p6-8dJhTX`w=`1JVO9#({D3NYi? z;>zrGCnomMHpGxJ5G}42T0Gn|{YDo{E+@VEfZ2MQJ886=AD+5~t`d+wK5>Ite<^*@ z_vs?&(JL>v92hghwhtB#m5Z!tK`Ox55SiT|9H9f|>+S7-|J_n0f1zoBqGv)CpV!Hg zf$ZCuVb+-d3gDzbZi?Y+O({Jy)5$NN;g&*0TFIo+j)|<2;6H?BBJ1v&w)0l%>LI@P z(jr5`+YDg$o3*LvJ1bHcy02tOGE)C#urW3nNZ%E4R%n6Ki!I|?dQw1uRj|QGv2~rp z`-LIiAT2VS2zV+SJU(1P&|rb$5{9rZ_r3G3>^V=`9l<5!=WLLD@^Op2!SE2I>&M#n zi{Gq~A3KhB#tFc;sJhl87C%;iIXH2dbm0WTEWTk=69l*t)~>sae+GPC`e#Utd4ed`1~B}H498Z4DQcfcO#CD{4p3tFww4C5WzUY zc104mMu(PSWo3P)X;euE4VBMJR0dU^2)v<~k%YX*W>FX%>KuZqO6jBWw3Y*og5(i@ zQxesRx#bsMs)nG*r85DPh^@2dIhXF%m@{G3k$0`EUBLnV^H-%1jNbjt%|G93xjc_4 zS2t=HPhsan|2$f)CtS9{;PZhNj{%iD73eU$-!)KmTUG}?klk@9!221rg>^W_Qq9)# zBXeI!(^pn05$vA|#C4{46ZS2I(r#?yWmkh^4ZZzIQ)AhNgLZTbVWkvX_!xPqyYL`V z3S_N0B@Z87>ViM{w@nU3W*bzFKU-c3lD~$^ytCQkVyrGh|Lk)7-V<@lkkDw1jgV`+ zy^zGdr3|mH*3iD}VQ_D1qKWwC58J)CZGUdQo%ox zqU#DHhv_@B^YCaPhDGxs*|h;HP<1JFTi z5+&zh2_=v|9c_XMf-Z4gtV~OSMty2UB_S_wXx7Xr>>h*I&{c9ME+H1yr*?^i($S`M zq6k+)3YIJy=Wm0L_U^~OF5RO1E1gT~ENYOeJ+DpQ3(qz%ym5HP*kgSW&^A4pc3eZ) z0>p3cAAS3urfZ3OK>UMdU7;c-H8Rx!8OJpgvFEkbNy*e@)Rcl$a7y?b|GS%Ce-x&! z{S8eL%3cJ&M2oC>e>ppePOwKlfOGhx^C%jqT+x-`0sYf8Q&4mZQk~m#2SbdfB))0? z%5X5PVE*W{z3Hks0a{*LyX#68Ov-=-k*v1G9f#poi_SGqyG-||$BbiTqXY0(iP3F#OfCiU=RD0B@#GMQcEHe94C8}S zFC>v1IC&YVM6=Rri)pPw{+)bCVsD-z#!nW$6@GPaa8N&I3g6QroUnuuV^i=UHl)D& ziqH{N4<>9Li)X*0>N#A31=dZ~qg2o3?DzUep1(gRl2YtX7O&Qj=dV@s;_ z6=lrM<~wH2L!ba8T_UP`v!vvufJMcjQ)#mi$Iwr$s=g=)Xq|R3tDG2{Nr9`x1IEa# zP~rCEOzA{b6OgPQoWcZE7cfRAm2o78S;U1$oK1q7tZ*qmc796{`CJ~f9vo{t(I1qS z^oSNb6{}6DDTNLMp#LIMrc-22Q^rR7MXtiV0s;(g&Z`Bf&UAD#+KBB7_J8jdYkg4L=@dBVW9~JGI$*uY=V5*s0Bb$WMJLf*_Hz+ zVoNrD^vkcKU(9M-0h{p)ihq?si7O+q_m6W3in|ce+&ds9g|1VxwC~76TXqgB(*_=6 zi^w6upwE1r%%>vg%xylD8(Py?8btmCO9;3^s?$eli>$BeG-r&xPPy>==gH)nIwHQ% zwC8KYEWqT!>L0X4@mqt&RRGgm0P!(3>AxF@IWjoTrx0GyaS50Kud}XJd?er@4i_dV z)gzwJwlPGri&3v;U*L+`2n+y&5C01(CxQrFrQ?U`c!8Y9IR-UpSmXg`o;!ro|l zXpaC$u6&75wNx@#>uCa<8nLZ*Kk>2^oYE6s0n9HCp%{5mttxi;Ud>%<Nt}CMhLb_ienIsY6bwhwh4eWCi$!=yT^H}F?(+l>z}`p#a>gvu%npw@bR?aw2)~zd;%j?CA#;LM$U*moZoRy_!pZJb3Dc z9j$Bvo0is#W7rcX7G=2)U+4TogjOc(nW2q%ccyZ-@aq>OS+MJE4R#UH*yg`VpVGV(OI3B%G&}TTPm*7=IN&0ro~JcFBy;DifDeM>NHT-t=2K*^Ff4D8>AM;NzE?L7dzLR)L3(k?mZoRvUO9*&sJM!EVlTcSzH}eQToG}cyJ%mwtf?ZG% zMqe%p3+m2q=mSS9o?tZ>Cz0&-vNY;*M^2vcC5hxE7{M1L35_30zkVp2{PkNP-g-g! zA&x3`(hog;^TOLkxn_3FhLu1st%PV(i(}x1zKHxD+$SKt!8ouLiZN$RDf*^bx zo@6r;$!wKG8xpw9auO;)Gl+m6cRh$x_Dkpm@xdMM1~yl#1pB`_TkmJHDg6sl{E7PP z`%!dHV3@QejNjRdtRpIooRU*L>cTV6BZOH$R;*kY=~GkkSr5 zXA_-t0%@?4EZ>K}JPIxr3h(G?ePOMQX>tFoTHb1vXDEV>sEBRs1T*SudOR(u=zt!8 zSy7MS{ux?-C!IOI+{#dQrO-9hCmh&F2FvBWMJ6X`@zmFwFn2$G5>T=OF0_wsMlH2bI zDQ&_~TM~Bv-7hwce38Mnxw`||P%O_s7Cn3C^s!x)M(iaTf;o_|;}`}}p)-l0ET^F! z+{jf$M(Fpf3sbY??47iu5*@U0d}{kcH|kE+Mj`{%Zn|3{x(3$!uPO7ysd%Cn!5vei z1rKrZBt8GBHbLOsvd}4uW@Am#hyTKToCF#OqNF5UGuEt=-Otwto<9xRCc}=(8B;l{Z@gPj z67V>{9CcfeLz!JmqD=Ar(dxutR)n^;tv2mMzo_PTio0tCG5oJuMC&;lICEvbMGef@ z6&j}%dqIU(j{QfV8DNY85-Uo;Qkqn_P3O&#WXpo%Ch(s70dlP!Fpewh08?h3r0rrN z4gNcx`bkbn(sR9WbhEi~=7y#wV!6Uxb^*}RYxvOHX|NE~9mqvcDqF}0cb2aMGcx1_ z5#jf|gj41dp=Uvho}=KY23oWYQE?UntMf~~wD{;>(J*ukQAnKSp-4b3AGoQ;K055~ znkRvurZ5czBJXot2ctnc%?ru%F=mE*v}-T zaO|(?{9H~t5ziW>?$b>0c|37F&op1Eh~)z)kM>mEm|yyC_vEU|4P{&v?G$+zpX&H( z_wGd-ao5|Pv<5*%|VS%gFBes zkiCmzTQZamFytQR`v^tBp~>h8xH1<4U0`3L zIu2Y1VFIUyc5u?AH-6ocn>FQ2zn^z=*Qr-eU|5%uIDbAupmfRCo`F2y zq~Nwksa}fdqr*t9_UrE7!oLC;$irosaa(g~c=mpA04{CuA=N^0GI?;O3-B>~$D4~M zNTW*E49)il^%F~pgytc&iC5Q7?2F*7>yOdm4oq;?Dx}A4*YEHo9JbaN$Nd5Dhn$D1 z>+UPO0lk6O6E8eCnh}Br+B25c{*(#sphjDsXEc+bCD+>4ZQ&6D0@W(bvlu@30<))m zvkqFkFY{Xu0xuE2Iu;L)*5iM*0AP>Ypl@5rBxo9_t@dkGkEHku?$$Hk1c1)<9f<0MILFSXL|={>5dw8JE0W*o9Q-r$ zM?+UyK{Ufv2Dx6_w#lKf0*G5(q+2p=%bshvV#U!f(}xQ^Tu+H=&tM=FJ?VRb?pfPc zAW^c-BOY%d>6w(xD}fhW^$6ye$7d3SJDgx=2K~sOH;_#4e?AL3dTm}55|=dF(qsTK z1PZO0OlyuXW?}|Fvzmj?t3zhZ;3G`ft-E(54PptD=rox6sdgZGZp|c%sEaNFMdBTX ziZ*p(f{G8zVVy^nZ$;L)&@y=GRl>cQMXy5#xK(3hl!J5P)(UDCvcVp!@7j>IY`78~ zV9%uz61(LngY{8gD{+TAwp#I8vd&g?gmY*S*-O!#(J|k*;N_BN`zX!AII)HT zee@}R`wZA4(gldP!(*M_7{$B^@0?>DTWSZ8vxu>fn7Fl9?3Bej!12+{mDsoEcOM#{ zp?#mltUrVP%wVG$q5h;DF|!;_hkv$)wDEdgtF|_gc;{FO2*h`NL?%96j+vEc7<|ht ziB9aY+syVh{p+UhWkc3+nWK6r`#ufxN307)!(4%nLz<#~VWT>bITQ>;ApTWf7j!id z?u?gU)%qx9f!YOqbXFTwRN;|HTJWZV16Ty#n0|F~0G~y4?BJmyZ31pxLl5Eccav{sG(moc?bNZPu6s$#INK^m!u+5XBN) z4S+>qa+9=Uw}>b9FBV5G7-bNjRxVXw~C z14%#s>EkD1W4ltDs=pfX{fl34FcDb%KXa8CGEiO-?g~0Ak*+A()GVFQyH(0LOMrXp z%kL61>0>)8$^sq~=8z8VSAq`Zx^9_}loziF;lvL=#G@Nvs zD16e7I0PsOo$9=|c4a5`<(!DZ9iQ)!1Sa?tidZJ`F|J>vgKm;RQ2B5#sbcbB1?-y! z1p)FSe4>VzKR)+~f>TQhnH4KNSz@D4@TvWAGfCv*qM{Ie^XzbuPfuW~a+ULUkdWbY zj7GhnT`~Gfa_=rF#D%NB)g{9Y_~_6J^PCw94ek9XUyqo+m=Yq1n7UlO%JIn*^N zf3Io*urXTLjOpVUR7$amEdPvU|Jj1&6Nf(Tjrh#a9f0nWN$^=>`hfD9_PF>=8SWID z5WF&AsT{7~J2arW{v583N+VWi$-Dd(GbXp)fo9{-5P0Z z^AQ_LVxK=1kl2jVClfdvIb*nt_v!80?D?$5*xy0PjSYrR&^aP} zAigZER1(oMc6n0o;E?OsDz^JKOr!>XFLwTRu2FeSz)vGrgGMbLSTCaSAlA5=6~arK zK}p$Nn9U!3*b=he>{V=_SeX<3WmfPi(7bEqQzP;}sbH#{w`V-BUO1`E=?xd=Tt9`Y zJV7(WmAU=bm7bQaa93UMv~iFua;@te)gO|k056w`^LhJez&?!-VkZe>{2axnD96lG z?m0_#mBEnr-15VVQ)+6&jEG_b7ptyD>WK#0pP-cP8SmjVjIi9Mdu@q?CXC6zffPLQ zVs3Nv{cS+#WmxgYj4_Hiu__meM_=l_IkDR83(iEfFAU&ck^UFlvAx6K&Ksfg%-v1fSL~*?F;>* zeoXXK02=ks=M8T`@$)izK)}GdcCxWiS#$S0E`&*~XQ^TJ#!eS)Tty&wPaaEPVbK`z zrJ^)XEu{D;EHB}U1SHnbCn&`C$UA2XOOaVYNiTH&#j99+@_BQ%nFGmf$)_>Fj7VKl z6^gx*j2b_5_|N%8-1O&W_H<3|K|jgYgd7UY@-h}}Kek1hKX4Js4no$DMIAhg(%&34 zpZ;*?v`FvQYg@=~)ch!IAcrcbqGe~H5K4JIY%ZgwI22VCbs<958Z`iLCS~|U9?SlX zZ?iK%RzWI(@xy5C;abgBqul2}s_;BhA%twJ7B^)%PUZ%QJ{;tC-5*z4% z5|Bx1O7Cs2k&Kj1G3jmGZey$>S2ST&oe@rGP~Bn|B?2Z+7&?`e6WJ#|OA)#RVBaUb zx#yoex6UZlQD*{*8;3H*-#rVN+h=M&9+tnFDibHWQqjcvYq!Kk3MIY`Y-JX1(5FD_ zQQ_+RW>j<9G&kPr_4|pau+9Fip-+8+*7tlGFAx#m(qWaF>D3KC-0G6*p+~PMQ zyjuFddfwN*Ww>ctET-(rBf>sp(203)YmK7dS}hkM7SSsW4{l}ojMcQzIPo$dX$}dxZr~lq zRj_&0pRp7gj`f7%yPy}$%4LO{zjP#XYi?&9uXPC;_VZ3Msc<^VQ(lvXOu_uQ_;G}~ zqAlEGnPmpqTV&UZQgKOIGC<37FXLph=kPiH)aURCU;;aUq*TryobXx_SZ^^=WWs@7 zhXFl(Ff32`(BrdN6C$a@Kg6JN#=-cC{;LNEdu3&1M!xvCQ<;M!-qszBr`@Y7ef(b8 z_)x!wJUt~2<(nsp#cWe%%9Y=tO3z#PMAaYN92mipkLmp3~<-)NFFi}urd0veC;ujtL`|Q-#S}{ZDcY|+VH^z2thCe~9r>@}Hychy8uur zfGBFn58VPSY&}GtZ!3_YIFH}pQ7fj9H67?BktTWmqj5MsE~W8>K79jHm=6VIMlHZ+ z8lIA71%neb1s**J;l#e-7B6Ufs%*AivR>%d{eC1fhHty3qqw}g>38I(llY{Bg}Ruv z^+E^Y!HNp8J?DK=&R%q{gvOxMjSCG z$9G}nltlxQ-pM5`JX|)Y!w^x5lj#j}<vhl3)J4<-!?1B~RjSA+K~H10VA`*1*Hx2g^IcF+J#&_50Of)`C0#){dSD;&lAx z?D)=2<<(M*$6nFV?OxLlLqzh*#l0OD9wq zTVXH*T{OLnDurH94N6aZzDn^HUv8$cJX&frPbFH`FXA1P{s~Zd9veMWZn7y?74ONP zLk^tW6~9)T(t7c`*VWF0auRL&L4y0gY8-gav~18^YU%9Fj*G&|!otGJ^;SAha%RV= zB6>dfW_dmOW^eA+TM~NU)tTO@UWqinF{d*k;D@0RJJP7^(yxoM8iIwI#fIfP4+a+b z5{wuOW|9gPTgeF{l7gpi%H2ulTiZ*UmokAJTlo0Pb7Gxxha%sDOX&xW7hA^$_Gbhx zIOM~-dc*uV%pyikcp{9DfR^l1n_5l95R$o&s!Z5lii3f_Yp2(7r*9~eR~jAYt!Ypl zZbeq@Kcl&8lkKhpx=^ zFJ_-m4Zcy0$OYXgroVXuF)AkOAbfJYs2A+Awz}$BI+}mg5EL*S9upbK+dbB5S8f6vKqPM~*^d4SeAg_)Jrg?}@#tsocY6C!&%_biy^(;O0sb%hAE zBHbLT{pM84t(Zg1#%2%Wi?`jS<8wtMA$sEOs07C=W}k+589qL z*B5tFSM&2Tyzip6zDL^?cl`c=vvLhnFg{j1NxwJ>d;G#58h01i2Y#`0UNGPAkz(!y zRh92KxFjkNK>*@#U)ZR<`_rF%Rec+&?3i-5{m@^pv3P2{5V97uYC2p}{?@^x6li+& zp4`6pp~K|cua%)2+{}7rYKo!1!_Vg=Sui{9)g~ho3M=(>b6_6$ z!o{xy_txcw5-Xw^)wjz;{_F!atoDILMTO1bOS1k1|N1cg-v`x_N(lW?xHR>w=>HDU M{nyRYsOA*^f6+Q=k^lez literal 0 HcmV?d00001 From ee60ae0f442a7b8faa48ecda7473a34d6e5a3cff Mon Sep 17 00:00:00 2001 From: Neerka Date: Thu, 11 Apr 2024 20:30:06 +0200 Subject: [PATCH 2/3] movement basics Signed-off-by: Neerka --- classes/Garbagetruck.py | 30 ++++++++++++++++++++ sprites/TIles/1 Tiles/FieldsTile_01.png | Bin 0 -> 462 bytes sprites/TIles/1 Tiles/FieldsTile_02.png | Bin 0 -> 515 bytes sprites/TIles/1 Tiles/FieldsTile_03.png | Bin 0 -> 522 bytes sprites/TIles/1 Tiles/FieldsTile_04.png | Bin 0 -> 530 bytes sprites/TIles/1 Tiles/FieldsTile_05.png | Bin 0 -> 484 bytes sprites/TIles/1 Tiles/FieldsTile_06.png | Bin 0 -> 560 bytes sprites/TIles/1 Tiles/FieldsTile_07.png | Bin 0 -> 521 bytes sprites/TIles/1 Tiles/FieldsTile_08.png | Bin 0 -> 591 bytes sprites/TIles/1 Tiles/FieldsTile_09.png | Bin 0 -> 544 bytes sprites/TIles/1 Tiles/FieldsTile_10.png | Bin 0 -> 541 bytes sprites/TIles/1 Tiles/FieldsTile_11.png | Bin 0 -> 454 bytes sprites/TIles/1 Tiles/FieldsTile_12.png | Bin 0 -> 571 bytes sprites/TIles/1 Tiles/FieldsTile_13.png | Bin 0 -> 532 bytes sprites/TIles/1 Tiles/FieldsTile_14.png | Bin 0 -> 540 bytes sprites/TIles/1 Tiles/FieldsTile_15.png | Bin 0 -> 589 bytes sprites/TIles/1 Tiles/FieldsTile_16.png | Bin 0 -> 512 bytes sprites/TIles/1 Tiles/FieldsTile_17.png | Bin 0 -> 529 bytes sprites/TIles/1 Tiles/FieldsTile_18.png | Bin 0 -> 456 bytes sprites/TIles/1 Tiles/FieldsTile_19.png | Bin 0 -> 544 bytes sprites/TIles/1 Tiles/FieldsTile_20.png | Bin 0 -> 464 bytes sprites/TIles/1 Tiles/FieldsTile_21.png | Bin 0 -> 521 bytes sprites/TIles/1 Tiles/FieldsTile_22.png | Bin 0 -> 580 bytes sprites/TIles/1 Tiles/FieldsTile_23.png | Bin 0 -> 504 bytes sprites/TIles/1 Tiles/FieldsTile_24.png | Bin 0 -> 613 bytes sprites/TIles/1 Tiles/FieldsTile_25.png | Bin 0 -> 546 bytes sprites/TIles/1 Tiles/FieldsTile_26.png | Bin 0 -> 559 bytes sprites/TIles/1 Tiles/FieldsTile_27.png | Bin 0 -> 443 bytes sprites/TIles/1 Tiles/FieldsTile_28.png | Bin 0 -> 592 bytes sprites/TIles/1 Tiles/FieldsTile_29.png | Bin 0 -> 554 bytes sprites/TIles/1 Tiles/FieldsTile_30.png | Bin 0 -> 584 bytes sprites/TIles/1 Tiles/FieldsTile_31.png | Bin 0 -> 551 bytes sprites/TIles/1 Tiles/FieldsTile_32.png | Bin 0 -> 571 bytes sprites/TIles/1 Tiles/FieldsTile_33.png | Bin 0 -> 487 bytes sprites/TIles/1 Tiles/FieldsTile_34.png | Bin 0 -> 519 bytes sprites/TIles/1 Tiles/FieldsTile_35.png | Bin 0 -> 538 bytes sprites/TIles/1 Tiles/FieldsTile_36.png | Bin 0 -> 531 bytes sprites/TIles/1 Tiles/FieldsTile_37.png | Bin 0 -> 505 bytes sprites/TIles/1 Tiles/FieldsTile_38.png | Bin 0 -> 139 bytes sprites/TIles/1 Tiles/FieldsTile_39.png | Bin 0 -> 584 bytes sprites/TIles/1 Tiles/FieldsTile_40.png | Bin 0 -> 588 bytes sprites/TIles/1 Tiles/FieldsTile_41.png | Bin 0 -> 602 bytes sprites/TIles/1 Tiles/FieldsTile_42.png | Bin 0 -> 599 bytes sprites/TIles/1 Tiles/FieldsTile_43.png | Bin 0 -> 643 bytes sprites/TIles/1 Tiles/FieldsTile_44.png | Bin 0 -> 597 bytes sprites/TIles/1 Tiles/FieldsTile_45.png | Bin 0 -> 530 bytes sprites/TIles/1 Tiles/FieldsTile_46.png | Bin 0 -> 535 bytes sprites/TIles/1 Tiles/FieldsTile_47.png | Bin 0 -> 590 bytes sprites/TIles/1 Tiles/FieldsTile_48.png | Bin 0 -> 626 bytes sprites/TIles/1 Tiles/FieldsTile_49.png | Bin 0 -> 602 bytes sprites/TIles/1 Tiles/FieldsTile_50.png | Bin 0 -> 593 bytes sprites/TIles/1 Tiles/FieldsTile_51.png | Bin 0 -> 577 bytes sprites/TIles/1 Tiles/FieldsTile_52.png | Bin 0 -> 580 bytes sprites/TIles/1 Tiles/FieldsTile_53.png | Bin 0 -> 549 bytes sprites/TIles/1 Tiles/FieldsTile_54.png | Bin 0 -> 529 bytes sprites/TIles/1 Tiles/FieldsTile_55.png | Bin 0 -> 561 bytes sprites/TIles/1 Tiles/FieldsTile_56.png | Bin 0 -> 555 bytes sprites/TIles/1 Tiles/FieldsTile_57.png | Bin 0 -> 555 bytes sprites/TIles/1 Tiles/FieldsTile_58.png | Bin 0 -> 554 bytes sprites/TIles/1 Tiles/FieldsTile_59.png | Bin 0 -> 571 bytes sprites/TIles/1 Tiles/FieldsTile_60.png | Bin 0 -> 551 bytes sprites/TIles/1 Tiles/FieldsTile_61.png | Bin 0 -> 548 bytes sprites/TIles/1 Tiles/FieldsTile_62.png | Bin 0 -> 537 bytes sprites/TIles/1 Tiles/FieldsTile_63.png | Bin 0 -> 557 bytes sprites/TIles/1 Tiles/FieldsTile_64.png | Bin 0 -> 545 bytes sprites/TIles/1 Tiles/FieldsTileset.png | Bin 0 -> 6813 bytes sprites/TIles/1 Tiles/FieldsTilesetTest.png | Bin 0 -> 594 bytes 67 files changed, 30 insertions(+) create mode 100644 sprites/TIles/1 Tiles/FieldsTile_01.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_02.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_03.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_04.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_05.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_06.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_07.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_08.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_09.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_10.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_11.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_12.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_13.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_14.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_15.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_16.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_17.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_18.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_19.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_20.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_21.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_22.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_23.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_24.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_25.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_26.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_27.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_28.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_29.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_30.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_31.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_32.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_33.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_34.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_35.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_36.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_37.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_38.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_39.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_40.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_41.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_42.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_43.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_44.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_45.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_46.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_47.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_48.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_49.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_50.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_51.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_52.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_53.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_54.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_55.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_56.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_57.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_58.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_59.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_60.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_61.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_62.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_63.png create mode 100644 sprites/TIles/1 Tiles/FieldsTile_64.png create mode 100644 sprites/TIles/1 Tiles/FieldsTileset.png create mode 100644 sprites/TIles/1 Tiles/FieldsTilesetTest.png diff --git a/classes/Garbagetruck.py b/classes/Garbagetruck.py index 59ac9fe..8f2de58 100644 --- a/classes/Garbagetruck.py +++ b/classes/Garbagetruck.py @@ -26,6 +26,7 @@ class Garbagetruck: self.driver = None self.orientation = 3 # Niech numery będą tak: N - 0, W - 1, S - 2, E - 3 -- po prostu odwrotnie do zegara self.runningtime = 0 + self.movesequence = [] def getOrientation(self): return self.orientation @@ -132,6 +133,13 @@ class Garbagetruck: dist = abs(lok1[0] - lok2[0]) + abs(lok1[1] - lok2[1]) return dist + def selfdistance(self, target) -> int: + lok = target.getPosition() + own = self.getPosition() + + dist = abs(lok[0] - own[0]) + abs(lok[1] - own[1]) + return dist + def scanTile(self): self.state = None temp = self.houses[:] @@ -176,6 +184,28 @@ class Garbagetruck: stepX = 1 self.modPosiotion(stepX, stepY) + def graphsearch(self, target): + fringe = [] + explored = [] + result = [] + initial = self.getPosition() + initial.append(self.getOrientation()) + fringe.append(tuple(initial)) + + while True: + if not fringe: + return False + + elem = fringe.pop(0) + if self.selfdistance(target) == 0: + return result + + explored.append(elem) + + # KONIECZNIE SKOŃCZYĆ!!! + + + def classifyTrash(self): pass # Tutaj jest plan żeby dopiero napisać funkcję jak już będzie klasyfikator diff --git a/sprites/TIles/1 Tiles/FieldsTile_01.png b/sprites/TIles/1 Tiles/FieldsTile_01.png new file mode 100644 index 0000000000000000000000000000000000000000..d359f30d760209f53f695b83e9f81ec986dc035c GIT binary patch literal 462 zcmV;<0WtoGP) zvGV`-64oKC^pzh-JiRnV$*l+FsG*gS*et>L=H0>=aspRp0^C3kPJ#srM*tUB@sH^o zF3vde8@`#yM*AIwDPRCji1nA7$uzCR{*VL732PN+X&ZQBVjj2W!#+V47SFL|VtU`9 zNlw8>eC2=LbP_<9SOtvOw9UIl0jlvef1RtH+4YwvKq&w!WztS!$~l#7PSz?TrL7s zfI0mJE$L+i511iI4ky}-eW}8OG(I2&s5Wy19I0}3ZRD=@2uKQUN{bE0N~N^ zKC@^pni~(w0M_CqBM4X-y|f~?Qk%JA{?b-f8N0R9;1n+a literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_02.png b/sprites/TIles/1 Tiles/FieldsTile_02.png new file mode 100644 index 0000000000000000000000000000000000000000..713909e51d7dc90306e1f7851fe111776d4dbcf0 GIT binary patch literal 515 zcmV+e0{s1nP)Cw-U_-PA;G}Jz?b^unk1Jx;XFh+pX1LzU!3;gdU1Af z+?2@k@^yaF&HGL(-&S9KUHcV(c>{6yXbL6v?v+~&Rz_mCfN{;#!Wa?()wwVlU_(+Y zqi_Z6LKSC<;vn5|%Q3q#$Od~tnLLIe3Gu$y7_PB`{k{j%6V_&ug_-fjXdbukw>JT@ zuy~9u1JnD?+T;*?i=R24cO4Xv0`JDq^5B&AGXQWK18cU^*1*U_FxrFoOw34agT0-yl#B=o z!Nuv58w2Kg>Y@ik;7{1MclVcL;0z$8mkVL!7~B5}FaWK94crybQegl9002ovPDHLk FV1m}3>WcsX literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_03.png b/sprites/TIles/1 Tiles/FieldsTile_03.png new file mode 100644 index 0000000000000000000000000000000000000000..6e07a78cbde4b254c298433726042c0c48954434 GIT binary patch literal 522 zcmV+l0`>igP)OCk&4Ze)TZUN(+T~hCbS#swTfRT{3M0ooqp><}< z10tRA(+Y}htfDa|Q|kLlMIn^x8i}2&-|N~Eu2L^n8pVT8RlK!GDFYzYH>%c98Z!3? zG}&&lCXB3oWTnf`B{M~WU)E=5=gj>atwM!P1D6A)7GeYdHi(u=8nOgRWzQvCpN13+ zx>i>XkE@xG4Qbny4==uCUG_9C*ZUOHXc*agy)JNN@vduk?$)B^)mgrR7WKi3+igvw zoflvQQRT*_Y+jVcDIudD`RHaP&?JbTw4UVxE3|FTUqRZatm0pi7=oB%$e zZB-P7BeWpcuqP$ZWFv(MqiPy?485VkZL;okh08V8ARGdLM-~a#s M07*qoM6N<$f>S@@xBvhE literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_04.png b/sprites/TIles/1 Tiles/FieldsTile_04.png new file mode 100644 index 0000000000000000000000000000000000000000..563f489549d676943cabf79a01989a6a0f74e18a GIT binary patch literal 530 zcmV+t0`2{YP)mxm=v6Sk=jQar}M$iPPrkc5!ia z>PqDG_)LABwlL(im+*d zPKBs)B8Zv@Cd!6VtJj($XR0-YEPOE8cw`Y}1YW}|Pu?(cSW8^(sbIwsl-yRw&+ zPhBHD>l{1F9HUgEmdaZXTAYM~xYn~smDhq{85`vOStve@1s8+8$ZCMpjsCJWwG=?w zKc8$^S$rOkM4$#ssRZvz-%HWke@x=M2c3g%9v-hPL{uC>KVSN|H2@s=d3zb*Ydl=HkucIb@?BYvd`O2j|GD0Ayc*=uklBr=OIG5og>2A=?YCX@?s0vs%*Pz3Y> zjykz|0}Sdn=$c+uxXEv~zhM`)-6V|zZTi0C@L&W;)+J*szjgaeXQHrSc!aGOAA{QlIrzg z)C}vUt=|SKr)0FebO+?){fkZX=3=&?|2h5RQ(Uaa7q|wzG?U-Q17{J`yt%uI_xU_I zl@L2Z?D+SU65*Dc#BcXQ;QJprGqYO9AGxHIsNWAM=yuCLh2umEI14i$9jP-10^x35Pe7fgVY``dz`@))fO7y;1Ro~B# zdP)PE3}Z8=1}q(0!S4KdnupVat#HslrCje7`5!E1BoZHkGJ2Fg$%FIB-YV){>l_fM z5<)gA`<_ytKA@}&Hs$kj(K%{hY$SWXL4x$7&y)C5!yYSy)HbY>9^=dyiwuGHWar6d zKs&+5*})nJEg#hm6ijo_y-dtxhnmRM_G&}v7pJ@rES13He*_o+;0OBwRiKbl00000 LNkvXXu0mjfPx|r= literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_08.png b/sprites/TIles/1 Tiles/FieldsTile_08.png new file mode 100644 index 0000000000000000000000000000000000000000..10ff6ad4c15be0d0005a64ce414ac380942a6102 GIT binary patch literal 591 zcmV-V0^O0+_mlWUYo$?gvHkhy{PiZ! zFSqKPV&HeR!Taa+{v;k(^(8&L&VJyo;WsZbxCrJ{-uc;}-$D^gwcgJ2j6ORFfm&5I zyZeh#?-V#Ap&5C{d!Eq)DRK2cr|MsWm4tONtiBpG>*~{G07324UTqFA?49#i6$`Kg z7%XPpdg+Bss0P7Cnj^iq*b1Y{UFt2WwhPCl^m~=sWbA00sEN5q@*6aya_KY87ndXf z0QZvBUZH4pW|0C=?39Eg59S3U^o~Q&54k;?1Nzfa!H`Wp9`DH5H=sy^>m5d((N>wR ze+iz~*=q9r^uPx6O)^dIZ`%%9PDpIQyQ--?3#k~EmNe*^(Xp+;~AXC;()%*}n z#zm>e7GcA*vmfyEAlOUt{bo2E;3k_-2AXM8ixdEac_PMoPGy2k_Rlp&vLzT2kZh*J z*W+mLb<@}wCdSF53=y-UvlB;v86lgumW(`bqySCc%An>aVGB6aR3F=Wa3F1gfcRfw d^kDHPzyO}lDd%DSa#sKV002ovPDHLkV1m({5L^HN literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_09.png b/sprites/TIles/1 Tiles/FieldsTile_09.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2d91c3535a7efa692af312b6e07b57f3e30f1e GIT binary patch literal 544 zcmV+*0^j|KP)p?pK<_3(Y00;ow$};vEUokK3tLIN#HZN^Ii3Zt8mo^h9C)!KI;q}|H_nWg4J}g za1)-G_wxgO&R?%DePmX8LM;TD&=Q#8XA>TxSs~(Wf+hE=+E;8u#6*-Q~SjV0zvQQY3T+u{v!4s(%xr7*Aa-JPaRZON~5`L@Dk{KU3Ba8*w z_02>8+DQO87-~RTijPcSgneH-muNVfP$8ol4zl^4OOgz@e*ggf;|xND3=^rf3%W?q zO(!-;81kTT6{RVbPuA2){^RdZ3P89u`JAC5FZ?e8(NmvLP~Y;$tFus=av{!o7Nl|Q isNt!Q$e#A`CBOimaRxcYa1QkV0000ZTxDJ0Av2QKRR9EVgQ$HvWUPIow=sOQO_w1}-GC14 z3?;EV$=~BGyo)g=$;$nN*9`KFNukcJv^15PA~AY0c|-e~F3BhDE06$tSO+i?kSE3G z_Wl|l?{8ne6QU*Zg8(`y1!=&{I8c33BEkMjgx)lh+e)ry+?RfVf}FL|NX)R5g#98VEl)Sjufy#`6DkJ fU*m!+zXA*ZP7?Gj5BZm700000NkvXXu0mjfc|r2I literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_11.png b/sprites/TIles/1 Tiles/FieldsTile_11.png new file mode 100644 index 0000000000000000000000000000000000000000..ba458e97d0f03fe0a44740e07f1b78f175bed744 GIT binary patch literal 454 zcmV;%0XhDOP)4PfX0?#q)SbkcGulY#Er|wP=x3@E%|J zUpJj3&?VME*W|?7Bk0i1K?Tn-mbzlsbJ!y2ovAh>A)x}V)RZWY#KmIqFPVYR5GDCTkzpaRV4Cuq(r zD@4EyNoqLIrk_g{5u_=~8Nx=bqkE#8PB_R@Z!UnIVtle{Cwb;|NCN;}!{^Mbd(qVO wpbTJbUUCHi-SRSe%y+lX*ixJ$C*A@K0OZ!?A&93pwg3PC07*qoM6N<$f+j=BJOBUy literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_12.png b/sprites/TIles/1 Tiles/FieldsTile_12.png new file mode 100644 index 0000000000000000000000000000000000000000..c5acc1674e59ce64e01bf1d8e16eeaec32cb267e GIT binary patch literal 571 zcmV-B0>u4^P))6e(I<0OdN@*FSE%P)FLx>spT7u-yR&hJX&rUGt?-F}tCnC=8bYDHch zZqG*1v2gaJ&48|-NsJdLarQ{3Xg{5qq;VJ)AC*`(`Dr4cMIFRZWG6R_&T(whHCd7y zoy@XEX$2<8fwPe6mtMb^3Zu$R=(SgACXQ2S*DAEgx}tTUst+Ov*J+4!$(i`YDG6|( z_mWXwPmy9~@pXW;BM6^3xGyMAbWMVmgCHKjr`JMU&KE zBm&QkWxAoDsrkacFUpXoxHjl@8b z6P&R@(e?{GBRqIlcASbd&}*a^Z5iL>))|AVn~h3(Qff})b*WP-PrvZFTh#0vgDF12 zXvLn4fpO6)E}wSKV+hvzLto8O84S;k%9DzEQ0Xv}q=hgcA(2*JVgs%&U4<41%?jtIaF` zPoXA^gfK+(|Wi$(Q;Tw8m=5|8u1hG>h_h;l&2J)u|M!PI{$K_|g$zey4#H%k7*I^MF2mrEj~-`5 z@s8-edU_-Pom=AKP)e)!MS=~t*feibJ`kyFsJdf9l{qSuwXtey%DOW^eI2#B%cg=E zBB5N~kDjL3ZOX0U3LOSc2Ry38AOL3Yu1Xl94&;4eOaxqaLqiOUPG=5(7b77CY2MHu zR%FS&XgAL1`=pa&^t-9PN4{#2u5*{`HkYQYa>JOF>tK$?XJBSBt!3O=*d|&X7d(w+ z08|7gjH^FwX8><5s`pRct9}e{$Y^SoMXy>>WVv(C=TO@!D*LuyXk@Y*{EE!dz1!Xc zJpt+t6Z&1cO95aSC1bCn*d$076b;Rzcd!4fa&$Hg8zkaMcPqX;cAB=8be{F{^RI62 e84MJA5?}zvTnH)92Nyp800002fTqtrsGaqj>7e7>94=iRzmD5X9h zew4R%$2%2SAManJvaT2Y;i0jI)?!azX@7pYrM;n_?eXG3omAcmt-Hh89g^?u<2_E! z%0;YMVzW0n;k#h_NJZc54+f3L~pAT{S~NHi$wJZZ6A3< z(m-RbMLs}CDn9KED&;;X8*)SBDDy;2j_D3w8SIc3XBT?v1pWey6p8K>J6kX#(EAv} z!<^)p?!K@N^?@N03otF8VhOx0}kbMD@xT|8fL7$1mf%5tS2ATq@tqozo9z7>? z&utDx#);|T8cQ<_2|D^*@H^l{OS`zn(%7ewfEJskn-P;YY>Rz}-MFZA3oPP@@~w*n zNzpVv>YT18--8^5(xugvmoB}=nQy1;;2N)+_OBvM82L||yZ=QXPv)Y0rj}vg-nquk z1;Efv$>^rJJQQ_StN0HFu!zb|dV1-TAY>3W05Z{~5@{YWgh>%_Vm$0B9-B3xz@COg zTN|4#CS)=6|MKM;_X_tLsiMn buK)u8PAL)&WMERr00000NkvXXu0mjf(%26B literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_16.png b/sprites/TIles/1 Tiles/FieldsTile_16.png new file mode 100644 index 0000000000000000000000000000000000000000..714b8ece1493bf9afd2919e86205230898f51102 GIT binary patch literal 512 zcmV+b0{{JqP)(bpVZ_kKFgE^IB76UVS#kP4k}2u zwAuIb(~-A-*^pO9q0FTE=gj4<5s$itPNQQscTx@W+D1#0Fp29}iz0e8F*LF*dd%00RJEnC*SL6N(rB0000gCDek}ls3<8SaR7QyLW6{a3n~hp{hVR_+41ZunIiJqJM(7e&AiRx@pg52 zeO9E{%kyS=UM{OLe7SwAx9|1$%@Lk2*8cVCm+u|67Kt{F-n^_zBzpYtgJ(nsMh8%& z8!}a}5qkA;0z6{m0O;6qIAS;@oeUe(nR5b#Hc%ZdK}HVAGgaDQJe_{ET~w6=*jfK^ z3x&PJJ&eA8lBF`493-8!2VnP1?K&rgvq#sn!5$f7n75~oZESOBQ7kQfYA}kDOgM^E zQk4KRE>sf-4c0b2e|Zic6R!#XHYj((1<6u7VbC}U(hIe&y=4x#L1chSi9V?iG8T>{ zW9=pjg-@Y`(Jfp;JC)=XpZ9nFyzOK|O5D{nQb2g=mlfvO$F7kk>p5<89qY6xc1c;7 zpN$>>45C+ilUNti84HF*HV&euQ2T`h-D%kDvfIX}+b&eW!*Y<8 zzDiXn9!{q#dyECc4gQW9r_|y?43}4ZXm!|&iuu{Yjt$ofF9S(#vICjHp8x{@w^`)? T`5UHJ00000NkvXXu0mjfH%s5j literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_18.png b/sprites/TIles/1 Tiles/FieldsTile_18.png new file mode 100644 index 0000000000000000000000000000000000000000..9ecec36c0b83ab2a0fcb6df140ada7fb2a153777 GIT binary patch literal 456 zcmV;(0XP1MP)_)jb zUGCHM&SUJRF<}y%l3Sk_cOwJEm&a_Gf?pE4Ro~JjracZ^zNrGILsU5tL{9{jvZ2&! z+Ee64mKGn}SA-~(+vfSag=9{W5ALNHUMHaZ>#dyy4^^ihAqfwygpyiJk?-&+G8d~>PDUapR7 y{3JW?&9Wb%j_kXBbD}+1)jtwhsRIG!A;17=i`4^kQJLic00006Ak z+pfJ`w%szk+<$zzb8sjA>pzeHe;6gj(%t2FgQwTz#iAN8|4m*8Szu>~*se~Z4*CG} zBK8;QwfUs){&1bVuOUnEDG&)2U$U4x1sDx<2Fh88*X?3W6M*gfJYj9 zTFDrsFh}m*VQNR`6oC5r6p5tc>FRfEM^K;L1-X+et5e_c#_Z~#J(ziFP_%=hD`g;1 zSIU)JS+tnAbJFx`{msf4d2{T*?5Y7OoPZ%X-Yr(ic3w!6wU#sv*r2G7L@uxlE42q6 z{rbiQyp1#$I54l>eWx=BVi28=XDO-@5z;h_AtFE^ASUEcVaVjt)UroO5p+qtGt8xO z4gC%raSE~oS8Nrc`$?;H3Tmc}4~BLwS)-X{t`f%`r=G>Sm1K~2khuHf+EY~rG0WbcEP)%FoH(?5m4K*;J5zP?Lf%&h-Fpd-GnP_o4=iZS_y ze&5I_I!beooSm~Db#4h)){B=$@qkvvS4))gLP+h4sy$$j%r!!qY&CfU2HraI(uJj9 zS|swz`s`}S980tc6*>%@4z$#X5dhdA*(zbk5-6En3b^iu5Db=CXAZwNBOw>kww4bR zU$QUTjqCaTJySGHY*FtETzS0f+$~Kl=+Dmj21};^s+vTo^5HNg)7J3fTpo@Z{Ix7e}KBfSl*?( zv;ne#(rsCg28t#>53)$QpG$XZP97Y~PTk%s7AJCns?O2HpObk5d(u+wP=gtvUWVPq>z4P6>vu7_4o168O zG3Iq~G{M*$=4N1gyzRt0w(FcT7)1&ocloN#{} z{*2_mWifkvzMEohbXe^MihvG4yGP}R<@4{ z+uI+KCJqa2su&fIJ&SnZ^68s3m~caoL#rtkAyyu|#!u`|o9+bAYWK5_kb5@6dgEzz z>SGWQLb($*xIv7n?L5qQl9R9nxPEtLWhOShegGVpL)~?+iBGg+M~7q1$QuSUh1PwN zSx<;TX_TMUWe{9g&&>%sUPqbNxk+^G8eJ%jp|uzZ5irU_OKmiatvPzu_5d=#no8y; z1+0f9GvzMpCK(vs>&3aG*YiKLscR+U1g`VH-z~_f{31&=yCDbZ0WuYUvzoxjNQ2_p zlE+v3Pxnmz!;2pcIshUMm`dMhpyu%A>TxwxsD&AOpE-eSIgIK$lHkFZu|XLKV(cZ-!<1o!pr zC9Uj@^SES->B4H<|C5{f2+;lBFLpq5E^Kuuf%{3bMbkzA4yBLCb?)uD@iD;34C30D3-4q)sA(qDs;a9w;oIboxN!3eZ@G#q#N%R6!0BKPfDw z7NS&Ysbo7$WOSMD^Uz)bBQ?-;nJZ?t5z3M>-s#bqqlNq3AzGRJ ztka_9HlEgYSZ7JMLKiJ3$8oA7i0;_Q8n_fy{rXvn-cgZK7*s}mtagCFmHiy=gD?oW zRp=YIL*N|-9!Foqcm$HesklCFxhIkxQv^7Ok2|IBS*9v7HoNi5p{*gE&y~Za8_jrr zI4OdZLKu|y+LH*PWAH5|vYVz_8XT_0OtQtKOr%4d2$1W{{UuWX?<-PZGDZB3?4&g~ z^f#zn4MIgq+^|1-6ChWBkhfKj*h?mo?g@bpvEuplE_3^kspp1JYK-i^1sDM0yCp^a S2xM>o0000{M_I5(6^>PFx5H1hoT zw!7?heU~cVU%$dSgcbj#7Zi^_oKi~bK{;x0B_uM7Fy8&Q5C)$BY$k*o@C7(nLZJxA z1q|P)&H-u0C7;PRBiV32V3-1izzMd#x*1L5itGPq$j0k z@)@dLS@_B$dderk$UUf5?5cQe=%--Htk04xB!<>kZy>m;1Hx)GPD_P0nDvH}VQ4M3 zLX>j33Sa<(_6_<=FRR?-mz!_5b!WpYjT3FgzGUzq0tD+x$;-l`ZQY9@x_a`}na5U0 zW*$tY`&JJy6htsgJ8gN`e&Q3S3Kc`-eTFk?nTwXjgL;U9JHPxR@98z63Mq6#_xEk?M=k&1n+Rfrw3EX1sYy<1so{(k-+=s4# z-TrP(lh%Z#jj8(LLQ9Vo)~T9Zmwo|>&JxAn&+@<@dV;V+3J`jRFxX6yO~p1Q@P@i5 zmN=h@cw^rgpGP`rlmf}MDfYGGX5Ru*``|-p&Z7Opmg0f3H>D`D<1(re>^>9guFFPI zRv+c2OW!M|Z;AC{J-F*$UyQC11U=$IMx)qbjq|rD5{TUa$H(j6J_7jVxMRx@Od!@_ zK70mjcqSfYE>wj?4*o|g0ZVK{-UTl(MlCgHs|)A2J7_hUw?#UgU45zwIaCne6{fsx zw4Zr9mooX+l;<{R7*hj1l{JEr`hb1Ub>9*Hx_bD8aYmcYZR22LbGo;5fJSHBD!+kq z#d(f6wzb1BDP%b;H^Z?M5tx3i{*xbBUVrpz3AH}hO-2yx*0P@Boe~`E%4gsxk!A6= z@@vKYoMOYWcYGcIXL1$ux>@go55@j`Ni&KMI6Z(fP!n5Xj5ELc5HN30id0J{KDiK+ z9VX*lZ(dF}`MQma%&0MA<1(|*#z4Idfv7HFJzvkI-}*@<6sj9SNluA5C+DBvs><68Zcbr>U}(x zcmHX$6~Ehd%NKxXllih`%QqB*Y&wKVY!q!DqfZ!{Zpk^8Z-u;lKA!g~A`EzEj9e#H z8aWR_E)I$jO$GdPtmHcGiG-YaUtY@?*iwz0e5QQ~yf4c>bEt z19*|Y=wwtDLEv(X5WQ^ExN#U%0x=GFea^8O?%L?N&jYC(yw64gNX(mLlGjoy1op-A z)M`9kS^GU57xG%9LXh(!R~GM5yGhsLRPf8yIo*P05>1^~X43m;9-Pp;HI1!_?aQih zUON+J6o8~+pPnLUw16Kj{exRY4!~(*Is~)I7a?Hqr_Td5TgcS#rq!&efRT2zSV?}b z0n>^?mCQLAIBdJ1%2ZY{^&0wDQ#Ij1Q2-8OZB~|LMk+`ey&tGZa)WEv?@=X_NsITQ k0(Ek?n(m+=>PLV90N3Cnj^wYnxBvhE07*qoM6N<$f@z`kp#T5? literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_26.png b/sprites/TIles/1 Tiles/FieldsTile_26.png new file mode 100644 index 0000000000000000000000000000000000000000..b2a8d837774f5258538c61dfe201b5ea7ad9ce4b GIT binary patch literal 559 zcmV+~0?_@5P)RCwB~Rnm-zI%7R?Db)# zl$tM!?e(v+WVJt60r^;e!hT*Bw(_g0&3#vsH+q2RpZhcNwN>9rCcby0JZf+!B-jvM z&KApeEm{6B{6CVp7De{-ay!vuT$&xcT}b0Y5l99&x$rvj)ZdsMg95U_J|E$IFiLQZ z`_;`Q@|+WYaFI5$SyRIT$!y+LuD2?*H>JbDN)^mRy_?xg>g}i_}0M23HV5E8+K5z_+s~Q?y z)4|#h!JX;gyLLF3c$W1f8O?6?d}wmGKdMUOmnNFo`Y>q+A%?J1?zN{slc&raZZ{2; zG%!qwsbGoOG_e=d*#Tl5nO`CaaQ-3&21CT($j-I~hJ1pG<-lj8?bol5WB|kpF6?R5 x0d|6kpgTn1L#&xid&QY8xFCcaBl|xA1^}}I6H_r$I1>N>002ovPDHLkV1f_b`)L3G literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_27.png b/sprites/TIles/1 Tiles/FieldsTile_27.png new file mode 100644 index 0000000000000000000000000000000000000000..d2bf2a37faa3b9900555f5ab2df7ef35a802c370 GIT binary patch literal 443 zcmV;s0Yv_ZP)`R$&q0obBIDfMyYGw3>v3PzrfN(9ulwy4s=S|_ zeYW;VZ+Szje4G!w12M=D?hU!3*fjmvg?ZmoVx>@Y|EDn=do&<|r>NyE3eXtsvi37K zomo7M{?gO>4)~Wq5laIATWEproB*{<6Yn=wWLxZdMgU$3090gTR+a8jgJX{vIHeAo#BU0|25D-wEqYCcyvz002ovPDHLkV1hABz4ZV9 literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_28.png b/sprites/TIles/1 Tiles/FieldsTile_28.png new file mode 100644 index 0000000000000000000000000000000000000000..51d5ed7d6ed6f0ebaba942f0aac618e3853a57a8 GIT binary patch literal 592 zcmV-W0=mmg}RjfrD zMqdXmPCmF6Eczcp$~#Kdl!D~IWRxBXCr&#pVOCp5+Hko?WX4FO7wgI0@cLqusRKI1 z8pRfAq_&6vVz`xc_ZV$XTgJ)4rf~1f2^!mxne<@TV33&;W4oZk^l6se;wylq6drIrS3}|> z>Alk)&I4a2TZI#3)~cT3of2!maUeTawvnm&wvD->dhUbayLWybAkX9~=Jj!NNIn$X z^QD=Y{D5;Ed4|?RNR;E$-{TbEH>k<5<&w-K!3fC@lkvWVm(xu?sxu=q3&t3~GYe&m etdHeefB^unNFq}zQbfuC0000F5v<2cY!k`B)0;E;Oow2w%2ysX@QDnx9$ATd^5Ah>*d+S ziBjt6_)|G+xjj-7>*e{aIh{A{+&z3>cXr>{9k=v>W$>d4SIFHS_9xg$60wCC^LqZ> zYzLLuh=lsgOL%L9ZmC-kri%#3{Gz1~@4qU@)$CfPMgAQAS5)dqw#Kcb+A(dfXizNgw(YnY3f!lxKq(pw4lj40Ma3m+|(}e zkF*Xfpsu>by8mte5>v-YCeW@>KV8_m4vppLqJQ5M3&5^ogvp}!D1cf54>nQ(Ij`y{ zjZlW1#)hDn1Zv13W4z0U``=xiD`XUJo8 s%XS{k=;qEvk{JnN$g)JhaQ-8}0M)S*>KJ0mPXGV_07*qoM6N<$f_o$Y+5i9m literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_30.png b/sprites/TIles/1 Tiles/FieldsTile_30.png new file mode 100644 index 0000000000000000000000000000000000000000..20d15071ab187f5bb2047206a90cfb4e73c72be7 GIT binary patch literal 584 zcmV-O0=NB%P)PbXFRCwCFRx<`K{Tnnl)n%Xe7=gXq?`n=^k!NMq!6R?WZEK?puCE4phg*4Arw4IF zHl0guiHi(OOcPUTwe;dtgP4S>I^~&DZYX zEh3mz$-Umd#8g|2hjl8duBJPdrDMr?MjSe;Jyz}EqigU?5UF24aM9p(RCwB~R=r9CK@i?swz4pg(unDO z0KvjCwWV14Qa*xUXJciVLhu37dzdtW;1#JX{Nfywx&4{!91fQwH_U$D{O#^E4^P+5 zxy5FR_xinCUH-U&q&B1>DXsPRoxcY9n9YxMbZNtymy<6%&`Z7nfyB)kMM^kC8iHn; z?DDX4e;&i}vg{fqP_jq5)@?UC+nF`bw~LFbQ&%lmED1`E?^E=Bb0qz>3ZS#-@MB*C z`K=3FQQ9n$x8(<5J@MBpV$>a8*D=075srkIWiJyMd=|mvYb+lloBFLA4xh$Dxyk^`s2M zDUD1b8z!58K=tfTkLn1}ZxM7!f;IJhGV9O>MXqcNYph{JgPTrYuWys+sIVq8Ly&S< z5w#S_Ud|GXAoKbT(z9odfI1|qAu4^P)TfcYo{c4zE7C3Fan9WdR*IYy#fF zp>X+=3-1DolP#WKA1*`;FWbTU`XqdTxSpNh>Wk~pb6=~gR;UPKC7FvZVF@}u%artk z2hnh|C>(;8lmhAVcTJMw%=8;cmf{{E$YEM3r9>sX4_`Plxn|U8L1>S_WY8(oX3kTg zUjHQkGjhk_82j!aA-F?9V-tbOY4xmeWX zn{Y?PWD&y@d2;r0L}+*7!U4rZAD-xBY}mwQ4dP>`Tz;3)<*dCi3;WnJY`ReXC!0+w zGzyb}1laE%a$g~4vUcbZQ$%{BQ4Tri=rj$CQrkz_Myg2IN4!k0e$Oyq%>SakKLS;r z$2An`DlE{%L7gz@@j1B74FWLX%fJ;t_@5-a!nZ@MI+H**1GDsQGUZq}ArM5+HYf zY6CEcvt}30fL*BKAD17*CvN}k=w|GBJo|pV-h*sd6Y|w#7=jS%`evBs1=tVcBxeFZ zJy>irR?OvdU`XlJ9odXA+ zV=xh7eTcu=t^Z;ix|?W3&&nX=tLS=p4bwk_2vTTDYj2mt&(S6hcp1AYxX%a>s~ZC^= literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_34.png b/sprites/TIles/1 Tiles/FieldsTile_34.png new file mode 100644 index 0000000000000000000000000000000000000000..0daaa39b4a0d4c04d2eeeb6e3382e5656152ae8c GIT binary patch literal 519 zcmV+i0{H!jP)WXW4!)_Dgd8&E0v| zb*uLSdahr`m(!oFVtEWauv)I8|M8Q@%X~SLtH&|H^Kke{Kk~d%A+4ArEEMt7uJtg^7gJb&f4Mq2JL=R%$uU5U__jq~7ke>Zt5NAgv| zLHsToQ4wUu?D_GH$~xd{(gKN{Y^XFnsq@rKhh@^J;T7sai2JwSJE_ok!<_n$>nnzg z2th4?l(m%X0}lR&FXYRmSpyxbuB1jWN?kY;yM*a5<`~#wvESErkQQSY!_wgiemFfa z;~$k>Ufi3!e;bI3Z!4 zeQzBvUcj*cefsq6|A&*S`mB##V!-Q7)wo#Zc~;gff8=ekwipArJRijlTD`qJ*{U6~ z$=yvnJ>3@1$f^Th8b|Lq&%fRVGspkd8l|cqR?lwI}4TOy(?>8OBMXM=N%)S?Z z0Rg+(@{DB+Gb1dr?y$3+=fAf47<#M^*TAjiL39TongjbV5idI+v8(0P)?rB{<}~8I ckpB^20Nn%jWMU9&Pyhe`07*qoM6N<$f~e;3eEXP)rOXXh26T$%WMdf0-T;c!7u<`p5Ah_a0DIzSQJxJrIMSpV`EV+Mzjc?*l}SzRq3a^ zNCjlsjFUI>1zP0}Kp2plGGEW+DnE;m1v=6h9kF?Zq0NZrWcG1;6Z6)0X|;r%oC(qj z*UE{LL5xGc#;!2+c%w;Mn#^k(O$K2nrui&l>DBm<-B5C{C$X{{^;5GU$!vgVznw#i zgVwUqBp^CqgJmx{Xrr%AmDQ(fi#CqKuC=rDDt3$LH~oon`pdHVNtxv;kf{6$FaUQG V^qXQ?TG3XtEni@AQM+zF=HhZVrA`DsRgwuY{1oM5uDZUyv0Wm!BN z7G{g7g!WQd&cNggAnKht^r9PpoeMyyn~f;EbE?PEp%whc zU&VR&5={yYTBw-ovnCH?0u7Pa5R}rR%t;!Yjm}oq>}vObK;;m!QrQ+NeLO&38+6Lo z<)Ul!KsiYId4mY)2cIX=Pnhfg9kosBsK>A}$|i&7Jvw=E=+O?p*86)PwA`!hDX8|K vdzq-o4mFXh_1%U6U!43t&~yUB9|afy;q>jWuv^ZU00000NkvXXu0mjf2G!=A literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_38.png b/sprites/TIles/1 Tiles/FieldsTile_38.png new file mode 100644 index 0000000000000000000000000000000000000000..81a410d1a61d6207b39f7f52d079f8634d7c0ce2 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%>3X_2hE&{obJmcN!GME7A=WXvO1e<>OEXi7|Iwx5$61&f j9TWsOSeOn@(?7sa&%yX~>BoLOphgByS3j3^P6PbXFRCwC7Ry$6^KoDK8wxTc+B|&!2 z0gxytsVS+s6h}a!qo<^Z!~y6N5gMdOxS*ooIWJmIW|?CewzPdCPx z>yH!spHJ5&OXqWk|7zKN-5#ZQjvv2gP3?KCKSniv9F;z6>;7x%3>$XAb8&UXX|DkD zVY`hVrgV;hu7qu?AmmdVv@Bf23LPt@L$^GI6-PLsL{mmPoUI0jsYNJ8V;g!owY6Gw zYHFh!e<3dl1GvZ1#<$C#!ox5(!%P=Z2Xo0qL!Tmw?(?EGc^yL*nM0HE_OuuPdw)^O z%#B~P5pgJm*J%2cS4H+D$MMaL_`KUbVDPowZ9 zE*v3PRpUa-`UD-tP6l5fw`snq$)orzUFPA0%CM#C6^ph4o}%jW{%(j{Q_F1eD=85; z<;_Zw3!OL={V{Zzs;4hnD61s$r57!9!a+pqTBO2Tq9eQwIR*bjHoT4HRdYg+RRJk| zI}4cI-f5$5pMTg@!(e3<+?!7eT1!?qA(`CtqM`GUS%G zOoIigOTd($G+D}(jY;TtKc>+YyX#3Eob*++BY|R%&y|OfU2Mc$v)*Zqg>=xb00RKg WzARiV;r1v10000rGx13)h6#Vunq`AZ^h4du3fZcXPOhiwjG6a!Da)&%N%e}5LhhxO+u}VJx zgUM?+MU{#mX{e4@w;B=17-s-3dPf_$)k89sV31Sb`WP9GfneOcpWjX@WJP?g3uX<$ zvUb9taiV}{HCVS5{};1%6Nc*}-m?lJ1+N$xmtQbAj%{c>g(ZpFgP|9|FS572W1h)R zA(jfK>YcPGiMpSJmJ0uTowNwLVPj~&SM0BpXcLNnN8mHB4KSz9Q<9O8FFQ(q5<6hT zS)2SaZ$8$&TVCoRm0PE7fs_N_JVb8v~;FL=JduYmA9eb*pf8B zSgGqwMFsWGgkW5A@QPF7*f<%Z(howfi#rd-WfdCF21U|dP2S`vpBNvZd4uFD+Y)y2 aEx-WIZ6gmYLu`To0000t8TChBCia_Dz*styT zUTtmg#~5NLEa0(f{cy|qpnMuUOw0*R62QK)SRr#WwIlR&zEMu{){##ayU7th^Ii*LQ(l?c7* zi{tc2*DxhD2MiFTtm<)oL|sm!Ci|fHL8f;-Swe?{Om)De;QI=iQu_>MdKw*6eLdcD zaKKI0u)KetMj&vC&5DtePUJSQowkj4P`gCe>jh9Nop)Fp)A&IfNme!)=uTbiDA2l+ z)vb^t!>@+1tzwh~TzdswGb6~>@8$(}X9lxNOdNv&ko+7%b=e&!1~NfZvRHW?;$JKV z_@z)1(_`30eL<}DsyHO>;9xMErog2~nk;eUVB-6o*JN}>({<4VCw&!64W4cSE=q)v orWJL0w6>b&U^Eu!pg#cy091o7E=0Dbg8%>k07*qoM6N<$f)L9O?*IS* literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_42.png b/sprites/TIles/1 Tiles/FieldsTile_42.png new file mode 100644 index 0000000000000000000000000000000000000000..9cda6acfc1d59fc8eb97786dc22ec1d73c604b0f GIT binary patch literal 599 zcmV-d0;v6oP)hEnT33tK(nsFrTP>pm?q^xnVOAd2g&0xqH zxT%1|Fe#;0p*R0ENJ*%wQ(Xo5eyKRIZ<8O17yPKIw&FZe*dbk*)yLGSX!QB?NXmX6kd+``_kV2- zC7+L1JzJDho=#uusm9)Qi__R3CqCZ4^`tRo2|i&=6i%0#qbWjcC?ZKCL|QTS@n5bXu)xINgLm4RKx(zNL0KhEP&vZa^aXN97l3T&ESGlnC_oZWOj(> zk8`_7v+L-_$8&lm;MS^{`NNL4Ea``t*v$Gwu1nDd&ge>vX)Tj}$Ve1nn5h1>>Q~j| z;F&O_xqx8N;626Br&oe;K1EUre!&WK)CLEA_KoJa!)bxD&cXvu&{MwS%rtVWGI!xo l@>1t&Cr(m&g358ucjvoz@6vjF zzEetddS-CFP*rmL^u@*W{xF~>t!ezHDp3QqeA_~b@?E7qhABfRKIVz^QK;tLl(|B5g#!0ZG6TMI2aIBw zgc_A-BnU{$%52wq|8)$TrddRzlyOvM2C);$Mq-u~wv})WSol|3m-#RRTvoj#yP8vT zyCCu^MM6vaAp_>z@$Z4yZ8O&t?Qd0L$!2mx2P~#<1v|`M;oCyWg6v#9B=1Mx7qbJ$ z!E8Fm0>9D89yhVz<*>=O_LU#s{@c&|ayO$2zb6@BI9CB3LI%I^q3Yk1#y|gnl97bCdm##MmKiqWMX^_prWS(nLMI)YR%ta0uYUU^W zg`n3yOjga=XvW#&(uaN2HL0|+ybe0>NFT=0STadFVqBGEN42sEx;)-XO@6^dd>088 z^Qnn+X4$2z*XY=U$x_Z49|ConW{vDDmgTMe;S4oSf2b8E(;f%Fv;~0dl)zW8oQUBG dN+Z7l3;>E$Nfn@J5cdE8002ovPDHLkV1nia99jSX literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_44.png b/sprites/TIles/1 Tiles/FieldsTile_44.png new file mode 100644 index 0000000000000000000000000000000000000000..6f4d2e8fe77b7e6f9871fe6cab5d40462281700e GIT binary patch literal 597 zcmV-b0;>IqP)3zJ;pJw+V zgwN42D4QRKp+hF4tRGj^X8ObT30p%)YkQA3Cw&AuSe&qi zcVILC*^rI!W3b!Wz=mra2OeX@T*e2NUylKs3(h%(RZZbvO}vW{_or(QiWywGLV3up zseRtw!?cV5;Fj|wLcxEVLYhmwQ%Fye3)pQ(#67l1g>Fxz&h3#yA6T)jQh2tuDz_fPQG-=o@w1qS zDa2CYRK2qnB~iDN&{E-_ud^0GH*5^;_lEZ?CEA1{;1c-EYXi)w^CTIuJ0V|ol#GHT zA0;x$RaRpoH)cce%Z~=jlg>cqHgVltjtW}D-vrsR=*enVj87$CUa`xPU22G@CGRPK zmf1E2p4x4={yt#-*b0$txN(Y%SeP4{A;37VeKSE_C$r(S`^8CyJ4498C=H4Bl=|0u jdw(_>>+GaqzXA*ZmKHZ7I0>@S00000NkvXXu0mjf=avy< literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_45.png b/sprites/TIles/1 Tiles/FieldsTile_45.png new file mode 100644 index 0000000000000000000000000000000000000000..daa1d969d715c4bddeb777b08a68564c646f7092 GIT binary patch literal 530 zcmV+t0`2{YP)vb_(7)F4qW%v7SdE`bNdAW`GM@M)=?+wmQrwJoqNY? z{W{jE(m!l;(;eVD`|b7RQff-;L7N6MS(u4&T>8P3QrF;YeI#Yy7gH28)oIQft!&M$)javu?01*ZuQy&77m*z8JvDGqwmYakywaUmf%WZYwe$ z6s9BBT!ZnP)7@W``Scv`YI{5=mMW@fsR3D}%toAUJrXhzqyzvHQz!-UP)_BP@$6lb zV`8M=K>ML`w+H~xJQt6juf=R?2kj4>Y%KgK(U z@z!L{``agq^t;X{ew`-zALt*y@&g|De!AX|vjKB9btl$N#F-*=en3~OaNHlE#(iW&EFo>Y3to-JCvf=%^80RzqXyifQnmtu(g27eVjYYOmS}{dvyPJSE(Hp z0++&d@oDm#EZ64s6{a}|-r2{PSQA{f$bmdpg}OF1O*KJCCKdy6XqEEGBKfaSnAI3< zkS;ir^n(Sypc-TC-D%q{+r|h~HK6&| z7FioXO+Kv(DI2_jSd7uC`G(0F5ID@ibz7hiXcquLibK6jG`R|+Ag{T+9>StMKWuaro@)RA002ovPDHLkV1nG=_hbM7 literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_47.png b/sprites/TIles/1 Tiles/FieldsTile_47.png new file mode 100644 index 0000000000000000000000000000000000000000..167d5bb0b9f0162000b6e85e885bf3d52221f78b GIT binary patch literal 590 zcmV-U0V-iBc)59k|I(bkp57hjKmdG6q#eJJ+rnKA1Kxp#@Ms=%QjJ z`o(93FFAf~fa%-*X?r`bC-~4&=onxhlO-Gi0W|g+l*GVxh>i}) z3^j-+?_O?pqeDf-AV4=62+#0#DxFiubrv%GaNj#%C!#}P?&xX9a-Zd)|f z1r>?;A5z!xqJJ%pL2J&P`!yP?LQh9zgE=__SE8#>Ij3-cg8 zgi2|96Y=fl6mfBkLEa4~_aZZfq!_(S237S>29wf81eK~TGyu%!3-Y=(G)Rh>lkJ2u zbN~PV07*qoM6N<$f~G$HtN;K2 literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_48.png b/sprites/TIles/1 Tiles/FieldsTile_48.png new file mode 100644 index 0000000000000000000000000000000000000000..71abfdab5636ad6e31e16a39d219241a26758124 GIT binary patch literal 626 zcmV-&0*(ENP)OeHMsz{OA&17mO$t`Gy z4VrJHQG#nFfnlj9xRZ|cDAtBPeE6zyEZiaU$o%4)6@U$zHQ@oz>%g?! zqfr*_`}B4norK<&v~#Q^3S+~_QOQvR*czp2el;5gP6w8xc}MJEXz4Pg9wm;1U3ipM z3^-ag2v%M7m{JR7D0-!?qg{%`MCKPF#zmL@&A#yBKj*RDfty(08*_v>0oO#q5uE@ M07*qoM6N<$f?nqr^8f$< literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_49.png b/sprites/TIles/1 Tiles/FieldsTile_49.png new file mode 100644 index 0000000000000000000000000000000000000000..8d11d35e27f0f4c6a19919695129e9b290285dda GIT binary patch literal 602 zcmV-g0;T!jz{JQ z7-Qb9zDy*m-HDlym*;nES+-5Qxb6IQ<3DbX@c&}%#G1ttR1`GL_?PJ@G01hSA4?`w!%`Pf8I*!Yr+cS+z`-t11r@W`PSVsXfv;kn86vBXMJKkzN0yBh z(W&>)rUGA~b=UUg=c5p!QY;4sRK+LTD$yc zletw2FmRCEi;B9a0ME1rAP}7_Yw>iF??u-ipKTFU%&7reWMr92XCDdic)KjDd`gE@ zCdfmdO8DSXFJA9&bU>KTV-Ckou+aF9m2D@w1{0h2Axk60Ic5)MYG||9neI>n0zI;x oH1b&Z3e619Pqrj%&BY@Y{0M-pWGNEyeFlhZ__>v&nr}cG!POW z@yf>md^*(4kQh-G;?F#Z8i$}tUUf0REEpD-+iH!ikUPm~(h~e(zBpck9h>!DdYM!h zo=-POm)o3N0|t>dAqXzgz;Lr;X5Jm@fJio1I@Osm3<{*&;FJY!(or23T6hW}%{Unx zQ|Uyv=L6Pp1q^`QeEr*5o#}l#HC9}E09wYUEEt?+?31)wmX|dcvZzEIGC|YHYN4-s zJwR}5D1~RdC-bjAiz<}H$jaNei@5%gmoe;$?Y2pSY3h6z1AbD_Qy_Xc_g)G!85lm- zifc+Q7xE_PQdC%gc}+-MFdkM55*qb}COj&dM){+>XzficN?ujoOZj2Qc(w!q$PTi` zp>oeygn>=Gr*Pi+@Jd{qGOKzE2#vF0;%z$aAHP)G+%Ap>^7)Q_0)zM?FB~e`lri&N fU&A5iPk;dcvZyKvpevPx00000NkvXXu0mjf?Yjgl literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_51.png b/sprites/TIles/1 Tiles/FieldsTile_51.png new file mode 100644 index 0000000000000000000000000000000000000000..12e46a6cbbf328198a77b99d217b06f87e7fa2ab GIT binary patch literal 577 zcmV-H0>1r;P)Vkl^Z)>jAag_jw~?G40Did)u@4D`)zL!lC<3G@RSaIsI-b_7&nC(0;g+Ae1{{TV z-C)cPnv%P2t&*?Dd$&qkHX(U``&=|_gM;Y$wL${XO zhkO8#RD7ZxDivNBudxxuDB~oW9K#*Ba-fhGXQw@N0#gkmMS?rU&KBID>3xivnUfsD zT?$*Rj~*gH9bhTyY#hJoHa0%pWGUbhcQra~FlVmCf$~ZL2hB)V4_>zcG-i%=&tncn z2FG=A4W+pa2{;< zu62oFIXYogp!KaCa)z6gi=^BSWa(9}VtNsg9HOD(2Af^|KVe4t_zRuUt8^PID^R>d zOnj{xUkWoj3Wv)=!OCqFoM@z^0#@WaqUrhcQ(%n17_GZ2Rd(xskb3M{Zzqvd7uL z$3L?=oj%-n%%MdgTKvdjsERv5EK*rj0?e>bJUl$~{O+V8Bwi!&ze(8>At1}z34_K- zlA~0u(LA{+!y_`lKPCI9LddZoE*aNuv`}~i2cK6@-s94{cz?J*^ldL2Qes!rKmidI z;x1~TL)VC9J=L4Ijil>d9%1u zO1;i@${EY;R3*m8+gCep+OBbho6m3iUfVZj@v*!`~a z_oYsB&Goy%$K>((ZoIkFz`p5tI0?E&o0hfE73fr39w9Lpk}xP1CyrhB9gAyc#7&|Y-5i26Fptk0YFHc*$Y zXB{E;bcJ4aOFnW;F1`}?#2?9lhC-SSDhN!_`(e^U=DTHP09X5J9cy!=8U{y zKvQVlCYkkw7?ehNtfqqC!g?Me@Vt&PFLh>#0MLc<7^M~?TLg@Dd!jZP#!Btz!1Dkq zz=lfZD+M>(uhRa z3`Rv73a%}6eAWMS&eTNUw$fq%A`jhXylZxJqkvIxWKw!vyLk+*#IrD%{S{yU52*Ya T2ejt300000NkvXXu0mjfMpgD? literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_55.png b/sprites/TIles/1 Tiles/FieldsTile_55.png new file mode 100644 index 0000000000000000000000000000000000000000..6e7d9d0de79eafb777d00d3529973753c7f0f07a GIT binary patch literal 561 zcmV-10?z%3P)1&d5-SsS|r5ngt1|9+*1toHNErZ0AyvQ(Lv}-FxS|^NW+m z=W8LvY9p6LCK}t73ZL&62N5-d4En$%xe~4kSm>2Vyve2zVxtB*QoP}9(?kVlWgzWA0W8KIGCDF%i$+h9H)S4|dZXWtT`Jh`(9;K0?Gc_

1&d5-SsS|r6ngt1|8JIfo+%uLFUz`gxJ*idWzPoq1J3l*l ze7;snEtYy-WNL4lb%XEsi=B!ZTm~^PO;Cz!9cE@F;%~Dllv*}}94S6PyY$K6h7}^_ zqwlTb#S^$FK%YK+`~P9(sy^$BE-~QsrfOU+^E@l-mOtvYSX+z%T%M1Lj<9-rd$LtK zRFi#WOI&1Nax{`wn^!M>dmt&O=~JGu>tU;0VUd=`!^`Z;bhTE0GsDgKBDyJ&Pk30P zlB8;48$p0FqL>pB_(F1c0>q_li1(0iIE)rX$0op-njM43s)>&^;mIXg-QUo!(1EgG z*DXih5+#4#c_p6@cm6Kz`1IM^>qohl4N4-6+mdU`Up1vzYWzIRhT=lEnmkG)`}Wkp z6tPkhiRk7eo?QB$8JFN&YRU?7Z*&SO3w535HP89M4yUzP{wx&vVGooiBR4->K20ST=h t?6$is>9C~|a~z>BPF7b&ToQf+7yucx0J~FZc4q(p002ovPDHLkV1l2I_B8+i literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_57.png b/sprites/TIles/1 Tiles/FieldsTile_57.png new file mode 100644 index 0000000000000000000000000000000000000000..5054b12d4506067ae0ccfcbb1a1f48187feea071 GIT binary patch literal 555 zcmV+`0@VG9P)hbjWI#fCAn?v1D#wz5G>l4ToCR|op$IfIx_;P-E1_A$&Y1TX78h#odh~4|B zvpb_*7~Jd}1Sdn_+2eGGKwQ-fZ(-LshC_2nWMjxgfDq|@ICdOW7X;)0va?!;4zbE5nbu?NRFhE$!$s`dx6`gnZ6IVsYr*($n{gmxCgF9Kvr?N z9HUBMXUnFo-2%S3sx5D>x_DPJje?b?s-D8QP1o-O6W#w~qy5Q&2`CM1R91!KPk`RR zL*rrbZhBrA9K?&l%Ko+-_CQ)vp2-qzh&59V(d>a==u$`*y_d3(lRhFwjSaY5GZ+=b8rO803(m>JjD2x4@9 zcdOKn3V~DMP~43^$YL@y<4`g&OCgNnV`itPpBL)s%}m8*?okT>S-*sMR&w zpj>z+XorMX=maF)F+T9qAcRAF7a}{po`cL1aCXgiOBxcj=3~J(d2z~;UGv@ioX!NF z64h84vHjpvYl4lls5=Z(7Z$blU_eqZEhr@okJ)0HEHAYGy&x-48rraB&9=k?tT>!7 z^sSBRKP$iH310Ad^OW;QJhdH?_b07*qoM6N<$g3HMO?f?J) literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_59.png b/sprites/TIles/1 Tiles/FieldsTile_59.png new file mode 100644 index 0000000000000000000000000000000000000000..4344445dcf7a31353bb4c242bb885b2f5322590c GIT binary patch literal 571 zcmV-B0>u4^P)oA8RA2QPD{WH&Bq-3b*5BE9!y zL2@$Hqt_>ZdDzlpth_tZ0j_bo+3+aR3qyak@%b+z`RrY!S85pte9tw0 zDgsX3l$F&eAA4&8tVB8`y7ig2 z#UKEQ=kE0fkVQ!0+cdtM_4VmE;GzfK@z%SjA4-e9i&XsyFaWMw1AM7nZ0Z02002ov JPDHLkV1kWo1wsG- literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_60.png b/sprites/TIles/1 Tiles/FieldsTile_60.png new file mode 100644 index 0000000000000000000000000000000000000000..22705d42839a2fbbcc3a32ea30de29627cbcfaec GIT binary patch literal 551 zcmV+?0@(eDP)(RCwCVRy|L{Fc3A?O$~BE)P$ou(O8fx!Ml@rkdS>90(@|^g!ZqEtK(db4T-7nUDk#nz~9T$Qj&J$as z8*>fL0YY-|c}}R5|6p9qjU-2fC&|qT-N7ru4EvJZ#hE&T-x|h_On1gE5opl#9%H_CUc7D@3{J&>QGCWjt} z9f_?z$5e;eH@pYYC3>JOywYjvP`4#9gP6Koj4sjL|6pXD{2_YenG5wJzyNXw0NTz-<-Gs^002ovPDHLkV1k{#`;Pzs literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_61.png b/sprites/TIles/1 Tiles/FieldsTile_61.png new file mode 100644 index 0000000000000000000000000000000000000000..581ae920e1c89d80bf88cee63bcd42c656dc936c GIT binary patch literal 548 zcmV+<0^9wGP)(-#e&gk<#~Gy)1GBdiwZ_dw2&%1CYfF zB2}>Adi{9@JYu8(=-6^NVmKw71nHMEzL+|q!Su&GYgQ&9}0N5>KyUt1C?B4Zgpd(`p@%Hec#x@5RjfKU(DvT^=B^*gA zDocRrC#v#;2CJK%zdVN@Bd-Db+9@?*f?&y=5OAD0IdHWpy=4xlAT+>7@jl29G8T?0 zW9|kMg}*`yqgnU}?o@(Xd_COn>(MCn@g*z-f|&%ILk~XjIm(2hR0*VN0W5uPr-0#9$7fB1na>nK`SCR4YwyT#_y{cT{{_|w##?JUke=rOdDsv32TVX4~Oh{xFFgoaR!u@gh zGm`x+tJ&l8-4t`9L+5Uw8^{C5-IL{q=Fkhb$(2Di=v#oV`wPh-*!rk4Ok)Q75$7%j z+uI+KCJqa2%9t!3TNd$$%cpPFV8X>9V_#D&!d+SL7C*5+ZQ8p)ox7iPgxu2w);mv| z(-4D*;L44#z(p~dzVa~RNlwBZ;QHODm6}-ih8JMK9ICGSocjq@?BFoW8F|5grqH?# zGV2L3D2(#6ngW6g^SL{L=XH>I-b<2Ku2F^37`YY$R|Jgu&{G=)W2=sqwF7_xur8Ci zrGRxeWv0AkevpA-yJSpPGG$Cuv(B&`9qc}b}6|o>Xe6~NI|M1=G%f4xA0QlVffTDeO z4-xu!|3;N&Q)}k=)YJEizIe+ABzrwn+in1W3oIkwIxzEM3}Z5j#I65{6~U3O zWyJUG^CJOB-gPp3E2YsF3sadgpghfylLI23Sc18Wi1Ws^utFCDwKAN*hJXwA8MjvwR<{G58FuOs2GrOB>q+yW@s` zjd_4^?>O~qg@|kPhWMnTYD5kfBx%k9fLv6^M$>Cuc903ts&J^Fn{(!yl?^=kZ}HQp z{wn4#BASC|R+(*fxPi$A=;-sGtm9mz(_lma{l!B%0X(A1s>pFiuc!2;`Mw?W6jc~i vhmp_7x0#9Gh011E`4}vzG0-~le+3u-IsXk$=G-9y00000NkvXXu0mjf-e>t9 literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTile_64.png b/sprites/TIles/1 Tiles/FieldsTile_64.png new file mode 100644 index 0000000000000000000000000000000000000000..e2d05a2b5d9dac11b3e530326dcccf0a5b02d767 GIT binary patch literal 545 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 literal 0 HcmV?d00001 diff --git a/sprites/TIles/1 Tiles/FieldsTilesetTest.png b/sprites/TIles/1 Tiles/FieldsTilesetTest.png new file mode 100644 index 0000000000000000000000000000000000000000..40ab33a0d9989036eedd606f980339459a72a4a5 GIT binary patch literal 594 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5FjO4;u=vBoS#-wo>-L1;Fyx1 zl&avFo0y&&l$w}QS$Hzl2B?TFz$e6Y*#`gD(-IlGJpzDcJo0pL45_&F=B~F;vjPu8 zK=ps`^4p=@yoxn(+pY@A8#6jye!jKBMpw|{E6C1(>MSX%dj z*w}zt>~7%&E7s_Nhfst~Cegi)FmW#KYj7eWv!b((`{H-JY&~F6*2UngC1+ Bi6Q_1 literal 0 HcmV?d00001 From 3d8c1c064192686655a5265ce51daa13e9abe860 Mon Sep 17 00:00:00 2001 From: Neerka Date: Sat, 13 Apr 2024 14:09:40 +0200 Subject: [PATCH 3/3] movement done Signed-off-by: Neerka --- classes/Garbagetruck.py | 132 +++++++++++++++++++++++++++++++++++----- classes/Node.py | 22 +++++++ classes/Trashcan.py | 8 +++ generators.py | 2 + main.py | 28 ++++++++- sprites/X.png | Bin 0 -> 3324 bytes 6 files changed, 175 insertions(+), 17 deletions(-) create mode 100644 classes/Node.py create mode 100644 sprites/X.png diff --git a/classes/Garbagetruck.py b/classes/Garbagetruck.py index 8f2de58..7375f15 100644 --- a/classes/Garbagetruck.py +++ b/classes/Garbagetruck.py @@ -1,5 +1,10 @@ +import math +import random + import pygame from classes.Household import * +from classes.Node import * +from classes.Trashcan import Trashcan class Garbagetruck: @@ -27,6 +32,24 @@ class Garbagetruck: self.orientation = 3 # Niech numery będą tak: N - 0, W - 1, S - 2, E - 3 -- po prostu odwrotnie do zegara self.runningtime = 0 self.movesequence = [] + self.target = None + + def getState(self): + return self.state + + def setMovesequence(self, movesequence): + self.movesequence = movesequence + return self + + def setTarget(self): + for place in self.houses: + if place.getFinal(): + self.target = place + return + for place in self.trashcans: + if place.getFinal(): + self.target = place + return def getOrientation(self): return self.orientation @@ -100,7 +123,8 @@ class Garbagetruck: def modPosiotion(self, modX, modY): x = self.getPosition()[0] + modX y = self.getPosition()[1] + modY - self.setPosition([x, y]) + position = [x, y] + self.setPosition(position) def getRoute(self): return self.route @@ -133,21 +157,25 @@ class Garbagetruck: dist = abs(lok1[0] - lok2[0]) + abs(lok1[1] - lok2[1]) return dist - def selfdistance(self, target) -> int: - lok = target.getPosition() - own = self.getPosition() + def selfdistance(self, target): + if isinstance(target, (Trashcan, Household)): + lok = target.getPosition() + own = self.getPosition() - dist = abs(lok[0] - own[0]) + abs(lok[1] - own[1]) - return dist + dist = abs(lok[0] - own[0]) + abs(lok[1] - own[1]) + return dist + return math.inf def scanTile(self): self.state = None temp = self.houses[:] - temp.append(self.trashcans[:]) + temp.extend(self.trashcans[:]) for loc in temp: if tuple(self.position) == loc.getPosition(): self.state = loc return + else: + self.state = False def printme(self): x, y = self.getPosition() @@ -184,27 +212,101 @@ class Garbagetruck: stepX = 1 self.modPosiotion(stepX, stepY) - def graphsearch(self, target): + def graphsearch(self): + def succ(elem): + def virtRotateLeft(state): + ort = (state[-1] + 1) % 4 + result = state[:] + result[-1] = ort + return result + + def virtRotateRight(state): + ort = (state[-1] - 1) % 4 + result = state[:] + result[-1] = ort + return result + + def virtMoveForward(state): + ort = state[-1] + x, y = state[0], state[1] + stepX, stepY = 0, 0 + if ort == 0 and y != 0: + stepY = -1 + elif ort == 1 and x != 0: + stepX = -1 + elif ort == 2 and y != 20: + stepY = 1 + elif ort == 3 and x != 30: + stepX = 1 + x += stepX + y += stepY + result = [x, y, ort] + return result + + op = elem.getState() + forward = {"result": virtMoveForward(op), "action": "F"} + left = {"result": virtRotateLeft(op), "action": "L"} + right = {"result": virtRotateRight(op), "action": "R"} + # print("got children") + return [forward, left, right] + fringe = [] explored = [] - result = [] - initial = self.getPosition() - initial.append(self.getOrientation()) - fringe.append(tuple(initial)) + target = self.target.getPosition() + temp = self.getPosition()[:] + temp.append(self.getOrientation()) + initial = Node(temp) + fringe.append(initial) while True: + fringPos = [item.getState() for item in fringe] + explPos = [item.getState() for item in explored] if not fringe: return False elem = fringe.pop(0) - if self.selfdistance(target) == 0: + virtPos = elem.getState()[:-1] + dist = abs(virtPos[0]-target[0]) + abs(virtPos[1]-target[1]) + if dist == 0: + def findWay(node): + temp = node + movelist = [] + while temp: + movelist.append(temp.getAction()) + temp = temp.getParent() + return movelist + + lista = findWay(elem) + result = lista[::-1] + result.pop(0) return result explored.append(elem) + suc = succ(elem) + for wynik in suc: + if wynik['result'] not in fringPos and wynik['result'] not in explPos: + x = Node(wynik["result"]) + x.setParent(elem) + x.setAction(wynik["action"]) + fringe.append(x) - # KONIECZNIE SKOŃCZYĆ!!! - + def executeMovement(self): + element = self.movesequence.pop(0) if self.movesequence else "" + if element == "L": + self.rotateLeft() + elif element == "R": + self.rotateRight() + elif element == "F": + self.moveForward() + def randomTarget(self): + wybor1 = random.choice([1,2]) + if wybor1 == 1: + wybor2 = random.choice(self.houses) + else: + wybor2 = random.choice(self.trashcans) + wybor2.switchFinal() + # print(wybor2) def classifyTrash(self): pass diff --git a/classes/Node.py b/classes/Node.py new file mode 100644 index 0000000..801782f --- /dev/null +++ b/classes/Node.py @@ -0,0 +1,22 @@ +class Node: + def __init__(self, state): + self.state = state + self.action = "" + self.parent: Node = None + + def getState(self): + return self.state + + def getAction(self): + return self.action + + def setAction(self, action): + self.action = action + return self + + def getParent(self): + return self.parent if self.parent else False + + def setParent(self, parent): + self.parent = parent + return self diff --git a/classes/Trashcan.py b/classes/Trashcan.py index 4bfee09..ced73c1 100644 --- a/classes/Trashcan.py +++ b/classes/Trashcan.py @@ -5,6 +5,14 @@ class Trashcan: self.image: object = None self.position: tuple = None self.trashtype: str = None + self.final = False + + def getFinal(self): + return self.final + + def switchFinal(self): + self.final = False if self.final else True + return self def setPosition(self, position: tuple): self.position = position diff --git a/generators.py b/generators.py index ec52ae6..416a553 100644 --- a/generators.py +++ b/generators.py @@ -42,6 +42,8 @@ def householdGenerator(mult): house_image = pygame.image.load(f'sprites/domek.png') house_image = pygame.transform.scale(house_image, new_house_size) house = generateHousehold(mult, i, house_image, house_positions[i]) + if i == 1: + house.switchFinal() houses.append(house) return houses diff --git a/main.py b/main.py index d736857..420c67a 100644 --- a/main.py +++ b/main.py @@ -1,12 +1,17 @@ +import pygame.transform + from generators import * +import time W = 30 H = 20 -MULT = 48 +MULT = 50 SIZE = (MULT*W, MULT*H) pygame.init() screen = pygame.display.set_mode(SIZE) tilemap = Tilemap(Tileset("sprites/Tiles/1 Tiles/FieldsTile_38.png", mult=MULT), mult=MULT, size=(W, H)) +targimage = pygame.image.load("sprites/X.png").convert_alpha() +targimage = pygame.transform.scale(targimage, (MULT, MULT)) trashcans = trashcanGenerator(MULT) houses = householdGenerator(MULT) @@ -18,14 +23,33 @@ while running: if event.type == pygame.QUIT: running = False + print(garbagetruck.movesequence) + garbagetruck.setTarget() + garbagetruck.executeMovement() screen.fill((0, 0, 0)) tilemap.render(MULT) screen.blit(tilemap.image, tilemap.rect) - screen.blit(garbagetruck.getImage(), garbagetruck.printme()) for i in trashcans: screen.blit(i.getImage(), i.printme()) for h in houses: screen.blit(h.getImage(), h.printme()) + print(garbagetruck.getPosition()) + bruh = garbagetruck.target.getPosition() + bruhlist = [i*MULT for i in bruh] + screen.blit(targimage, bruhlist) + screen.blit(garbagetruck.getImage(), garbagetruck.printme()) pygame.display.update() + garbagetruck.scanTile() + state = garbagetruck.getState() + if not garbagetruck.movesequence: + moves = garbagetruck.graphsearch() + garbagetruck.setMovesequence(moves) + if state: + if state.getFinal(): + garbagetruck.getState().switchFinal() + elif not garbagetruck.movesequence: + garbagetruck.randomTarget() + time.sleep(0.5) + pygame.quit() diff --git a/sprites/X.png b/sprites/X.png new file mode 100644 index 0000000000000000000000000000000000000000..91470dcadee60dfecf501c2f6f61ec46b76231fd GIT binary patch literal 3324 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 literal 0 HcmV?d00001