From c6d3343db8fa57fe890987c8165f00c69ddd393e Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Fri, 29 Oct 2010 13:44:27 +0000 Subject: fixed careless error (ijmp instead of _ijmp) in _prim_ifelse --- (limited to 'TurtleArt') diff --git a/TurtleArt/talogo.py b/TurtleArt/talogo.py index 0e514b1..bf576fa 100644 --- a/TurtleArt/talogo.py +++ b/TurtleArt/talogo.py @@ -258,13 +258,17 @@ def _identity(x): return(x) -def _avg(array): +def _avg(array, abs_value=False): """ Calc. the average value of an array """ if len(array) == 0: return 0 sum = 0 - for a in array: - sum += a + if abs_value: + for a in array: + sum += abs(a) + else: + for a in array: + sum += a return float(sum) / len(array) @@ -937,10 +941,10 @@ class LogoCode: def _prim_ifelse(self, boolean, list1, list2): """ If bool, do list1, else do list2 """ if boolean: - self.ijmp(self._evline, list1[:]) + self._ijmp(self._evline, list1[:]) yield True else: - self.ijmp(self._evline, list2[:]) + self._ijmp(self._evline, list2[:]) yield True def _prim_opar(self, val): @@ -1378,7 +1382,7 @@ class LogoCode: """ return mic in value """ buf = self.ringbuffer.read(None, self.input_step) if len(buf) > 0: - return float(_avg(buf)) / 164 # scale from -100 to 100 + return float(_avg(buf, abs_value=True)) / 164 # scale from 0 to 100 else: return 0 -- cgit v0.9.1