From e39efc72bde7bdba02eb6265836c656313b596fd Mon Sep 17 00:00:00 2001 From: ulazho Date: Mon, 22 May 2023 10:18:32 +0200 Subject: [PATCH] feature: Add Types in tilemap --- src/Field.py | 51 +++++++++++++++++--------- src/__pycache__/Field.cpython-310.pyc | Bin 2207 -> 2682 bytes src/main.py | 40 +++++++++++--------- 3 files changed, 56 insertions(+), 35 deletions(-) diff --git a/src/Field.py b/src/Field.py index 4f4fd92e..adc0a04d 100644 --- a/src/Field.py +++ b/src/Field.py @@ -5,46 +5,59 @@ class Field: FieldSizeY = 0 - + #Get value method def __getitem__(self, pos): X, Y = pos - return self.Nodes[X][Y].Type + return self.Nodes[X][Y].Value - def __setitem__(self, pos, value): + def __setitem__(self, pos, value, Type = "Value"): X, Y = pos - self.Nodes[X][Y].Type = value + if(Type == "Value"): + self.Nodes[X][Y].Value = value + else: + self.Nodes[X][Y].Type = value - def __init__(self, tilemap): - self.FieldSizeX = len(tilemap) - 1 - self.FieldSizeY = len(tilemap[0]) - 1 - if(tilemap != []): + def __init__(self, tilemap_types, tilemap_values): + self.FieldSizeX = len(tilemap_types) - 1 + self.FieldSizeY = len(tilemap_types[0]) - 1 + if(tilemap_types != []): for x in range(0, self.FieldSizeX + 1): self.Nodes.append([]) for y in range(0, self.FieldSizeY + 1): - node = Node(x, y, tilemap[x][y]) + node = Node(x, y, tilemap_types[x][y], tilemap_values[x][y]) self.Nodes[x].append(node) - + + def get_type(self, pos): + X, Y = pos + return self.Nodes[X][Y].Type - def PrintField(self): + def PrintFieldTypes(self): for x in range(len(self.Nodes)): print() for y in range(len(self.Nodes[0])): print(self.Nodes[x][y].Type, end=' ') + def PrintFieldValues(self): + for x in range(len(self.Nodes)): + print() + for y in range(len(self.Nodes[0])): + print(self.Nodes[x][y].Values, end=' ') + + def Neighbors(field, pos): x, y, dir = pos neighbors = [] if(x == 11): x = 11 - if(x > 0 and field[x - 1, y] != TREE and dir == 3): + if(x > 0 and field.get_type([x - 1, y]) != TREE and dir == 3): neighbors.append((x - 1, y, dir)) - if(y > 0 and field[x, y - 1] != TREE and dir == 0): + if(y > 0 and field.get_type([x, y - 1]) != TREE and dir == 0): neighbors.append((x, y - 1, dir)) - if(x < field.FieldSizeX and field[x + 1, y] != TREE and dir == 1): + if(x < field.FieldSizeX and field.get_type([x + 1, y]) != TREE and dir == 1): neighbors.append((x+1, y, dir)) - if(y < field.FieldSizeY and field[x, y+1] != TREE and dir == 2): + if(y < field.FieldSizeY and field.get_type([x, y + 1]) != TREE and dir == 2): neighbors.append((x, y+1, dir)) neighbors.append((x, y, (dir + 1) % 4)) if(dir == 0): @@ -57,16 +70,20 @@ class Node: X = 0 Y = 0 Type = None + Value = 0 - def __init__(self, X, Y, Type): + def __init__(self, X, Y, Type, Value): self.X = X self.Y = Y self.Type = Type + self.Value = Value SHORT = 1 TALL = 80 TREE = 100 - +SHORT_VALUE = 1 +TALL_VALUE = 100 +TREE_VALUE = 100 diff --git a/src/__pycache__/Field.cpython-310.pyc b/src/__pycache__/Field.cpython-310.pyc index 0f50fc25f5803d695f73d349a19c1b47baa346a6..70c09d4d9dacd52d318fa4df6171f87aa2665f49 100644 GIT binary patch literal 2682 zcmZ`*%WoS+7@wJ)U2h!QO+%UoYN4P~x*^np0}lzIRy2f1WvZrBZ3J2w&&GA**v{+* z5o>*NuUxqyrN{hBbLHf7Zk0;;eY08HG3{FOdG>qG_nhsP%SA@dwLSIu9Ap33mnq<2 ze+w%nu*DQp{2A6z>@X#i^Nj6qV5M?_b%7Pi+i_H3M=F2E#oohz0n1l&+bk$Hpyk{% z*8c<05wt0`Bbp34ICOC6$gFs3K|$X$4sFl}yU?hL_@7hrs)YZdDys_q=hX#Rx@g>Q zTTxq$$XY{8*_7DR`!`sps{kqgMGVBiN!e4DiZzxxYwRiCW+%KB2;)ZR5tuNxcw$neJ}OqZbK#h2A5-TkO~*sk}VbgOrwcrWSps^52#s2w$KW@5s!DVKYivNwgn^$N@X0Bl>)S_b+BVQ*`Zt)*y!bAp}K{ z{E5E+u>Qz_n<9pLLNBJmdM4qSyT(F9cpHA6!wJF#qGq)Rj&`BO?u~qK)QbX7`-Gvx z8TWUJgkB&7)sCJgKrzTb89Q<*&RrrzO!7YW`4V3e6Su}Z4e}s=$Rpyn9{q()0-uIl z@l}@M{Pd=fr!hvPyvg<)y_GnM`~v3+8;U#Z*A1IhdF(dXbI#crU5x2#1DSZKlggA+ z)>Dd+$ah1EA$uz6{n$-i(r~bGaG7FdtwjAw#Cl@QPEOEv+&T3H2zlO<6*Z zN}3IS3S{NdL4h)IB5O7oFZk7f8wW8CT)hG_nnIHW-|gvEC$Z&w;$&rgnTS^i%y@U< z9`V|!Q5(e9z;jAGi`?VO{B15?$$$HovartZzR_>}9$9)H;D3kH9{_7SJ8EKmo%m)> zv@o%fajg^64S@dg>@hNiTEMfeE*TU`r@kMBp(%#pepel~X9z?%lj+GT32<*k4)axlbMhz$j6TxYU=RD!)|MgTV3C{J@Jtj^|P35jb zor`Hml3ST1-as8oZb4E&ax0U}sAEZ*Db60#QEqi*+G+$@2eMIam8fG`s#pox;l%FB z#O@HXE@X!jyO7RLY`q{|%2{E`TV`jTWM}<*EHmcET%VFz&G}u-_CjrB=QO28zXdR& zUL4Wu$acD`uVRmRe}8jR)3vC_RS8oUK)07r1nmUP-P$19t=K+(Re5g=N*`9}4(D$UYPVJ`^}U zHXJ4K2~bc1F1vaS{B|JJ8g!%O5A8`EO`({)!SrXLy%R&+1K11P2rP7Hret$aPF;0& z7*f5$g1r_ex8RsG6AIfsKax2T@Gw0*UgZ5UT>v-p@g4a3BT)4QfsYBiPOgG{OCk${&G|i$Mhc)7%-KG)v9=7x-Tv;U`wvh6x9{H7pMuBCTTJ-y_T8U1 oO_A{9J&GjTPdPfC0mlC-n=W6|Fo literal 2207 zcmZuyOK&4Z5boFbl{jRBHxF1~S*=)&K${B(5Dx{|@Y2c~t#jD5KqJRJahy1|(=$QD z8Y>6y5qFIKV`IR;_uML6S z7H0GbNQfIWYl;qo9)})>UV3vOy|-D^1zp5TC0){G{FikF_byoP+iuv?Q(VH@bZ0gc z7PS8cGg=2p_)lUi#xh}tED;+lksIugH`pbwUkdBh2Re+b+C3YFzOpI`d;3-n2a)B^ zEPsB<%mVIs`RV4t;5gho?X^Y+gUv@_bQBMUn?Lm9uorg1e%wC`cA`;x6!uzXv>BQ9 zrZey1@XRg*K_`s6ad;dAWipB^Eb(PNx|Pbz@!N!WHask7?>xDKh4Vy?RU(`(@FP(h zEC7NHW=PV|)xKwnv@U^I@0V8ZG&J;hItdN`8rEr674j=&QC2bi>*v-p zt$rsoGoqoR`@c_ zBdQ^@L4+z{E_W(BB2xMtw=@6l2w4V=qAp9tl&`90@A4I8w$>0Iiltak&qOV@ha0QCdOHPrM5x zXv$60zNDl~knGUgCOxd7nd@ysPe5-w)l0d#9+iYRVrDOWac%y^J!nd3?qx3$H`k;j zkkCBO-dwwS^BkHUG|#Wzgl=Z5v!8C#a*gT2Dx3L`+WAMWlgl?)c1AkzE%n($0T%01 z7Z(bLp>Rwoxu>+9x+aBIyZdx|+uSCBJk)-{di&JZUH3A1>RG9~#+LhGw{x&JFwtE2 zT^lRcGtPb77ZIsY>@n}7{%C$Mo9j4T=1SIHD{el7U>oz=AS1Uhqq`v47Ybjd^a~~M zg_2s~OH|MTo_dC=-4#~7O|E5w)^wHYkR*ft#R5tM^hdzV0+Bav)Y?^xcEzXC;=6u& z!);d%U*P7*r7}vd!beqVT@SN%C{k}- zM0dcLYLL2LaMk7DbOP3EeE;O>E@J%E5l