diff --git a/config.py b/config.py new file mode 100644 index 0000000..20884bd --- /dev/null +++ b/config.py @@ -0,0 +1,16 @@ +#!/usr/bin/python + +# 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 +# When new Tamagotchis are created their stats will be be created randomly between these. +min_stat = 100 +max_stat = 200 +# Tamagotchis decay at a set rate per tick. The value of decay is randomly chosen between these two. +min_decay = 1 +max_decay = 3 +# These two define how long it takes a Tamagotchi to perform work (preparing food/washing someone/playing with someone) +# The value is choosen randomly between these two. Obviously a lower number is better. +min_workpower = 1 +max_workpower = 3 diff --git a/config.pyc b/config.pyc new file mode 100644 index 0000000..45dcc48 Binary files /dev/null and b/config.pyc differ diff --git a/mayorgotchi.py b/mayorgotchi.py index 7a407c2..f284da2 100644 --- a/mayorgotchi.py +++ b/mayorgotchi.py @@ -20,7 +20,7 @@ class Mayorgotchi: self.mygotchis.remove(n) def give_status(self,show_pct): - result = 'I am Mayorgotchi ' + self.name + '.\nIn my Village '+str(self.graveyard)+' Tamagotchis died so far.\nThese are the Tamagotchis living in my Village:\n\n' + result = 'I am Mayorgotchi ' + self.name + '.\nIn my Village '+str(self.graveyard)+' Tamagotchis died so far.\nThese are the '+str(len(self.mygotchis))+' Tamagotchis living in my Village:\n\n' for n in self.mygotchis: if show_pct: result += n.status_pct() @@ -33,7 +33,7 @@ class Mayorgotchi: for n in self.mygotchis: if n.status is 'Idle': freegotchis.append(n) - if freegotchis is not None: + if len(freegotchis) > 0: return freegotchis[random.randrange(0,len(freegotchis),1)] else: return None diff --git a/mayorgotchi.pyc b/mayorgotchi.pyc index 6582139..23a75d3 100644 Binary files a/mayorgotchi.pyc and b/mayorgotchi.pyc differ diff --git a/tamagotchi.py b/tamagotchi.py index d9c1447..a0b468a 100644 --- a/tamagotchi.py +++ b/tamagotchi.py @@ -39,28 +39,33 @@ class Tamagotchi: tamagotchi.status = 'Bathing' def update_sleep(self): - if self.sleep[0] <= 0: - self.status = 'Sleeping' if self.status is 'Sleeping': - if self.sleep[0] <= self.sleep[1] - self.decayspeed: - self.sleep[0] += 5 if self.sleep[0] >= self.sleep[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 else: - self.sleep[0] -= self.decayspeed + if self.sleep[0] <= 0 + self.decayspeed: + self.sleep[0] = 0 + self.status = 'Sleeping' + else: + self.sleep[0] -= self.decayspeed def update_hunger(self): if self.status is 'Eating': - if self.hunger[0] <= self.hunger[1]: - self.hunger[0] += 30 - else: + 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: - # The Tamagotchi is starving - if self.hunger[0] < self.decayspeed: + if self.hunger[0] <= 0 + self.decayspeed: self.hunger[0] = 0 - self.dead = True self.status = 'Dead' + self.dead = True else: self.hunger[0] -= self.decayspeed @@ -73,7 +78,7 @@ class Tamagotchi: else: self.hygiene[0] += self.recovery else: - if self.hygiene[0] <= 0: + if self.hygiene[0] <= 0 + self.decayspeed: self.hygiene[0] = 0 else: self.hygiene[0] -= self.decayspeed @@ -87,7 +92,7 @@ class Tamagotchi: else: self.happiness[0] += self.recovery else: - if self.happiness[0] <= 0: + if self.happiness[0] <= 0 + self.decayspeed: self.happiness[0] = 0 else: self.happiness[0] -= self.decayspeed diff --git a/tamagotchi.pyc b/tamagotchi.pyc index fa8318c..0fcad13 100644 Binary files a/tamagotchi.pyc and b/tamagotchi.pyc differ diff --git a/test.py b/test.py index 5786189..123db72 100644 --- a/test.py +++ b/test.py @@ -2,18 +2,15 @@ from mayorgotchi import Mayorgotchi from util import Util +from config import * import time import curses # Temporary test section -# Variable Definition -decayaspeed = 1 -ticks = 200000 -show_pct = True - list = [] +ticks = 0 for n in range(0,50): list.append(Util().make_Tamagotchi()) @@ -27,16 +24,18 @@ curses.curs_set(0) screen.keypad(1) screen.nodelay(1) -for n in range (0, ticks): +while True: screen.move(0,0) mayor.step() - screen.addstr('----------------------After '+str(n)+' ticks------------------------------\n') + screen.addstr('Simulation running. Press [q] to exit.\n') + screen.addstr('----------------------After '+str(ticks)+' ticks------------------------------\n') screen.addstr(mayor.give_status(show_pct)) + ticks += 1 screen.clrtobot() key = screen.getch() if key == ord('q'): break elif key < 0: - time.sleep(0.5) + time.sleep(0.1) curses.endwin() diff --git a/util.py b/util.py index 84a3bef..eaef25c 100644 --- a/util.py +++ b/util.py @@ -3,16 +3,17 @@ from tamagotchi import Tamagotchi import random import names +from config import * class Util: def make_Tamagotchi(self): name = names.get_last_name() - hunger = random.randrange(80,120,1) - happiness = random.randrange(80,120,1) - hygiene = random.randrange(80,120,1) - sleep = random.randrange(80,120,1) - decayspeed = random.randrange(1,3,1) - potential = random.randrange(1,5,1) + hunger = random.randrange(min_stat,max_stat,1) + happiness = random.randrange(min_stat,max_stat,1) + hygiene = random.randrange(min_stat,max_stat,1) + sleep = random.randrange(min_stat,max_stat,1) + decayspeed = random.randrange(min_decay,max_decay,1) + potential = random.randrange(min_workpower, max_workpower,1) return Tamagotchi(name,hunger,happiness,hygiene,sleep,decayspeed,potential) diff --git a/util.pyc b/util.pyc index 524fe9f..258b700 100644 Binary files a/util.pyc and b/util.pyc differ