diff options
| -rw-r--r-- | analyze.py | 5 | ||||
| -rw-r--r-- | stats.py | 19 | ||||
| -rw-r--r-- | strategy.py | 2 | 
3 files changed, 21 insertions, 5 deletions
| @@ -14,4 +14,7 @@ for f in files[1:]:  s.analyze_speed()  print("\n" + "-"*40 + "\n")  s.analyze_visible_window(True) - +for i in ["split cell", "ejected mass", "virus"]: +    s.analyze_deviations(i) +for i in ["split cell", "ejected mass", "virus"]: +    s.analyze_distances(i) @@ -297,7 +297,20 @@ class Stats:      def analyze_deviations(self, celltype):          ds = self.data.eject_deviations[celltype] -        if len(ds) == 0: return -        mean, stddev = fit_gaussian(ds) -        print(celltype+" eject/split direction deviations: mean = "+str(mean)+", stddev="+str(stddev)) +        try: +            mean, stddev = fit_gaussian(ds) +        except: +            mean, stddev = "???", "???" + +        print(celltype+" eject/split direction deviations: mean = "+str(mean)+", stddev="+str(stddev)+", ndata="+str(len(ds))) + +    def analyze_distances(self, celltype): +        ds = [v[0] for v in self.data.eject_distlogs[celltype]] + +        try: +            mean, stddev = fit_gaussian(ds) +        except: +            mean, stddev = "???", "???" + +        print(celltype+" eject/split distances: mean = "+str(mean)+", stddev="+str(stddev)+", ndata="+str(len(ds))) diff --git a/strategy.py b/strategy.py index 1be22cf..21a06cf 100644 --- a/strategy.py +++ b/strategy.py @@ -164,7 +164,7 @@ class Strategy:              except AttributeError:                  print("cannot calculate shoot angle, too few backlog")                  continue -            # check if ejecting mass would feed one friend +            # check if ejecting mass would feed a friend              possibly_feedable_cells = list(filter(lambda c : can_feed(my_cell, c), self.c.world.cells.values()))              possibly_feedable_cells.sort(key = lambda c : (my_cell.pos - c.pos).len()) | 
