Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdolfo Fitoria <adolfo.fitoria@gmail.com>2010-07-15 01:57:05 (GMT)
committer Adolfo Fitoria <adolfo.fitoria@gmail.com>2010-07-15 01:57:05 (GMT)
commitd3ca8951a506d62d741a563874c82630ab9589f5 (patch)
treeb4038c13821b696d7cfcd82a31084dde0515b9a2
commit inicialHEADmaster
-rwxr-xr-xMANIFEST0
-rwxr-xr-xactivity.py49
-rwxr-xr-xactivity.pycbin0 -> 1945 bytes
-rwxr-xr-xactivity/activity.info9
-rwxr-xr-xahorcado.py110
-rwxr-xr-xresources/0.jpgbin0 -> 4499 bytes
-rwxr-xr-xresources/1.jpgbin0 -> 5035 bytes
-rwxr-xr-xresources/2.jpgbin0 -> 5325 bytes
-rwxr-xr-xresources/3.jpgbin0 -> 5552 bytes
-rwxr-xr-xresources/4.jpgbin0 -> 5809 bytes
-rwxr-xr-xresources/5.jpgbin0 -> 6097 bytes
-rwxr-xr-xresources/6.jpgbin0 -> 6363 bytes
-rwxr-xr-xresources/7.jpgbin0 -> 6276 bytes
-rwxr-xr-xresources/8.jpgbin0 -> 6134 bytes
-rwxr-xr-xresources/lista_palabras.es.txt35
-rwxr-xr-xsetup.py4
-rwxr-xr-xutils.py10
-rwxr-xr-xutils.pycbin0 -> 768 bytes
18 files changed, 217 insertions, 0 deletions
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