Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Dictado.py
diff options
context:
space:
mode:
Diffstat (limited to 'Dictado.py')
-rw-r--r--Dictado.py410
1 files changed, 301 insertions, 109 deletions
diff --git a/Dictado.py b/Dictado.py
index fd46fcf..4dbe894 100644
--- a/Dictado.py
+++ b/Dictado.py
@@ -1,6 +1,7 @@
# -*- coding: UTF-8 -*-
+
"""Desarrollo de un Dictado Robotizida o_0"""
-"""en proceso"""
+
#written by:
# Walter. D. Vargas <pynash@gmail.com>
# Yuri González <yurigonzalezni@gmail.com>
@@ -14,8 +15,10 @@ 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)
@@ -28,134 +31,215 @@ class Dictado:
self.words = []
self.nivel = []
self.correctos = []
+
+ subprocess.call("espeak -s 140 -v es-sc --stdout 'Bienvenido a la actividad Dictado' | aplay", shell=True)
#left container
self.contenedor_izq = gtk.VBox()
- self.label_theme = gtk.Label("Dictado de Palabras")
+ self.label_theme = gtk.Label("Selecciona Bandera o Escudo de Nicaragua")
self.contenedor_izq.pack_start(self.label_theme, False, False, 10)
self.label_theme.show()
+ self.hbox_image_check = gtk.HBox()
+
self.imagen_principal = gtk.Image()
- self.imagen_principal.set_from_file("resources/level_1/1.png")
- self.contenedor_izq.pack_start(self.imagen_principal, False, False, 20)
+ self.imagen_principal.set_from_file("resources/bandera.png")
+ self.hbox_image_check.pack_start(self.imagen_principal, True, True, 20)
self.imagen_principal.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.opciones = gtk.HBox()
- self.opciones.pack_start(self.comenzar_dictado, False, False, 50)
- self.opciones.pack_start(self.cancelar, False, False, 50)
- self.comenzar_dictado.show()
- self.cancelar.show()
-
- self.contenedor_izq.pack_start(self.opciones, False, False, 50)
- self.opciones.show()
-
- self.hbox_repeat = gtk.HBox()
-
- self.repetir = gtk.Button(" Repetir Palabra ")
- self.repetir.set_sensitive(0)
- self.repetir.connect("clicked", self._repeat_cb)
- self.hbox_repeat.pack_start(self.repetir, False, False, 100)
- self.repetir.show()
+ self.vbox_check = gtk.VBox()
+
+ self.radio_buttons = gtk.RadioButton(None, "Bandera")
+ self.radio_buttons.set_active(False)
+ self.radio_buttons.connect("toggled", self._callback_rb_cb, "Bandera")
+ self.vbox_check.pack_start(self.radio_buttons, True, True, 0)
+ self.radio_buttons.show()
+
+ self.radio_buttons = gtk.RadioButton(self.radio_buttons, "Escudo")
+ self.radio_buttons.connect("toggled", self._callback_rb_cb, "Escudo")
+ self.radio_buttons.set_active(False)
+ self.vbox_check.pack_start(self.radio_buttons, True, True, 0)
+ self.radio_buttons.show()
+
+ #self.hbox_image_check.pack_start(self.imagen_principal, False, False, 0)
+ self.hbox_image_check.pack_start(self.vbox_check, False, False, 0)
+ self.vbox_check.show()
+ self.imagen_principal.show()
- self.contenedor_izq.pack_start(self.hbox_repeat, False, False, 50)
- self.hbox_repeat.show()
+ self.contenedor_izq.pack_start(self.hbox_image_check, False, False, 20)
+ self.hbox_image_check.show()
self.hbox_1 = gtk.HBox()
- self.hbox_1.pack_start(self.contenedor_izq, False, False, 0)
+ self.hbox_1.pack_start(self.contenedor_izq, False, False, 30)
self.contenedor_izq.show()
- #self.imagen_principal = gtk.Image()
-
#end left container
#begining container right
self.contenedor_der = gtk.VBox()
- self.label_info = gtk.Label("Inicio de Juego")
+ self.label_info = gtk.Label("Inicio de Juego\n")
self.label_info.set_sensitive(1)
self.contenedor_der.pack_start(self.label_info, False, False, 10)
self.label_info.show()
- self.label_correct = gtk.Label("Palabras Acertadas")
- self.contenedor_der.pack_start(self.label_correct, False, False, 10)
- self.label_correct.show()
-
- self.list_correct = gtk.TextView()
- self.list_correct.set_editable(False)
- self.list_correct.set_cursor_visible(False)
-
- self.buffer = self.list_correct.get_buffer()
- self.buffer.set_text("")
+ self.comenzar_dictado = gtk.Button("Comenzar Dictado")
+ self.comenzar_dictado.show()#set_sensitive(1)
+ self.comenzar_dictado.set_size_request(210, 35)
+ self.comenzar_dictado.connect("clicked", self._dictar_cb)
- self.contenedor_der.pack_start(self.list_correct, False, False, 10)
- self.list_correct.show()
+ self.contenedor_der.pack_start(self.comenzar_dictado, False, False, 10)
+ self.comenzar_dictado.show()
- self.salir = gtk.Button(" Salir ")
- self.salir.connect("clicked", self._salir_cb)
+ self.cancelar = gtk.Button("Cancelar")
+ self.cancelar.hide()
+ self.cancelar.set_size_request(210, 35)
+ self.cancelar.connect("clicked", self._cancela_cb, 0)
- self.contenedor_der.pack_start(self.salir, False, False, 40)
- self.salir.show()
+ self.contenedor_der.pack_start(self.cancelar, False, False, 0)
+ self.cancelar.hide()
- self.jugar_again = gtk.Button(" Volver a Jugar ")
+ self.jugar_again = gtk.Button("Volver a Jugar")
self.jugar_again.connect("clicked", self._again_cb)
- self.jugar_again.set_sensitive(0)
- self.contenedor_der.pack_start(self.jugar_again, False, False, 30)
- self.jugar_again.show()
+ self.jugar_again.hide()
+ self.jugar_again.set_size_request(210, 35)
+ self.contenedor_der.pack_start(self.jugar_again, False, False, 5)
+
+ self.jugar_intento = gtk.Button("Intentar de Nuevo")
+ self.jugar_intento.connect("clicked", self._again_cb)
+ self.jugar_intento.hide()
+ self.jugar_intento.set_size_request(210, 35)
+ self.contenedor_der.pack_start(self.jugar_intento, False, False, 5)
#container with container right and left
- self.hbox_1.pack_start(self.contenedor_der, False, False, 0)
+ self.hbox_1.pack_start(self.contenedor_der, False, False, 100)
self.contenedor_der.show()
#Aqui va entry y aceptar
self.hbox_2 = gtk.HBox()
+ self.align_repetir = gtk.Alignment(0.5, 0.5, 0, 0)
+ self.align_repetir.add(self.hbox_2)
+ self.align_repetir.show()
+
self.texto = gtk.Entry(200)
+ self.texto.set_size_request(210, 35)
self.texto.set_sensitive(0)
- self.hbox_2.pack_start(self.texto, False, False, 70)
+ self.hbox_2.pack_start(self.texto, False, False, 20)
self.texto.show()
self.word = self.texto
- self.aceptar = gtk.Button(" Aceptar ")
+ self.aceptar = gtk.Button("Aceptar")
self.aceptar.set_sensitive(0)
+ self.aceptar.set_size_request(210, 35)
self.aceptar.connect("clicked", self._aceptar_cb)
- self.hbox_2.pack_start(self.aceptar, False, False, 70)
+ self.hbox_2.pack_start(self.aceptar, False, False, 20)
self.aceptar.show()
+ #vbox3
+
+ self.vbox3 = gtk.VBox()
+
+ self.label_correct = gtk.Label("Palabras Acertadas")
+ self.vbox3.pack_start(self.label_correct, False, False, 10)
+ self.label_correct.show()
+
+ self.list_correct = gtk.TextView()
+ self.list_correct.set_editable(False)
+ self.list_correct.set_cursor_visible(False)
+
+ self.buffer = self.list_correct.get_buffer()
+ self.buffer.set_text("")
+
+ self.scrolled = gtk.ScrolledWindow()
+ self.scrolled.set_policy(True, False)
+
+ self.scrolled.set_size_request(30, 200)
+
+ self.vbox3.pack_start(self.scrolled, False, False, 10)
+ self.scrolled.show()
+
+ self.scrolled.add_with_viewport(self.list_correct)
+ self.list_correct.show()
+
+ self.salir = gtk.Button("Salir")
+ self.salir.set_size_request(210, 35)
+ self.salir.connect("clicked", self._salir_cb)
+
+ self.vbox3.pack_start(self.salir, False, False, 5)
+ self.salir.show()
+
+ self.hbox_1.pack_start(self.vbox3, False, False, 100)
+ self.vbox3.show()
self.vbox_principal = gtk.VBox()
- self.vbox_principal.pack_start(self.hbox_1, False, False, 0)
- self.vbox_principal.pack_start(self.hbox_2, False, False, 0)
+
+ self.label_head = gtk.Label("Actividad Dictado de Palabras")
+ self.vbox_principal.pack_start(self.label_head, True, True, 40)
+ self.label_head.show()
+
+ self.vbox_principal.pack_start(self.hbox_1, True, True, 40)
+ self.vbox_principal.pack_start(self.align_repetir, True, True, 40)
+
+ self.repetir = gtk.Button("Repetir Palabra")
+ self.repetir.set_sensitive(0)
+ self.repetir.set_size_request(210, 35)
+ self.repetir.connect("clicked", self._repeat_cb)
+ self.repetir.show()
+ self.hbox_ultimo = gtk.HBox()
+ align_ul = gtk.Alignment(0.5, 0.5, 0, 0)
+ align_ul.add(self.hbox_ultimo)
+ self.hbox_ultimo.show()
+ self.hbox_ultimo.pack_start(self.repetir, False, False, 0)
+ self.repetir.show()
+ align_ul.show()
+
+ self.vbox_principal.pack_start(align_ul, True, True, 20)
+
self.hbox_2.show()
self.hbox_1.show()
-
- self.window.add(self.vbox_principal)
+
+ self.align = gtk.Alignment(0.5, 0.5, 0, 0)
+ vboxPRUEBA = gtk.VBox()
+
+ vboxPRUEBA.pack_start(self.align, False, False, 0)
+ self.align.show()
+
+ self.align.add(self.vbox_principal)
self.vbox_principal.show()
+
+ self.window.add(vboxPRUEBA)
+ vboxPRUEBA.show()
self.window.show()
self.num_clic = 0
self.aciertos = 0
- def _cambiar_imagen(self, level, img):
- ruta = "resources/level_%s/%s.png" % (level, img)
- self.imagen_principal.set_from_file(ruta)
+ def _callback_rb_cb(self, widget, data=None):
+ # se debera agregar posteriormente funcion de tomar foto y agregarlas, de 1ro a 6to.
+ #como primera configuración despues solo quedara jugando al dictado
+
+ if widget.get_active():
+ if data == "Bandera":
+ self.imagen_principal.set_from_file("resources/bandera.png")
+ else:
+ self.imagen_principal.set_from_file("resources/escudo.png")
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")
+ if widget.get_label()=="Volver a Jugar":
+ self._activa_desactiva_cb(1)
+ self._act_desact_operacion_cb(0)
+ widget.hide()
+ self.label_info.set_label("Inicio del Juego")
+ else:
+ self._activa_desactiva_cb(1)
+ self._act_desact_operacion_cb(0)
+ widget.hide()
+ self.label_info.set_label("Intentando de Nuevo")
def _repeat_cb(self, widget):
subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.word, shell=True)
@@ -168,7 +252,7 @@ class Dictado:
def _pc(self, widget):
if self.num_clic < (len(self.words)):
self.word = self.words[self.num_clic] #Asigno el valor a una variable, e introduzco ésta a los métodos
- subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.word, shell=True)
+ subprocess.call("espeak -s 150 -v es-sc --stdout ',siguiente palabra , %s' | aplay" % self.word, shell=True)
else:
if self.aciertos == len(self.words):
if self.nivel != 3:
@@ -176,91 +260,200 @@ class Dictado:
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.comenzar_dictado.show()
+ self.cancelar.hide()
self._act_desact_operacion_cb(0)
- subprocess.call("espeak -s 130 -v es-sc --stdout 'Has Avanzado al siguiente Nivel' | aplay", shell=True)
- self.label_info.set_text("¡avanzaste al Siguiente Nivel!")
- for i in len(self.correctos):
- self.buffer.insert(i, self.correctos[i-1])
- del self.correctos[:]
+ subprocess.call("espeak -s 130 -v es-sc --stdout 'Excelente, Has avanzado al Siguiente Nivel' | aplay", shell=True)
+ self.label_info.set_text("Siguiente Nivel!\n")
else:
- for i in self.correctos:
- self.buffer.set_text(i)
- #subprocess.call("espeak -s 130 -v es-sc --stdout 'Enhorabuena, Felicidades has concluido el dictado muy bien' | aplay" % self.words[(self.num_clic)-1], shell=True)
- subprocess.call("espeak -s 130 -v es-sc --stdout 'Enhorabuena, Felicidades has concluido el dictado muy bien' | aplay", shell=True)
- self.label_info.set_label("¡Has Concluido Exitosamente!")
+ subprocess.call("espeak -s 130 -v es-sc --stdout 'En horabuena, Felicidades has concluido el dictado muy bien' | aplay", shell=True)
+ self.label_info.set_label("¡Dictado exitoso!\n")
self._write_cb("nivel.txt", str(1))
self.aciertos = 0
self.num_clic = 0
- self.cancelar.set_sensitive(0)
+ self.cancelar.hide()
self._act_desact_operacion_cb(0)
- self.jugar_again.set_sensitive(1)
+ self.jugar_again.show()
del self.correctos[:]
else:
- for i in self.correctos:
- self.buffer.set_text(i)
- subprocess.call("espeak -s 130 -v es-sc --stdout 'no avanzaste al siguiente nivel' | aplay", shell=True)
- self.label_info.set_text("¡Has Fallado!")
+ subprocess.call("espeak -s 130 -v es-sc --stdout 'Intento fallido' | aplay", shell=True)
+ self.label_info.set_text("¡Has Fallado!\n")
self.num_clic = 0
self.aciertos = 0
self._act_desact_operacion_cb(0)
- self.cancelar.set_sensitive(0)
- self.comenzar_dictado.set_sensitive(1)
+ self.cancelar.hide()
+ self.comenzar_dictado.hide()
+ self.jugar_intento.show()
del self.correctos[:]
def _aceptar_cb(self, widget, data=None):
if self.texto.get_text() != "":
self.num_clic += 1
if self.texto.get_text() == self.words[(self.num_clic) - 1]:
- subprocess.call("espeak -s 130 -v es-sc --stdout 'correcto, has escrito bien la palabra %s' | aplay" % self.words[(self.num_clic) - 1], shell=True)
+ subprocess.call("espeak -s 140 -v es-sc --stdout 'correcto, has escrito bien la palabra %s' | aplay" % self.words[(self.num_clic) - 1], shell=True)
self._autocall_cb(100, self.aceptar)#3 es tiempo
self.texto.set_text("")
self.aciertos += 1
- self.correctos.append(self.words[(self.num_clic - 1)])
+ end_buff = self.buffer.get_end_iter()
+ self.buffer.insert(end_buff, self.words[(self.num_clic)-1]+"\n")
else:
- #self.num_clic -= 1
subprocess.call("espeak -s 130 -v es-sc --stdout 'error, escribiste mal la palabra' | aplay", shell=True)
self._autocall_cb(100, self.aceptar)
self.texto.set_text("")
def _dictar_cb(self, widget, data=None):
- self.cancelar.set_sensitive(1)
- self.comenzar_dictado.set_sensitive(False)
+ self.buffer.set_text("")
+ self.cancelar.show()
+ self.comenzar_dictado.hide()
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.label_info.set_label("Nivel 1 \n")
self.words = self._open_file("1a.txt")
- self._cambiar_imagen(1, 1)
-
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.label_info.set_label("Nivel 2 \n")
self.words = self._open_file("1b.txt")
- self._cambiar_imagen(2, 2)
-
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")
+ elif self.nivel == 3:
+ self.label_info.set_label("Nivel 3 \n")
self.words = self._open_file("1c.txt")
- self._cambiar_imagen(3, 3)
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 4:
+ self.label_info.set_label("Nivel 4 \n")
+ self.words = self._open_file("1d.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 5:
+ self.label_info.set_label("Nivel 5 \n")
+ self.words = self._open_file("1e.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 6:
+ self.label_info.set_label("Nivel 6 \n")
+ self.words = self._open_file("1f.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 7:
+ self.label_info.set_label("Nivel 7 \n")
+ self.words = self._open_file("1g.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 8:
+ self.label_info.set_label("Nivel 8 \n")
+ self.words = self._open_file("1h.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 9:
+ self.label_info.set_label("Nivel 9 \n")
+ self.words = self._open_file("1i.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 10:
+ self.label_info.set_label("Nivel 10 \n")
+ self.words = self._open_file("1j.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 11:
+ self.label_info.set_label("Nivel 11 \n")
+ self.words = self._open_file("1k.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 12:
+ self.label_info.set_label("Nivel 12 \n")
+ self.words = self._open_file("1l.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 13:
+ self.label_info.set_label("Nivel 13 \n")
+ self.words = self._open_file("1m.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 14:
+ self.label_info.set_label("Nivel 14 \n")
+ self.words = self._open_file("1n.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 15:
+ self.label_info.set_label("Nivel 15 \n")
+ self.words = self._open_file("1o.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 16:
+ self.label_info.set_label("Nivel 16 \n")
+ self.words = self._open_file("1p.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 17:
+ self.label_info.set_label("Nivel 17 \n")
+ self.words = self._open_file("1q.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 18:
+ self.label_info.set_label("Nivel 18 \n")
+ self.words = self._open_file("1r.txt")
+
+ self.word = self.words[0]
+
+ subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[0], shell=True)
+ elif self.nivel == 19:
+ self.label_info.set_label("Nivel 19 \n")
+ self.words = self._open_file("1s.txt")
+
+ 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 20 \n")
+ self.words = self._open_file("1t.txt")
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)
+ if i==0:
+ self.comenzar_dictado.hide()#set_sensitive(i)
+ else:
+ self.comenzar_dictado.show()
def _act_desact_operacion_cb(self, i):
self.texto.set_sensitive(i)
@@ -268,12 +461,11 @@ class Dictado:
self.repetir.set_sensitive(i)
def _cancela_cb(self, widget, i ):
- self.label_info.set_text("Inicio del Juego")
+ self.label_info.set_text("Inicio del Juego \n")
self._activa_desactiva_cb(1)
self._act_desact_operacion_cb(0)
- self.cancelar.set_sensitive(0)
+ self.cancelar.hide()
self.num_clic = 0
- #self.palabra.set_text("")
def _open_nivel(self, file):
line = []