Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter D. Vargas <pynash@gmail.com>2010-08-25 23:16:39 (GMT)
committer Walter D. Vargas <pynash@gmail.com>2010-08-25 23:16:39 (GMT)
commit229fe8acd45ecc8bc576d1e4fcad272b888cc8fb (patch)
tree73a60023e7427d3a96950ee69c3e4a1e912a5e62
parent462663a43678ef25effd2b9f57b82699f54f9309 (diff)
parent11bfdd1fbc46b0d71260566589b975e2f2d4cbae (diff)
Merge git.sugarlabs.org:dictado/mainline
-rw-r--r--Dictado_1.py276
-rw-r--r--nivel.txt2
-rw-r--r--resources/.level_1/1.gifbin0 -> 14755 bytes
3 files changed, 277 insertions, 1 deletions
diff --git a/Dictado_1.py b/Dictado_1.py
new file mode 100644
index 0000000..a810009
--- /dev/null
+++ b/Dictado_1.py
@@ -0,0 +1,276 @@
+"""Desarrollo de un Dictado Robotizida o_0"""
+"""en proceso"""
+#written by Walter. D. Vargas <pynash@gmail.com>
+
+# -*- coding: utf-8 -*-
+
+import pygtk
+import gtk
+
+import subprocess
+import glib
+import logging
+
+_logger = logging.getLogger()
+_logger.setLevel(logging.DEBUG)
+
+class Dictado:
+ def __init__(self):
+ #main window
+ self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
+ self.window.connect("delete_event", self._delete_event_cb)
+ self.window.set_title("Dictado")
+ self.window.set_border_width(10)
+
+ self.word = ""
+
+ #levels
+ self.words = []
+ self.nivel = []
+
+ #left container
+ self.contenedor_izq = gtk.VBox()
+
+ self.label_info = gtk.Label("Inicio de Juego")
+ self.label_info.set_sensitive(1)
+ self.contenedor_izq.pack_start(self.label_info, False, False, 0)
+ self.label_info.show()
+
+ self.comenzar_dictado = gtk.Button(" Comenzar Dictado ")
+ self.comenzar_dictado.set_sensitive(1)
+ self.comenzar_dictado.connect("clicked", self._dictar_cb)
+
+ self.cancelar = gtk.Button(" Cancelar ")
+ self.cancelar.set_sensitive(0)
+ self.cancelar.connect("clicked", self._cancela_cb, 0)
+
+ self.salir = gtk.Button(" Salir ")
+ self.salir.connect("clicked", self._salir_cb)
+
+ self.opciones = gtk.HBox()
+ self.opciones.pack_start(self.comenzar_dictado, False, False, 40)
+ self.opciones.pack_start(self.cancelar, False, False, 40)
+ self.opciones.pack_start(self.salir, False, False, 40)
+ self.comenzar_dictado.show()
+ self.cancelar.show()
+ self.salir.show()
+
+ self.contenedor_izq.pack_start(self.opciones, False, False, 10)
+ self.opciones.show()
+
+ self.palabra = gtk.Label()
+ self.hbox_repeat = gtk.HBox()
+ self.hbox_repeat.pack_start(self.palabra, False, False, 80)
+ self.palabra.show()
+
+ self.repetir = gtk.Button("Repetir Palabra")
+ self.repetir.set_sensitive(0)
+ self.hbox_repeat.pack_start(self.repetir, False, False, 0)
+ self.repetir.show()
+ self.repetir.connect("clicked", self._repeat_cb)
+
+ self.jugar_again = gtk.Button("Volver a Jugar")
+ self.jugar_again.connect("clicked", self._again_cb)
+ self.jugar_again.set_sensitive(0)
+ self.hbox_repeat.pack_start(self.jugar_again, False, False, 0)
+ self.jugar_again.show()
+
+ self.contenedor_izq.pack_start(self.hbox_repeat, False, False, 0)
+ self.hbox_repeat.show()
+
+ self.imagen = gtk.Image()
+
+ #Aqui va entry y aceptar
+ self.hbox = gtk.HBox()
+
+ self.texto = gtk.Entry(100)
+ self.texto.set_sensitive(0)
+ self.hbox.pack_start(self.texto, False, False, 0)
+
+ self.hbox.pack_start(self.imagen, False, False, 0)
+ self.imagen.show()
+
+ self.texto.show()
+
+ self.word = self.texto
+
+ self.aceptar = gtk.Button(" Aceptar ")
+ self.aceptar.set_sensitive(0)
+ self.aceptar.connect("clicked", self._aceptar_cb)
+ self.hbox.pack_start(self.aceptar, False, False, 10)
+ self.aceptar.show()
+
+ self.contenedor_izq.pack_start(self.hbox, False, False, 0)
+ self.hbox.show()
+ #end left container
+
+ #container with container right and left
+ self.hbox = gtk.HBox()
+ self.hbox.pack_start(self.contenedor_izq, False, False, 0)
+ #self.hbox.pack_start(self.contenedor_der, False, False, 0)
+ self.contenedor_izq.show()
+ #self.contenedor_der.show()
+
+ self.window.add(self.hbox)
+ self.hbox.show()
+ self.window.show()
+
+ self.num_clic = 0
+ self.aciertos = 0
+
+ def _cambiar_imagen(self, level, img):
+ ruta = "resources/%s/%s.png" % level %img
+ self.imagen.set_from_file(ruta)
+
+ def _again_cb(self, widget):
+ self._activa_desactiva_cb(1)
+ self._act_desact_operacion_cb(0)
+ widget.set_sensitive(0)
+ self.label_info.set_label("Inicio del Juego")
+
+ def _repeat_cb(self, widget):
+ #self.word = self.words[self.num_clic]
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.word, shell=True)
+
+ #autoFunction
+ def _autocall_cb(self, time, widget):
+ glib.timeout_add(time, self._pc, widget)
+
+ #machine's action
+ def _pc(self, widget):
+ #if self.palabra.get_text() in self.words:
+
+ if self.num_clic < (len(self.words)):
+ self.word = self.words[self.num_clic] #Asigno el valor a una variable, e introduzco esta a los metodos
+ #self.palabra.set_text(self.words[self.num_clic])
+ self.palabra.set_text(self.word)
+ #subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[self.num_clic], shell=True)
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.word, shell=True)
+ #if (self.num_clic != (len(self.words))):
+ # pass
+ else:
+ if self.aciertos == len(self.words):
+ if self.nivel != 3:
+ self.nivel += 1
+ self._write_cb("nivel.txt", str(self.nivel))
+ self.aciertos = 0
+ self.num_clic = 0
+ self.comenzar_dictado.set_sensitive(1)
+ self.cancelar.set_sensitive(0)
+ self._act_desact_operacion_cb(0)
+ self.label_info.set_text("Has Avanzado al Siguiente Nivel!")
+ self.palabra.set_text("")
+ else:
+ self.label_info.set_label("Has Concluido Exitosamente!")
+ self._write_cb("nivel.txt", str(1))
+ self.aciertos = 0
+ self.num_clic = 0
+ self.cancelar.set_sensitive(0)
+ self._act_desact_operacion_cb(0)
+ self.jugar_again.set_sensitive(1)
+ self.palabra.set_text("")
+ else:
+ self.palabra.set_text("")
+ self.label_info.set_text("Has Fallado!")
+ self.num_clic = 0
+ self.aciertos = 0
+ self._act_desact_operacion_cb(0)
+ self.cancelar.set_sensitive(0)
+ self.comenzar_dictado.set_sensitive(1)
+
+ def _aceptar_cb(self, widget, data=None):
+ r, w = "correcto", "error"
+ if self.texto.get_text() != "":
+ self.num_clic += 1
+ if self.texto.get_text() == self.words[(self.num_clic) - 1]:
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % r, shell=True)
+ self._autocall_cb(100, self.palabra)#3 es tiempo
+ self.texto.set_text("")
+ self.aciertos += 1
+ else:
+ self.num_clic -= 1
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % w, shell=True)
+ #subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.word, shell=True)
+ self.texto.set_text("")
+
+ def _dictar_cb(self, widget, data=None):
+ self.cancelar.set_sensitive(1)
+ self.comenzar_dictado.set_sensitive(False)
+ self._act_desact_operacion_cb(1)
+ self.nivel = self._open_nivel("nivel.txt")
+ self.nivel = int(self.nivel[0])
+ if self.nivel == 1:
+ self.label_info.set_label("Nivel 1")
+ self.words = self._open_file("1a.txt")
+ self.palabra.set_text(self.words[0])
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 2:
+ self.label_info.set_label("Nivel 2")
+ self.words = self._open_file("1b.txt")
+ self.palabra.set_text(self.words[0])
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ else:
+ self.label_info.set_label("Nivel 3")
+ self.words = self._open_file("1c.txt")
+ self.palabra.set_text(self.words[0])
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+
+ def _activa_desactiva_cb(self, i):
+ self.comenzar_dictado.set_sensitive(i)
+ #self.cancelar.set_sensitive(i)
+
+ def _act_desact_operacion_cb(self, i):
+ self.texto.set_sensitive(i)
+ self.aceptar.set_sensitive(i)
+ self.repetir.set_sensitive(i)
+
+ def _cancela_cb(self, widget, i ):
+ self.label_info.set_text("Inicio del juego")
+ self._activa_desactiva_cb(1)
+ self._act_desact_operacion_cb(0)
+ self.cancelar.set_sensitive(0)
+ self.num_clic = 0
+ self.palabra.set_text("")
+
+ def _open_nivel(self, file):
+ line = []
+ with open(file, "r") as file:
+ line.append((file.readline()).strip())
+ return line
+
+ def _open_file(self, file):
+ list = []
+ with open(file, "r") as file:
+ list1 = file.readlines()
+ for i in list1:
+ list.append(i.strip())
+ return list
+
+ def _write_cb(self, file, x):
+ with open(file, "w") as file:
+ file.write(x)
+
+ def _delete_event_cb(self, widget, event, data=None):
+ gtk.main_quit()
+ return False
+
+ def _salir_cb(self, widget, data=None):
+ gtk.main_quit()
+ return False
+
+ def main(self):
+ gtk.main()
+ return 0
+
+if __name__=="__main__":
+ d = Dictado()
+ d.main()
diff --git a/nivel.txt b/nivel.txt
index 56a6051..d8263ee 100644
--- a/nivel.txt
+++ b/nivel.txt
@@ -1 +1 @@
-1 \ No newline at end of file
+2 \ No newline at end of file
diff --git a/resources/.level_1/1.gif b/resources/.level_1/1.gif
new file mode 100644
index 0000000..7ee76ca
--- /dev/null
+++ b/resources/.level_1/1.gif
Binary files differ