tamagotchis now feed and wash each other
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
from tamagotchi import Tamagotchi
|
from tamagotchi import Tamagotchi
|
||||||
import names
|
import names
|
||||||
|
import random
|
||||||
|
|
||||||
class Mayorgotchi:
|
class Mayorgotchi:
|
||||||
mygotchis = []
|
mygotchis = []
|
||||||
@@ -25,7 +26,46 @@ class Mayorgotchi:
|
|||||||
result += n.status_abs()
|
result += n.status_abs()
|
||||||
return result
|
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):
|
def step(self):
|
||||||
for n in self.mygotchis:
|
for n in self.mygotchis:
|
||||||
n.step()
|
n.step()
|
||||||
self.remove_corpses()
|
self.remove_corpses()
|
||||||
|
self.order_feed()
|
||||||
|
self.order_wash()
|
||||||
|
|||||||
BIN
mayorgotchi.pyc
BIN
mayorgotchi.pyc
Binary file not shown.
@@ -9,8 +9,12 @@ class Tamagotchi:
|
|||||||
sleep = 0
|
sleep = 0
|
||||||
dead = False
|
dead = False
|
||||||
decayspeed = 0
|
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.name = name
|
||||||
self.hunger = [hunger, hunger]
|
self.hunger = [hunger, hunger]
|
||||||
self.happiness = [happiness, happiness]
|
self.happiness = [happiness, happiness]
|
||||||
@@ -19,52 +23,79 @@ class Tamagotchi:
|
|||||||
self.dead = False
|
self.dead = False
|
||||||
self.status = 'Idle'
|
self.status = 'Idle'
|
||||||
self.decayspeed = decayspeed
|
self.decayspeed = decayspeed
|
||||||
|
self.potential = potential
|
||||||
|
self.power = potential
|
||||||
|
|
||||||
|
def set_status(self, status):
|
||||||
|
self.status = status
|
||||||
|
|
||||||
def feed_other(self, tamagotchi):
|
def feed_other(self, tamagotchi):
|
||||||
tamagotchi.hunger += 5
|
self.status = 'Working'
|
||||||
|
tamagotchi.status = 'Eating'
|
||||||
|
|
||||||
def play_with(self, tamagotchi):
|
def play_with(self, tamagotchi):
|
||||||
tamagotchi.happiness += 5
|
tamagotchi.happiness += 5
|
||||||
self.happiness += 5
|
self.happiness += 5
|
||||||
|
|
||||||
def wash_other(self,tamagotchi):
|
def wash_other(self,tamagotchi):
|
||||||
tamagotchi.hygiene += 5
|
self.status = 'Working'
|
||||||
|
tamagotchi.status = 'Bathing'
|
||||||
|
|
||||||
def sleep(self):
|
def update_sleep(self):
|
||||||
self.sleep += 5
|
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):
|
def update_hunger(self):
|
||||||
if not self.dead:
|
if self.status is 'Eating':
|
||||||
if self.hunger[0] < amount:
|
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.hunger[0] = 0
|
||||||
self.dead = True
|
self.dead = True
|
||||||
self.status = 'Dead'
|
self.status = 'Dead'
|
||||||
else:
|
else:
|
||||||
self.hunger[0] -= amount
|
self.hunger[0] -= self.decayspeed
|
||||||
|
|
||||||
if self.happiness[0] < amount:
|
def update_hygiene(self):
|
||||||
self.happiness[0] = 0
|
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:
|
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):
|
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):
|
def is_dead(self):
|
||||||
if self.dead:
|
if self.dead:
|
||||||
|
|||||||
BIN
tamagotchi.pyc
BIN
tamagotchi.pyc
Binary file not shown.
21
test.py
21
test.py
@@ -2,34 +2,27 @@
|
|||||||
|
|
||||||
from mayorgotchi import Mayorgotchi
|
from mayorgotchi import Mayorgotchi
|
||||||
from util import Util
|
from util import Util
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
# Temporary test section
|
# Temporary test section
|
||||||
|
|
||||||
# Variable Definition
|
# Variable Definition
|
||||||
decayaspeed = 1
|
decayaspeed = 1
|
||||||
ticks = 50
|
ticks = 200000
|
||||||
show_pct = True
|
show_pct = True
|
||||||
|
|
||||||
list = []
|
list = []
|
||||||
|
|
||||||
for n in range(0,10):
|
for n in range(0,50):
|
||||||
list.append(Util().make_Tamagotchi())
|
list.append(Util().make_Tamagotchi())
|
||||||
|
|
||||||
mayor = Mayorgotchi(list)
|
mayor = Mayorgotchi(list)
|
||||||
|
|
||||||
print mayor.give_status(show_pct)
|
|
||||||
|
|
||||||
for n in range (0, ticks):
|
for n in range (0, ticks):
|
||||||
mayor.step()
|
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)
|
time.sleep(0.5)
|
||||||
|
|
||||||
for n in range (0, ticks):
|
|
||||||
mayor.step()
|
|
||||||
|
|
||||||
print '----------------------After another '+str(ticks)+' ticks------------------------------\n'
|
|
||||||
|
|
||||||
print mayor.give_status(show_pct)
|
|
||||||
|
|||||||
5
util.py
5
util.py
@@ -1,4 +1,4 @@
|
|||||||
#! /usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
from tamagotchi import Tamagotchi
|
from tamagotchi import Tamagotchi
|
||||||
import random
|
import random
|
||||||
@@ -13,5 +13,6 @@ class Util:
|
|||||||
hygiene = random.randrange(80,120,1)
|
hygiene = random.randrange(80,120,1)
|
||||||
sleep = random.randrange(80,120,1)
|
sleep = random.randrange(80,120,1)
|
||||||
decayspeed = random.randrange(1,3,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)
|
||||||
|
|||||||
Reference in New Issue
Block a user