Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2013-02-03 15:13:31 (GMT)
committer Walter Bender <walter.bender@gmail.com>2013-02-03 15:13:31 (GMT)
commitdcc249afa76b1af5e63d30547959c9403544bd7a (patch)
treebc110b24eeaa7a1b244e37f46fc7e0a11eb24480
parentd7c67e0135d9db3ce3b3a01220a564201ce3f91f (diff)
more robust bounds checksgtk2
-rw-r--r--page.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/page.py b/page.py
index 076aae5..0cd77be 100644
--- a/page.py
+++ b/page.py
@@ -92,7 +92,7 @@ class Page():
self._release = None
self.timeout = None
self.target = 0
- self.answers = [0, 0, 0, 0, 0, 0]
+ self.answers = []
self._my_canvas = Sprite(
self._sprites, 0, 0, svg_str_to_pixbuf(genblank(
@@ -135,6 +135,9 @@ class Page():
''' Load a page of cards '''
if self.timeout is not None:
gobject.source_remove(self.timeout)
+ self.answers = []
+ for i in range(min(6, len(self._cards))):
+ self.answers.append(0)
self._hide_cards()
self._hide_feedback()
self.new_target()
@@ -228,12 +231,13 @@ class Page():
_('Click on the card that corresponds to the sound.'))
self.target = int(uniform(0, len(self._cards)))
- for i in range(6):
- self.answers[i] = self.target
- for i in range(6):
+ for i in range(min(6, len(self._cards))):
+ self.answers[i] = int(uniform(0, len(self._cards)))
+ for i in range(min(6, len(self._cards))):
while self._bad_answer(i):
- self.answers[i] = int(uniform(0, len(self._cards)))
- i = int(uniform(0, 6))
+ self.answers[i] += 1
+ self.answers[i] %= len(self._cards)
+ i = int(uniform(0, min(6, len(self._cards))))
self.answers[i] = self.target
if self.timeout is not None:
@@ -244,7 +248,7 @@ class Page():
''' Make sure answer is unique '''
if self.answers[i] == self.target:
return True
- for j in range(6):
+ for j in range(min(6, len(self._cards))):
if i == j:
continue
if self.answers[i] == self.answers[j]: