From d3ca8951a506d62d741a563874c82630ab9589f5 Mon Sep 17 00:00:00 2001 From: Adolfo Fitoria Date: Thu, 15 Jul 2010 01:57:05 +0000 Subject: commit inicial --- diff --git a/MANIFEST b/MANIFEST new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/MANIFEST diff --git a/activity.py b/activity.py new file mode 100755 index 0000000..ec08454 --- /dev/null +++ b/activity.py @@ -0,0 +1,49 @@ +from sugar.activity import activity +import gtk +from gettext import gettext as _ +import logging + +_logger = logging.getLogger('ahorcado-activity') + +class Ahorcado(activity.Activity): + + def __init__(self, handle): + super(Ahorcado, self).__init__(handle) + + self.set_title(_(Ahorcado)) + + barra = activity.ActivityToolbox(self) + self.set_toolbox(barra) + barra.show() + + self.contenedor = gtk.VBox() + self.set_canvas(contenedor) + self.connect('key-press-event', self._key_press_cb) + + #interface + self.palabra_entry = gtk.Entry() + self.puntaje_entry = gtk.Entry() + self.ok_btn = gtk.Button(_('Ok')) + self.ok_btn.connect('clicked', self._ok_btn_clicked_cb, None) + self.imagen = gtk.Image() + self.label = gtk.Label() + + def _ok_btn_clicked_cb(self, widget, data=None): + pass + + def _cambiar_imagen(self, level): + ruta = 'resources/%s.jpg' % level + self.imagen.set_from_file(ruta) + + def _key_press_cb(self, widget, event): + #keyname = gtk.gdk.keyval_name(event.keyval) + #if keyname == 'Enter': + pass + + def read_file(self, filepath): + pass + + def write_file(self, filepath): + pass + + diff --git a/activity.pyc b/activity.pyc new file mode 100755 index 0000000..f9414b9 --- /dev/null +++ b/activity.pyc Binary files differ diff --git a/activity/activity.info b/activity/activity.info new file mode 100755 index 0000000..ef240af --- /dev/null +++ b/activity/activity.info @@ -0,0 +1,9 @@ +[Activity] +name = Ahorcado +service_name = org.laptop.ahorcado +class = activity.Ahorcado +icon = activity-ahorcado +activity_version = 1 +show_launcher = yes +mime_types = application/ahorcado +licence = GPL diff --git a/ahorcado.py b/ahorcado.py new file mode 100755 index 0000000..b76b32a --- /dev/null +++ b/ahorcado.py @@ -0,0 +1,110 @@ +from sugar.activity import activity +import gtk +from gettext import gettext as _ +import logging + +import utils + +_logger = logging.getLogger('ahorcado-activity') + +class Ahorcado: + + def __init__(self): + self.palabra = utils.palabra_aleatoria() + self.puntaje = 0 + self.errores = 0 + self.letras = [] + + #ventana + self.ventana = gtk.Window() + self.ventana.set_title(_('Ahorcado')) + self.ventana.connect('key-press-event', self._key_press_cb) + self.ventana.connect('destroy', self._destroy_cb) + + #contenedores + self.contenedor = gtk.VBox() + self.ventana.add(self.contenedor) + + self.contenedor_superior = gtk.HBox() + self.contenedor_inferior= gtk.HBox() + + self.contenedor.pack_start(self.contenedor_superior) + self.contenedor.pack_start(self.contenedor_inferior, expand=False) + + #interface + self.palabra_entry = gtk.Entry() + self.palabra_label = gtk.Label() + self.puntaje_label = gtk.Label('Puntaje: 0') + self.ok_btn = gtk.Button(_('Ok')) + self.ok_btn.connect('clicked', self._ok_btn_clicked_cb, None) + self.label = gtk.Label() + self.imagen = gtk.Image() + + self._cambiar_imagen(0) + self._actualizar_palabra() + + #agregando elementos + self.contenedor_superior.pack_start(self.imagen) + self.contenedor_superior.pack_start(self.puntaje_label) + self.contenedor_superior.pack_start(self.palabra_label) + + self.contenedor_inferior.pack_start(self.palabra_entry) + self.contenedor_inferior.pack_start(self.ok_btn, False) + + self.contenedor.show_all() + self.ventana.show() + print self.palabra + + def _ok_btn_clicked_cb(self, widget, data=None): + self._actualizar_palabra() + + def _cambiar_imagen(self, level): + ruta = 'resources/%s.jpg' % level + self.imagen.set_from_file(ruta) + + def _key_press_cb(self, widget, event): + keyname = gtk.gdk.keyval_name(event.keyval) + if keyname == 'Return': + self._actualizar_palabra() + return False + + def read_file(self, filepath): + pass + + def write_file(self, filepath): + pass + + def main(self): + gtk.main() + + def _destroy_cb(self, widget, data=None): + gtk.main_quit() + + def _actualizar_palabra(self): + letra_actual = self.palabra_entry.get_text() + #TODO: Validar que solo introduzca una letra + if letra_actual != '' and letra_actual in self.palabra: + self.puntaje += 1 + self.puntaje_label.set_text(_('Puntaje: %s' % self.puntaje)) + self.palabra = utils.palabra_aleatoria() + self.letras.append(letra_actual) + elif letra_actual != '': + self.letras.append(letra_actual) + self.errores += 1 + self._cambiar_imagen(self.errores) + else: + pass #TODO validar letra vacia + + pista = '' + for letra in self.palabra: + if letra in self.letras: + pista += '%s ' % letra + else: + pista += '_ ' + + self.palabra_label.set_text(pista) + self.palabra_entry.set_text('') + +if __name__ == "__main__": + foo = Ahorcado() + foo.main() diff --git a/resources/0.jpg b/resources/0.jpg new file mode 100755 index 0000000..5b6063d --- /dev/null +++ b/resources/0.jpg Binary files differ diff --git a/resources/1.jpg b/resources/1.jpg new file mode 100755 index 0000000..d384387 --- /dev/null +++ b/resources/1.jpg Binary files differ diff --git a/resources/2.jpg b/resources/2.jpg new file mode 100755 index 0000000..13d486e --- /dev/null +++ b/resources/2.jpg Binary files differ diff --git a/resources/3.jpg b/resources/3.jpg new file mode 100755 index 0000000..033e234 --- /dev/null +++ b/resources/3.jpg Binary files differ diff --git a/resources/4.jpg b/resources/4.jpg new file mode 100755 index 0000000..0e54d19 --- /dev/null +++ b/resources/4.jpg Binary files differ diff --git a/resources/5.jpg b/resources/5.jpg new file mode 100755 index 0000000..27b7e71 --- /dev/null +++ b/resources/5.jpg Binary files differ diff --git a/resources/6.jpg b/resources/6.jpg new file mode 100755 index 0000000..1ccfeb6 --- /dev/null +++ b/resources/6.jpg Binary files differ diff --git a/resources/7.jpg b/resources/7.jpg new file mode 100755 index 0000000..b6be70f --- /dev/null +++ b/resources/7.jpg Binary files differ diff --git a/resources/8.jpg b/resources/8.jpg new file mode 100755 index 0000000..a063dc1 --- /dev/null +++ b/resources/8.jpg Binary files differ diff --git a/resources/lista_palabras.es.txt b/resources/lista_palabras.es.txt new file mode 100755 index 0000000..a809343 --- /dev/null +++ b/resources/lista_palabras.es.txt @@ -0,0 +1,35 @@ +RATON +PERRO +GATO +PAJARO +PALOMA +LAMPAZO +CASA +PISO +TECHO +COMPUTADORA +LINUX +PYTHON +GUEGUE +SELECCION +FUTBOL +GOL +ALEMANIA +ARGENTINA +INGLATERRA +MEXICO +CALEIDOSCOPIO +TRIPODE +CAMARA +SOCIEDAD +RECIBIDO +COMPUTADORA +PORTATIL +SISTEMA +OPERACION +AVION +SOMBRERO +MOCHILA +BOLSO +VENTANA +PUERTA diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..bf2a62c --- /dev/null +++ b/setup.py @@ -0,0 +1,4 @@ +from sugar.activity import bundlebuilder + +if __name__=="__main__": + bundlebuilder.start() diff --git a/utils.py b/utils.py new file mode 100755 index 0000000..e9a3ff1 --- /dev/null +++ b/utils.py @@ -0,0 +1,10 @@ +import random +from gettext import gettext as _ + +def palabra_aleatoria(): + """retorna una palabra obtenida del archivo lista_palabras.txt""" + archivo = open(_('resources/lista_palabras.es.txt'),'r') + palabras = [palabra.strip().lower() for palabra in archivo.readlines() if palabra.strip().isalpha() and len(palabra) > 4] + archivo.close() + + return palabras[random.randint(0, len(palabras)-1)] diff --git a/utils.pyc b/utils.pyc new file mode 100755 index 0000000..c370207 --- /dev/null +++ b/utils.pyc Binary files differ -- cgit v0.9.1