[gcompris] play rhythm, code cleanup



commit d1d8b00ace45ee0a713c7b9589c407eb25cf1088
Author: Bruno Coudoin <bruno coudoin free fr>
Date:   Tue Oct 2 00:29:04 2012 +0200

    play rhythm, code cleanup
    
    Now the list recordedHits is relative to the previous
    hit. It avoids the needs to recalc it later.

 src/play_rhythm-activity/play_rhythm.py |   49 +++++++++++-------------------
 1 files changed, 18 insertions(+), 31 deletions(-)
---
diff --git a/src/play_rhythm-activity/play_rhythm.py b/src/play_rhythm-activity/play_rhythm.py
index 490d806..e6877ef 100644
--- a/src/play_rhythm-activity/play_rhythm.py
+++ b/src/play_rhythm-activity/play_rhythm.py
@@ -283,40 +283,27 @@ dialogue to\nenable the sound."), None)
         def nearlyEqual(inputNum, correctNum, amountOfError):
             return abs(inputNum - correctNum) <= amountOfError
 
-        self.netOffsets = [0]
-        for index, x in enumerate(self.recordedHits[1:]):
-            self.netOffsets.append(x - self.recordedHits[index])
-        correctedList = []
-        if len(self.netOffsets) != len(self.givenOption):
+        if len(self.recordedHits) != len(self.givenOption):
             self.doNotRemoveFromList = True
             self.afterBonus = self.tryagain
             gcompris.bonus.display(gcompris.bonus.LOOSE, gcompris.bonus.NOTE)
             return
-        for rhythmItem, recordedHit in zip(self.givenOption[:-1], self.netOffsets[1:]):
-            if rhythmItem == 8:
-                if not nearlyEqual(recordedHit, 0.25, 0.2):
-                    self.doNotRemoveFromList = True
-                    self.afterBonus = self.tryagain
-                    gcompris.bonus.display(gcompris.bonus.LOOSE, gcompris.bonus.NOTE)
-                    return
-            if rhythmItem == 4:
-                if not nearlyEqual(recordedHit, 0.5, 0.2):
-                    self.doNotRemoveFromList = True
-                    self.afterBonus = self.tryagain
-                    gcompris.bonus.display(gcompris.bonus.LOOSE, gcompris.bonus.NOTE)
-                    return
-            if rhythmItem == 2:
-                if not nearlyEqual(recordedHit, 1.0, 0.2):
-                    self.doNotRemoveFromList = True
-                    self.afterBonus = self.tryagain
-                    gcompris.bonus.display(gcompris.bonus.LOOSE, gcompris.bonus.NOTE)
-                    return
-            if rhythmItem == 1:
-                if not nearlyEqual(recordedHit, 2.0, 0.2):
-                    self.doNotRemoveFromList = True
-                    self.afterBonus = self.tryagain
-                    gcompris.bonus.display(gcompris.bonus.LOOSE, gcompris.bonus.NOTE)
-                    return
+
+        for rhythmItem, recordedHit in zip(self.givenOption[:-1], self.recordedHits[1:]):
+            lost = False
+            if rhythmItem == 8 and not nearlyEqual(recordedHit, 0.25, 0.2):
+                lost = True
+            elif rhythmItem == 4 and not nearlyEqual(recordedHit, 0.5, 0.2):
+                lost = True
+            elif rhythmItem == 2 and not nearlyEqual(recordedHit, 1.0, 0.2):
+                lost = True
+            elif rhythmItem == 1 and not nearlyEqual(recordedHit, 2.0, 0.2):
+                lost = True
+            if lost:
+                self.doNotRemoveFromList = True
+                self.afterBonus = self.tryagain
+                gcompris.bonus.display(gcompris.bonus.LOOSE, gcompris.bonus.NOTE)
+                return
 
         self.afterBonus = self.nextChallenge
         gcompris.bonus.display(gcompris.bonus.WIN, gcompris.bonus.NOTE)
@@ -454,8 +441,8 @@ dialogue to\nenable the sound."), None)
             self.startTime = time.time()
             self.recordedHits.append(0.0)
         else:
-            netTime = time.time() - self.startTime
             self.recordedHits.append(time.time() - self.startTime)
+            self.startTime = time.time()
 
     def end(self):
         self.running = False



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]