From ebd649e7a8a199721c1aa07c3aec52e4d9045c4a Mon Sep 17 00:00:00 2001 From: luxick Date: Sun, 26 Jul 2015 22:52:29 +0200 Subject: [PATCH] abstracted update functions for stats --- config.py | 4 +- config.pyc | Bin 408 -> 439 bytes tamagotchi.py | 103 ++++++++++++++++++++----------------------------- tamagotchi.pyc | Bin 5108 -> 4318 bytes test.py | 2 +- 5 files changed, 45 insertions(+), 64 deletions(-) diff --git a/config.py b/config.py index 41d074c..4ef9ee0 100644 --- a/config.py +++ b/config.py @@ -1,9 +1,11 @@ #!/usr/bin/python +# The lenght of one game cycle in milliseconds +ticklenght = 0.1 # The amount of points a Tamagotchi loses per tick decayaspeed = 1 # Controls if Tamagotchi stats are shown in absolute vlaues or precentage (Possible values: True/False) -show_pct = False +show_pct = True # When new Tamagotchis are created their stats will be be created randomly between these. min_stat = 100 max_stat = 200 diff --git a/config.pyc b/config.pyc index 7a3f02ca01ef16b6dbdfa5fddc19081044b613e9..024e5cf17e4586e75a38e553d72e084b70dc0b71 100644 GIT binary patch delta 223 zcmXYqF%H5o3`KvMHZ3h|3>=}S0H%&Cz>=-1BZxo<(J(M^1~y>oB@p5UoP#TH0h|b1 ze*WK*?W=ssv-}S7u6isR{6lb`aK80w#i%AZ84b&`FppPz;?0odw+kCD1uY zK^LGD^D^U8tNYEzYhwKe%a>u_7&E1pxyO((EBj36y|c|`Yj&%(a|K&6O?|4{y)oos V_KU;u(tSpLNkt(AQz*&B{Rh*~CjbBd delta 192 zcmdnaJcGHO`707+(s6efl!7O*%g zLkcrP6dRb$4rX&Oq_8kVaWbT^GDLAPq_8mrYp??i$pjgh2{ei!^8|=s1`%8!LWDt) wfx%CM8^|sJ5hb%7 diff --git a/tamagotchi.py b/tamagotchi.py index c248336..c18830c 100644 --- a/tamagotchi.py +++ b/tamagotchi.py @@ -3,10 +3,10 @@ class Tamagotchi: status = '' name = '' - hunger = 0 - happiness = 0 - hygiene = 0 - sleep = 0 + hunger = [] + happiness = [] + hygiene = [] + sleep = [] dead = False decayspeed = 0 potential = 0 @@ -38,78 +38,57 @@ class Tamagotchi: self.status = 'Working' tamagotchi.status = 'Bathing' - def update_sleep(self): - if self.status is 'Sleeping': - if self.sleep[0] >= self.sleep[1]: + def update_stat(self,stat,recovering): + if recovering: + if stat[0] >= stat[1]: + self.status = 'Idle' + if stat[0] >= stat[1] - self.recovery: + stat[0] = stat[1] self.status = 'Idle' - if self.sleep[0] >= self.sleep[1] - self.recovery: - self.sleep[0] = self.sleep[1] else: - self.sleep[0] += self.recovery + stat[0] += self.recovery else: - if self.sleep[0] <= 0 + self.decayspeed: - self.sleep[0] = 0 - self.status = 'Sleeping' + if stat[0] <= 0 + self.decayspeed: + stat[0] = 0 else: - self.sleep[0] -= self.decayspeed + stat[0] -= self.decayspeed - def update_hunger(self): - if self.status is 'Eating': - if self.hunger[0] >= self.hunger[1]: - self.status = 'Idle' - if self.hunger[0] >= self.hunger[1] - self.recovery: - self.hunger[0] = self.hunger[1] - else: - self.hunger[0] += self.recovery - else: - if self.hunger[0] <= 0 + self.decayspeed: - self.hunger[0] = 0 + def update_status(self): + if not self.dead: + if self.hunger[0] <= 0: self.status = 'Dead' self.dead = True - else: - self.hunger[0] -= self.decayspeed - - def update_hygiene(self): - if self.status is 'Bathing': - if self.hygiene[0] >= self.hygiene[1]: - self.status = 'Idle' - if self.hygiene[0] >= self.hygiene[1] - self.recovery: - self.hygiene[0] = self.hygiene[1] - else: - self.hygiene[0] += self.recovery - else: - if self.hygiene[0] <= 0 + self.decayspeed: - self.hygiene[0] = 0 - else: - self.hygiene[0] -= self.decayspeed - - def update_happiness(self): - if self.status is 'Playing': - if self.happiness[0] >= self.happiness[1]: - self.status = 'Idle' - if self.happiness[0] >= self.happiness[1] -self.recovery: - self.happiness[0] = self.happiness[1] - else: - self.happiness[0] += self.recovery - else: - if self.happiness[0] <= 0 + self.decayspeed: - self.happiness[0] = 0 - else: - self.happiness[0] -= self.decayspeed - - def step(self): - if not self.dead: + if self.sleep[0] <= 0: + self.status = 'Sleeping' if self.status is 'Working': if self.power <= 0: self.status = 'Idle' self.power = self.potential else: self.power -= 1 + + def step(self): + self.update_status() + + if self.status is 'Eating': + self.update_stat(self.hunger,True) else: - self.update_hunger() - self.update_sleep() - self.update_hygiene() - self.update_happiness() + self.update_stat(self.hunger,False) + + if self.status is 'Sleeping': + self.update_stat(self.sleep,True) + else: + self.update_stat(self.sleep,False) + + if self.status is 'Bathing': + self.update_stat(self.hygiene,True) + else: + self.update_stat(self.hygiene,False) + + if self.status is 'Playing': + self.update_stat(self.happiness,True) + else: + self.update_stat(self.happiness,False) def is_dead(self): if self.dead: diff --git a/tamagotchi.pyc b/tamagotchi.pyc index 414be85a37effa44e83e07287d0bbf580ca46768..538ac18e1b0b180270a34606ef05354a7a6a9e1f 100644 GIT binary patch delta 1179 zcmZuwO-~b16utM&2Q743r9ed@YGQEwh{hFN)RiA0E{INbBO!%!MgldpOs6bNV;2Nn zlZlB53$`wF#SbuX<4z|1zB6`jg3K~U=)+DwS9Yt4gcW1{A>b`eyiEr5hOLQ2vjC(S=p9K1b;!WyHEv9L_ z3{AHjisvY_s87@&Y76Vsyregn&Vjb1Q=-WjwPVrd$3syQlMoDO-m10dk7~(!NE@oO znBwlqK>~8G6Rsvv1EgypPY4jZJi!H?;UX8zl&P?1nphG83#x(p5}*kY?P-wN zB(0#QJ1|qG8-|jTUW&k0yTd_7e0=1!QLojN(56<7;;gI#I!eB!&^auLbzO}e+WdgP z-VmNkRnw5n9!jZaBeKcNGxg$rv>GNk$<<#*ccYFt5uBATwNg#>AqesSc&E;)@@d?Q z0-f}bFQhA8J$;=U8^F0mZ(B5o)IPL*TPM`L z4GU+uZHRF%)El5=9nJP>phBa5t(~B_Lxqw(5~|Kp-Tn#P$WWbRPwBGr`7SzHKig?; zs8F(*P*1~=rWb>8!QcX*0+K-$jHnzWxFwN?YE-4KTY& z)Om>ac>&^4Q{pL8{twexug0_KlGo(r^o#e6n+NZTUzuMVJUYW>62Dg$TOhuYJ;t9- ZSH?R$ll~a*@y+x}dCn^4E9sl^)?dx#vd91c literal 5108 zcmds5Pj4Gl5T9K;PVB}>`Y&n1zg8l`y)Q=h^q>H*aR13x8KD z-`@K1qlTn^1^mB-JDvma@hOOJ$=4!>BA?bF+pK4t^ZKZ0gUZlzTn9`EcaS0}*URJ)M^o-I;rB%KaQ>agII%KBBFDf%5{+Kdn z#V;vyPW*9Y&Wk^x%mwkw%3Kt`qRg!LXOx)}e^QxC;#ZZK7k^5b1#vcN(^x}-TSAgX z8HBfu`(51emmvF=?2EWyY<{*tAwpT;Cl#SA@{@{qG{#RV7A1j*Z>cxPjLUvWH50NA z9-4B-RAe7YXy76N7@W*{QUtx{w}RRv7?s-IPLPx!HFw)vK{w&Vn_d)!?I4bmaZ0_d zFlYyOH0f=Iddy;dBk1wZh7wGby>vKuSne$eoGaTEl;8jLzg&`v_HrC*IYdw9_V z%yolC=kuW3tMRRBEDl2Al7*9ex9LGZbaPOH=I9noBidO8o+4clSjx-&2n&(f?_wx-jo4BlJ~Ix)Ky zS&l`N($5<7K$#33&PA-N13$rB!uFQ>=#H0wtug!^ZVko7(Ey^DPj)nmqs>jA;C7N` z(0vI~Ouuq@|9vseS$tDh^g+w(J!Tosc?=rOZNJgAjV4v9vuQ-EUMxO0;F355N^`&9#}W zg4`^u=@#JbUDpk^!Mp*lhtNo<(a(LPB|`Us+27pNy2;H3;kFn}C^2X3M!uH>uBNc7 zkmCy=f=#|)OMKPQ0xJn2*ekdr?c0_c|^fJ~v#q>72V zWAbFAm}1wRbD%>AX;OX<8NQ}jm|<-)^8hLxalgA8INYzJ2CfR5DR8Dh-Gm}d(Zk4< zPsQ#xeBn7__iGMOwjm65xAF%=*nNK-yC);1d&*(kHH6fWy`)eL02(zUG@L+#Xg|rsLiht1(^(Esq_Yj4KyLofme~V>je)Yr)J<4a?|-5m-oXIh5RAi`SMn7Z>w75Z{3k z_}&1pC-4R4caOqLIY$@L0Nj;>ib;ZtFn1be&TD)?P|cZ=Ud_*xrf+hiMv^dh4i5LK z;fXpu;HzAQtQ|6?(QV>10$}qCzJNg?)~n{SYcD`b&*A(z!gcjG1lQf^_`5BLCh_a~ zm}!Q8703%j{`-Jd2`#xSj}BXXhlh2Cxy}>~Egyr*;aui}DPevM7Y1z(CFr+u3t0Gep^!mC;AU5%clYW diff --git a/test.py b/test.py index 123db72..fda71a8 100644 --- a/test.py +++ b/test.py @@ -37,5 +37,5 @@ while True: if key == ord('q'): break elif key < 0: - time.sleep(0.1) + time.sleep(ticklenght) curses.endwin()