tamagotchis now feed and wash each other

This commit is contained in:
luxick
2015-07-26 19:06:09 +02:00
parent af5e4465d4
commit 3e80d61fc4
7 changed files with 109 additions and 44 deletions

View File

@@ -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()

Binary file not shown.

View File

@@ -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
def sleep(self):
self.sleep += 5
def decay(self, amount):
if not self.dead:
if self.hunger[0] < amount:
self.hunger[0] = 0
self.dead = True
self.status = 'Dead'
else:
self.hunger[0] -= amount
if self.happiness[0] < amount:
self.happiness[0] = 0
else:
self.happiness[0] -= amount
if self.hygiene[0] < amount:
self.hygiene[0] = 0
else:
self.hygiene[0] -= amount
self.status = 'Working'
tamagotchi.status = 'Bathing'
def update_sleep(self):
if self.sleep[0] <= 0:
self.status = "Sleeping"
self.status = 'Sleeping'
if self.status is 'Sleeping':
if self.sleep[0] <= self.sleep[1] - amount:
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] -= amount
self.sleep[0] -= self.decayspeed
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] -= 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:
self.hygiene[0] -= self.decayspeed
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:

Binary file not shown.

21
test.py
View File

@@ -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)

View File

@@ -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)

BIN
util.pyc

Binary file not shown.