diff --git a/mayorgotchi.py b/mayorgotchi.py index 9f9e4e6..1aa160c 100644 --- a/mayorgotchi.py +++ b/mayorgotchi.py @@ -2,6 +2,7 @@ from tamagotchi import Tamagotchi import names +import random class Mayorgotchi: mygotchis = [] @@ -25,7 +26,46 @@ class Mayorgotchi: result += n.status_abs() return result + def get_free(self): + freegotchis = [] + for n in self.mygotchis: + if n.status is 'Idle': + freegotchis.append(n) + if freegotchis is not None: + return freegotchis[random.randrange(0,len(freegotchis),1)] + else: + return None + + def get_hungry(self): + for n in self.mygotchis: + if n.status is 'Idle': + if n.hunger[0] <= 20: + return n + + def get_dirty(self): + dirties = [] + for n in self.mygotchis: + if n.hygiene[0] <= 20: + dirties.append(n) + if len(dirties) > 0: + return dirties[random.randrange(0,len(dirties),1)] + else: + return None + + def order_feed(self): + hungry = self.get_hungry() + if hungry is not None: + self.get_free().feed_other(hungry) + + def order_wash(self): + dirty = self.get_dirty() + if dirty is not None: + self.get_free().wash_other(dirty) + + def step(self): for n in self.mygotchis: n.step() self.remove_corpses() + self.order_feed() + self.order_wash() diff --git a/mayorgotchi.pyc b/mayorgotchi.pyc index 303e3f3..68ec52b 100644 Binary files a/mayorgotchi.pyc and b/mayorgotchi.pyc differ diff --git a/tamagotchi.py b/tamagotchi.py index 678ec9a..55150bd 100644 --- a/tamagotchi.py +++ b/tamagotchi.py @@ -9,8 +9,12 @@ class Tamagotchi: sleep = 0 dead = False decayspeed = 0 + potential = 0 + power = 0 - def __init__(self, name, hunger, happiness, hygiene, sleep, decayspeed): + recovery = 10 + + def __init__(self, name, hunger, happiness, hygiene, sleep, decayspeed, potential): self.name = name self.hunger = [hunger, hunger] self.happiness = [happiness, happiness] @@ -19,52 +23,79 @@ class Tamagotchi: self.dead = False self.status = 'Idle' self.decayspeed = decayspeed + self.potential = potential + self.power = potential + + def set_status(self, status): + self.status = status def feed_other(self, tamagotchi): - tamagotchi.hunger += 5 + self.status = 'Working' + tamagotchi.status = 'Eating' def play_with(self, tamagotchi): tamagotchi.happiness += 5 self.happiness += 5 def wash_other(self,tamagotchi): - tamagotchi.hygiene += 5 + self.status = 'Working' + tamagotchi.status = 'Bathing' - def sleep(self): - self.sleep += 5 + 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' + else: + self.sleep[0] -= self.decayspeed - def decay(self, amount): - if not self.dead: - if self.hunger[0] < amount: + def update_hunger(self): + if self.status is 'Eating': + if self.hunger[0] <= self.hunger[1]: + self.hunger[0] += 10 + else: + self.status = 'Idle' + elif self.status is 'Idle': + # The Tamagotchi is starving + if self.hunger[0] < self.decayspeed: self.hunger[0] = 0 self.dead = True self.status = 'Dead' else: - self.hunger[0] -= amount + self.hunger[0] -= self.decayspeed - if self.happiness[0] < amount: - self.happiness[0] = 0 + 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.happiness[0] -= amount + self.hygiene[0] += self.recovery + else: + self.hygiene[0] -= self.decayspeed - if self.hygiene[0] < amount: - self.hygiene[0] = 0 - else: - self.hygiene[0] -= amount - - if self.sleep[0] <= 0: - self.status = "Sleeping" - - if self.status is 'Sleeping': - if self.sleep[0] <= self.sleep[1] - amount: - self.sleep[0] += 5 - if self.sleep[0] >= self.sleep[1]: - self.status = 'Idle' - else: - self.sleep[0] -= amount def step(self): - self.decay(self.decayspeed) + if not self.dead: + if self.status is 'Working': + if self.power <= 0: + self.status = 'Idle' + self.power = self.potential + else: + self.power -= 1 + else: + if self.happiness[0] < self.decayspeed: + self.happiness[0] = 0 + else: + self.happiness[0] -= self.decayspeed + + self.update_hunger() + self.update_sleep() + self.update_hygiene() def is_dead(self): if self.dead: diff --git a/tamagotchi.pyc b/tamagotchi.pyc index d3f9d3a..430b61e 100644 Binary files a/tamagotchi.pyc and b/tamagotchi.pyc differ diff --git a/test.py b/test.py index 79ddb1b..95293ac 100644 --- a/test.py +++ b/test.py @@ -2,34 +2,27 @@ from mayorgotchi import Mayorgotchi from util import Util +import time # Temporary test section # Variable Definition decayaspeed = 1 -ticks = 50 +ticks = 200000 show_pct = True list = [] -for n in range(0,10): +for n in range(0,50): list.append(Util().make_Tamagotchi()) mayor = Mayorgotchi(list) - -print mayor.give_status(show_pct) - for n in range (0, ticks): mayor.step() + print(chr(27) + "[2J") + print '----------------------After '+str(n)+' ticks------------------------------\n' -print '----------------------After '+str(ticks)+' ticks------------------------------\n' + print mayor.give_status(show_pct) -print mayor.give_status(show_pct) - -for n in range (0, ticks): - mayor.step() - -print '----------------------After another '+str(ticks)+' ticks------------------------------\n' - -print mayor.give_status(show_pct) + time.sleep(0.5) diff --git a/util.py b/util.py index 9842692..84a3bef 100644 --- a/util.py +++ b/util.py @@ -1,4 +1,4 @@ -#! /usr/bin/python +#!/usr/bin/python from tamagotchi import Tamagotchi import random @@ -13,5 +13,6 @@ class Util: hygiene = random.randrange(80,120,1) sleep = random.randrange(80,120,1) decayspeed = random.randrange(1,3,1) + potential = random.randrange(1,5,1) - return Tamagotchi(name,hunger,happiness,hygiene,sleep,decayspeed) + return Tamagotchi(name,hunger,happiness,hygiene,sleep,decayspeed,potential) diff --git a/util.pyc b/util.pyc index 3027c18..524fe9f 100644 Binary files a/util.pyc and b/util.pyc differ