From 0a735eb84ba29c57cc0a921ba621925fb2b1aadb Mon Sep 17 00:00:00 2001 From: Peery Date: Thu, 1 Dec 2022 14:43:14 +0100 Subject: [PATCH] Day 1 - Calorie Counting went a bit overboard because it was fun to give all elves names and a "proper" inventory. --- calories/__init__.py | 0 calories/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 161 bytes calories/file/__init__.py | 0 .../file/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 166 bytes .../__pycache__/calorie_list.cpython-310.pyc | Bin 0 -> 1683 bytes calories/file/calorie_list.py | 48 + entities/__init__.py | 0 entities/__pycache__/__init__.cpython-310.pyc | Bin 0 -> 161 bytes entities/__pycache__/elf.cpython-310.pyc | Bin 0 -> 2604 bytes entities/elf.py | 47 + entities/items/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 167 bytes .../items/__pycache__/food.cpython-310.pyc | Bin 0 -> 591 bytes .../items/__pycache__/item.cpython-310.pyc | Bin 0 -> 455 bytes entities/items/food.py | 8 + entities/items/item.py | 5 + input/day1/example_list.lst | 14 + input/day1/input.lst | 2255 +++++++++++++++++ main.py | 15 + 19 files changed, 2392 insertions(+) create mode 100644 calories/__init__.py create mode 100644 calories/__pycache__/__init__.cpython-310.pyc create mode 100644 calories/file/__init__.py create mode 100644 calories/file/__pycache__/__init__.cpython-310.pyc create mode 100644 calories/file/__pycache__/calorie_list.cpython-310.pyc create mode 100644 calories/file/calorie_list.py create mode 100644 entities/__init__.py create mode 100644 entities/__pycache__/__init__.cpython-310.pyc create mode 100644 entities/__pycache__/elf.cpython-310.pyc create mode 100644 entities/elf.py create mode 100644 entities/items/__init__.py create mode 100644 entities/items/__pycache__/__init__.cpython-310.pyc create mode 100644 entities/items/__pycache__/food.cpython-310.pyc create mode 100644 entities/items/__pycache__/item.cpython-310.pyc create mode 100644 entities/items/food.py create mode 100644 entities/items/item.py create mode 100644 input/day1/example_list.lst create mode 100644 input/day1/input.lst create mode 100644 main.py diff --git a/calories/__init__.py b/calories/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/calories/__pycache__/__init__.cpython-310.pyc b/calories/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9809a046fdf96319f3df6a1f19d830bd197b12c6 GIT binary patch literal 161 zcmd1j<>g`kf>jGUl0o!i5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HEenx(7s(wLg zYEh+raDG}zd16s&d_YltR%&udvA$zUS!!NMewuTBN~*q*fsv7Za$-(?QD$nfetdjp eUS>&ryk0@&Ee@O9{FKt1R6CIA#Y{kgg#iEu7A8yp literal 0 HcmV?d00001 diff --git a/calories/file/__init__.py b/calories/file/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/calories/file/__pycache__/__init__.cpython-310.pyc b/calories/file/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..715c9a9e313fb5135b351926cc666b43be422351 GIT binary patch literal 166 zcmd1j<>g`kf};yNl0o!i5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!Hgenx(7s(wLg zYEh+raDG}zd16s&d_YltR%&udvA$zUS!!NMewuTBN~*q*fsv7Za$-(?QD$nfep+Tu js(yTYW?p7Ve7s&kb84BSgMHH<`j$c;O3CkJ9b5bW0o^wi`62(>Lf~d|p%R7obBZKr$up|2e8u^~J z3cks1Jt~p8yl%t12V6~Zsz}Zh%@f5mA2F3Ee!;st8*+}WoKSYw5gL*08+Bh##Wgn_E!>C^o0_m=#53s!$ZK;eSqn^yxb7 zvC}t~u(f%kR076s*9x36*lo3bhr=N`qk%L~GeytYPamBz;3N%uLcSZE@rGYA1xUVP z?K!z3?%gK2bEq&SFV{kfXT^`0d)UxR-XzEm-E;5*(oBKwO$WXqD&>Te^Mn$U zJtF?`3FzYQTiCCxA%{*wA%}ZsX;=YI-6n+`Q38nT(MwY z&mKB9I(9U^B^d8GCZLdKH&|<-dQJM6Zm+FXf&SityZ-x}*V z_P@PV&N7-V_?(^ITgKumSNnr5;@8NDE{fPIiiuS-n4Kc_i{j->)(c6uD3mRMo%rC~ z8pL+*Ai;TBBABV;K)SF!B0D3Tu6O%s%N?W+$0L6OY5*^$_M7;2`OOhL>umw^{;dRu d7E9e4E`?|#wiU@fzE1WN1jHg(pY`e8g`kf|W}U6OdqG000ZsCSm{p literal 0 HcmV?d00001 diff --git a/entities/__pycache__/elf.cpython-310.pyc b/entities/__pycache__/elf.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1de1ff013d6883ec6491a910fd7ee25511f8dfa9 GIT binary patch literal 2604 zcmb7GOK;mo5Z)yz>S6gA$8FLFSR^Q-Ad!Mx3Is-))Nz~yt!h**3M^0%G`dY0A8&?2*M~Q%;J>U91RslSxLCOB+A?sm9E3fymIUuQC8(uUOOhN z2IF&Gi_h`;vBTIOPhQ>p_OZY5{g3UPyzT=+-%kh0 zu2A_xSD3Kx3m8g+MC7%TS!^$k+fn*Lq(-XYTZp;_&9_9&gVFb2xB4;>txO0tY;|PU z90W@E+e+?<(CF4fUaaeGNG@7;@7%rH0yB|`gl>V6W;V<#z8|HL@%=e4rz;>TbOC-f zI;sQ6=43jjQSK^X1}Z%jBnwvH_KF~V42>QT>JR!0J%n%=a!8Np8o4qKN8=`Q9tFD3 zs+({UJtaiSs+~bEP+2@kSZOSHCf$=#hOh3K*J&Owy!$AYVhi|DGG?U$Fsz8eedcTzTYnwX@7>ZH|!&abT*g0U7 zT4a43*i{iYah}LbfHA=X1zBjvB5hb|3DH%NKz1Y`p zotn*^2#Q#UKqe2ir}>WIM5nKT$Zv|;*dgj87=(=?fZPT0iIhXP4qbHx1*YUI=J`^< zxo_kQk_Ynzq$N69MM!5AAh}~{{s$_Gb!PNeQNgg@{U8#ka@xbqd9v#nsDHf(BI2Q8 zZ(MP_u98VHH4T|Ti3n1S+6qc3ys7j=l9{2Wvmg|@S(`fV zm_Qlr9Ym(@-I-ar2l*2u1%P`~-FxF&G8<@50&4?^NmM_b2DAt*GC9Ajiaq+ciCJi` zO+#B9UBS>^sCABH$k~Eq*P&s6;@mnWh8k;pQ5`~Ue?yL}Bl?IOK`Dc1m)fU{Oi0r~ z|5zdL0{FRv^>2^-W<9rnHi#V(bv_JY2^s9a2;zZgSh>}_lhc=HSyNlb{0(K2-EW~$ z^squk&2tp?PweUDdMu%>??Yp<^c2X+O;&(J_CjHXT^=F0F{krd1O(6~NJF782_VnD zfX`WQmGwACc6l&^RwJWZ{|(xBVZ+I7JxFo~q2_KkilLk;yg4q+>9tc?JKHko7m>M6 zM_2#deY>%YH(XH_eYjZtMDjr_d>^i0|M?(@PiCMvaT)qP{$C<$5ky{xV3;UOgy~D3 z+felZw^2nQRcomBC5i$#9+CP4#pft)pqSNyDRqng0r>YwtdlxjvHt str: + name_list = ["Dash", "Evergreen", "Sugarplum", "Pixie", "Pudding", "Perky", "Candycane", "Glitter-toes", + "Happy", "Angel-Eyes", "Sugar-Socks", "McJingles", "Frost", "Tinsel", "Twinkle", "Jingle", "Ginger", + "Joy", "Merry", "Pepper", "Sparkle", "Tinsel", "Winter", "Trinket", "Buddy", "Noel", "Snowball", + "Tiny", "Elfin", "Candy", "Carol", "Angel", "Nick", "Plum", "Holly", "Snow", "Pine", "Garland", + "Joseph", "Gabriel", "Hope", "Cedar"] + return name_list[i % len(name_list)] + + def __str__(self): + return f"#{self.__number} {self.__name}" + + def get_inventory(self) -> list: + return self.__inventory + + def add_to_inventory(self, item: Item): + self.__inventory.append(item) + + def remove_from_inventory(self, slot: int): + """ + Removes item of the given slot number from the inventory using pop(). + That means there are no empty spaces. + + Starts with 0. + :param slot: + :return: + """ + self.__inventory.pop(slot) + + def get_inventory_calories(self) -> int: + return sum([x.calorie_value for x in list(filter(lambda x: isinstance(x, Food), self.get_inventory()))]) diff --git a/entities/items/__init__.py b/entities/items/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/entities/items/__pycache__/__init__.cpython-310.pyc b/entities/items/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..118f914d322b90da83f88e2ca3ab6587099d909b GIT binary patch literal 167 zcmd1j<>g`kg1<{Ul0o!i5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!HQenx(7s(wLg zYEh+raDG}zd16s&d_YltR%&udvA$zUS!!NMewuTBN~*q*fsv6ukegYOnOdx$S(2Jt jtREkrnU`4-AFo$Xd5gm)H$SB`C)EyQM==wSU||3NN0ccI literal 0 HcmV?d00001 diff --git a/entities/items/__pycache__/food.cpython-310.pyc b/entities/items/__pycache__/food.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..148cfd416359aa1b19c564f47005bc47a8d5229d GIT binary patch literal 591 zcmYk3v1;5v5Qb;9I{R{*(j-Ml71F6Wg{wnI2sorM0e5N!p&b#K)$L_ha&U0xfZgOd zj9+QnRCxtgnc2I88<<}+((X6^u3S+pfMa^NZy)&iSDNFG^tx%XC}XZa`ul`L8)T?b)=z{<~Rf<5#F*8)XD&FRHVD?4my>9%R0Y<9O@b4 z@|d4FXX0twSm%3cv$TCDQtN$&S6qy63zy0;<`4V3Q8$2@0mkU_m^^Kofl3``VcL?9 zbHskrkBD`#$KzFFCn~d;2eO?Pw~s15Lu_pm0^%b)omJo6K-HGWUso5d8-F&Q@SAs+ z)Q+M0WUgp4y6&?xRIT5w*A=(@*i)!_zK~FLe4N$x+RvGN!Wm@9bG1;v3OVWO;Hf+j ze_|LhE)WN2CM)$4@yFEI{TJPD#>9%n-epVHBKjp`cOt*n7b0?5GA_-W!|N=)IWKkn f;^1( zalYR6Q?2W+4qDSzPv>I(l91f_FSEoCU>k|ox{tMPt=Tk`A8Y-%DViT9^1-