annotate petri.py @ 20:2df48c61bd42
now cells can move,reproduce
author |
Yashina Ksenia <ksenia_yashina@kodomo.fbb.msu.ru> |
date |
Mon, 20 Dec 2010 01:44:18 +0300 |
parents |
|
children |
69a4724e7cac |
rev |
line source |
ksenia_yashina@20
|
1 class Petri (object): |
ksenia_yashina@20
|
2 def __init__ (self, num=1, bacteria=[], radius=150, delta=5, bact_r=10, full_lifetime=1000): |
ksenia_yashina@20
|
3 self.num=num |
ksenia_yashina@20
|
4 self.bacteria=bacteria |
ksenia_yashina@20
|
5 self.radius=radius |
ksenia_yashina@20
|
6 self.delta=delta |
ksenia_yashina@20
|
7 self.bact_r=bact_r |
ksenia_yashina@20
|
8 self.full_lifetime=full_lifetime |
ksenia_yashina@20
|
9 |
ksenia_yashina@20
|
10 def step (self, delta_t, env,a,s): |
ksenia_yashina@20
|
11 for bact in self.bacteria: |
ksenia_yashina@20
|
12 bact.lifetime-=delta_t |
ksenia_yashina@20
|
13 if bact.lifetime <= 0: |
ksenia_yashina@20
|
14 self.bacteria.remove(bact) |
ksenia_yashina@20
|
15 self.num-=1 |
ksenia_yashina@20
|
16 continue |
ksenia_yashina@20
|
17 collide=bact.check_collision(self.bacteria,1,self.bact_r,delta_t) |
ksenia_yashina@20
|
18 if not(collide): |
ksenia_yashina@20
|
19 if bact.reprod('a', env, 0.1) and a: |
ksenia_yashina@20
|
20 bact.asexual(self.bacteria, delta_t, self.radius, self.delta, self.bact_r, self.full_lifetime) |
ksenia_yashina@20
|
21 continue |
ksenia_yashina@20
|
22 bact.move(self.bacteria, delta_t, self.radius, self.delta, self.bact_r) |
ksenia_yashina@20
|
23 continue |
ksenia_yashina@20
|
24 if bact.reprod('s', env,1) and s: |
ksenia_yashina@20
|
25 bact.sexual(collide, self.bacteria, delta_t, self.radius, self.delta, self.bact_r, self.full_lifetime) |
ksenia_yashina@20
|
26 continue |
ksenia_yashina@20
|
27 bact.collision(collide, self.bacteria, delta_t, self.radius, self.delta, self.bact_r) |