diff options
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 133 |
1 files changed, 70 insertions, 63 deletions
diff --git a/activity.py b/activity.py index 8df4538..38e37cd 100644 --- a/activity.py +++ b/activity.py @@ -1,4 +1,6 @@ -# Copyright 2013 Elena Ramos, Vladimir Espinola +# -*- coding: utf-8 -*- +# Copyright 2013 Elena Ramos +# Copyright 2013 Vladimir Espinola # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -14,13 +16,13 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -""" Elegir Activity: A case study for developing an activity.""" import gtk import logging - +import gobject +import random +from datetime import datetime from gettext import gettext as _ - from sugar.activity import activity from sugar.graphics.toolbarbox import ToolbarBox from sugar.activity.widgets import ActivityButton @@ -28,28 +30,18 @@ from sugar.activity.widgets import ActivityToolbox from sugar.activity.widgets import TitleEntry from sugar.activity.widgets import StopButton from sugar.activity.widgets import ShareButton - -#import gtk -import gobject -import random from ConfigParser import SafeConfigParser - from subprocess import Popen class ElegirActivity(activity.Activity): - """ElegirActivity class as specified in activity.info""" - def __init__(self, handle): - """Set up the elegir activity.""" + activity.Activity.__init__(self, handle) - # we do not have collaboration features - # make the share option insensitive self.max_participants = 1 - # toolbar with the new toolbar redesign toolbar_box = ToolbarBox() activity_button = ActivityButton(self) @@ -74,85 +66,100 @@ class ElegirActivity(activity.Activity): toolbar_box.toolbar.insert(stop_button, -1) stop_button.show() - self.set_toolbar_box(toolbar_box)# hereda de la clase principal + self.set_toolbar_box(toolbar_box) toolbar_box.show() - vbox = gtk.VBox() + image = gtk.Image() + vbox = gtk.VBox() hbox = gtk.HBox() self.set_canvas(vbox) - - self.puntaje=0 - self.numero=random.randint(1,69)# pregunta seleccionada al azar - self.anterior=self.numero - self.parser = SafeConfigParser() - self.parser.read('config.ini') - self.total=0 - Popen(['espeak', '-v', 'es', self.parser.get('pregunta'+str(self.numero), 'enunciado')]) - - image = gtk.Image() - image.set_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen')) - button_1 = gtk.Button(self.parser.get('pregunta'+str(self.numero), 'correcta')) - button_2 = gtk.Button(self.parser.get('pregunta'+str (self.numero), 'incorrecta2')) - button_3 = gtk.Button(self.parser.get('pregunta'+str (self.numero), 'incorrecta1')) - button_0 = gtk.Button('click para saber tu puntaje') + button_0 = gtk.Button() + button_1 = gtk.Button() + button_2 = gtk.Button() + button_3 = gtk.Button() - button_1.connect('clicked',self.__cambiar_imagen_cb, button_2,button_3,button_0,image) - button_2.connect('clicked',self.__cambiar_imagen_cb, button_3,button_1,button_0,image) - button_3.connect('clicked',self.__cambiar_imagen_cb, button_2,button_1,button_0,image) - button_0.connect('clicked',self.__decir_puntaje_cb) - vbox.add(button_0) vbox.add(image) vbox.add(hbox) hbox.add(button_1) hbox.add(button_2) hbox.add(button_3) - - vbox.show_all() - ''' - image.show() - hbox.show() - button_1.show() - button_2.show() - button_3.show() - button_0.show() - ''' - + try: + self.puntaje=self.metadata["puntaje"] + self.total=self.metadata["total"] + self.numero=self.metadata["numero"] + self.anterior=self.metadata["anterior"] + button_0.set_label(str(self.puntaje) + '/' +str( self.total)) + except KeyError: + self.puntaje=0 + self.numero=random.randint(1,100) + self.anterior=self.numero + self.total=0 + button_0.set_label('click para saber tu puntaje') + self.parser = SafeConfigParser() + self.parser.read('config.ini') + + Popen(['espeak', '-v', 'es', self.parser.get('pregunta'+str(self.numero), 'enunciado')]) + pixbuf = gtk.gdk.pixbuf_new_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen')) + scaled_pixbuf = pixbuf.scale_simple(400,400,gtk.gdk.INTERP_BILINEAR) + image.set_from_pixbuf(scaled_pixbuf) + button_1.set_label(self.parser.get('pregunta'+str(self.numero), 'correcta')) + button_2.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta2')) + button_3.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta1')) + + button_1.connect('clicked',self.__cambiar_imagen_cb, button_2,button_3,button_0,image) + button_2.connect('clicked',self.__cambiar_imagen_cb, button_3,button_1,button_0,image) + button_3.connect('clicked',self.__cambiar_imagen_cb, button_2,button_1,button_0,image) + button_0.connect('clicked',self.__decir_puntaje_cb) + + def __cambiar_imagen_cb(self,b1,b2=None,b3=None,b0=None,i=None): - - if b1.get_label()== self.parser.get('pregunta'+ str(self.anterior), 'correcta'): - text ='Seleccionaste la respuesta correcta, tienes un punto mas ' + if b1.get_label()== self.parser.get('pregunta'+ str(self.anterior), 'correcta'): + text =self.parser.get('pregunta'+ str(self.anterior), 'correcta')+', es correcta, tienes un punto mas ' p=1 else: - text ='La palabra seleccionada, no es la correcta' + text ='La palabra seleccionada es , incorrecta' p=0 - self.puntaje=self.puntaje +p + self.puntaje=int(self.puntaje) +p Popen(['espeak', '-v', 'es', text]) - self.numero=random.randint(1,69)# pregunta seleccionada al azar + self.numero=random.randint(1,100) if self.numero % 2 ==0: - i.set_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen')) + pixbuf = gtk.gdk.pixbuf_new_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen')) + scaled_pixbuf = pixbuf.scale_simple(400,400,gtk.gdk.INTERP_BILINEAR) + i.set_from_pixbuf(scaled_pixbuf) b3.set_label(self.parser.get('pregunta'+str (self.numero), 'correcta')) b1.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta1')) b2.set_label(self.parser.get('pregunta'+str(self.numero), 'incorrecta2')) - print '2:'+str(self.numero) + else: - i.set_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen')) + pixbuf = gtk.gdk.pixbuf_new_from_file(self.parser.get('pregunta'+str(self.numero), 'imagen')) + scaled_pixbuf = pixbuf.scale_simple(400,400,gtk.gdk.INTERP_BILINEAR) + i.set_from_pixbuf(scaled_pixbuf) b3.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta1')) b1.set_label(self.parser.get('pregunta'+str (self.numero), 'incorrecta2')) b2.set_label(self.parser.get('pregunta'+str(self.numero), 'correcta')) - print '1:'+str(self.numero) + self.anterior=self.numero - self.total= self.total+1 + self.total= int(self.total)+1 b0.set_label(str(self.puntaje) + '/' +str( self.total)) - - def __decir_puntaje_cb(self,b): - text= 'tu puntaje es '+ str (self.puntaje) + ' de '+ str(self.total) + text= 'tu puntaje es '+ str (self.puntaje) + ' de, '+ str(self.total) Popen(['espeak', '-v', 'es', text]) - + + def read_file(self, tmp_file): + self.puntaje=self.metadata["puntaje"] + self.total=self.metadata["total"] + self.numero=self.metadata["numero"] + self.anterior=self.metada["anterior"] + + def write_file(self, tmp_file): + self.metadata["numero"]=self.numero + self.metadata["anterior"]=self.anterior + self.metadata["total"]=self.total + self.metadata["puntaje"]=self.puntaje |