From 834471044da08a117afe059492d912ce3db1c143 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Wed, 07 Dec 2011 16:13:35 +0000 Subject: added bilateral symmetry game --- diff --git a/ReflectionActivity.py b/ReflectionActivity.py index 1f42c5e..e4b3361 100644 --- a/ReflectionActivity.py +++ b/ReflectionActivity.py @@ -104,6 +104,11 @@ class ReflectionActivity(activity.Activity): cb_arg='vertical', tooltip=_('Start a new vertical-reflection game.')) + self._new_game_button_b = button_factory( + 'new-game-bilateral', self.toolbar, self._new_game_cb, + cb_arg='bilateral', + tooltip=_('Start a new bilateral-reflection game.')) + self.status = label_factory(self.toolbar, '') if _have_toolbox: diff --git a/game.py b/game.py index 138bce4..70ef13c 100644 --- a/game.py +++ b/game.py @@ -94,9 +94,12 @@ class Game(): if self._orientation == 'horizontal': self.hline.hide() self.vline.set_layer(1000) - else: + elif self._orientation == 'vertical': self.hline.set_layer(1000) self.vline.hide() + else: + self.hline.set_layer(1000) + self.vline.set_layer(1000) # Clear dots for dot in self._dots: @@ -107,9 +110,12 @@ class Game(): if self._orientation == 'horizontal': self._set_label( _('Click on the dots to make a horizontal reflection.')) - else: + elif self._orientation == 'vertical': self._set_label( _('Click on the dots to make a vertical reflection.')) + else: + self._set_label( + _('Click on the dots to make a bilateral reflection.')) def _initiating(self): return self._activity.initiating @@ -157,7 +163,21 @@ class Game(): return False self._set_label(_('good work')) return True + if self._orientation == 'vertical': + for y in range(int(SIX / 2)): + for x in range(TEN): + if self._dots[y * TEN + x].type != \ + self._dots[(SIX - y - 1) * TEN + x].type: + self._set_label(_('keep trying')) + return False + self._set_label(_('good work')) else: + for y in range(SIX): + for x in range(SIX): + if self._dots[y * TEN + x].type != \ + self._dots[y * TEN + TEN - x - 1].type: + self._set_label(_('keep trying')) + return False for y in range(int(SIX / 2)): for x in range(TEN): if self._dots[y * TEN + x].type != \ diff --git a/icons/new-game-bilateral.svg b/icons/new-game-bilateral.svg new file mode 100644 index 0000000..be0d797 --- /dev/null +++ b/icons/new-game-bilateral.svg @@ -0,0 +1,196 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v0.9.1