diff options
author | Walter D. Vargas <pynash@gmail.com> | 2010-08-24 01:54:33 (GMT) |
---|---|---|
committer | Walter D. Vargas <pynash@gmail.com> | 2010-08-24 01:54:33 (GMT) |
commit | 2c899f61103f988c113341cb20ddd7aa86163b4e (patch) | |
tree | 87fa7fa96f280f605174d6b94e20fca31cffc552 |
Practicando subida del Dictado con GIT
-rw-r--r-- | 1a.txt | 4 | ||||
-rw-r--r-- | 1b.txt | 4 | ||||
-rw-r--r-- | 1c.txt | 3 | ||||
-rw-r--r-- | Dictado.py | 247 | ||||
-rw-r--r-- | nivel.txt | 1 |
5 files changed, 259 insertions, 0 deletions
@@ -0,0 +1,4 @@ +mamá +papá +memo +gato @@ -0,0 +1,4 @@ +perro +raton +rata +ratonera @@ -0,0 +1,3 @@ +caramelo +camello +caballo diff --git a/Dictado.py b/Dictado.py new file mode 100644 index 0000000..89a76e3 --- /dev/null +++ b/Dictado.py @@ -0,0 +1,247 @@ +"""Desarrollo de un Dictado Robotizida o_0""" + +#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) + + #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() + + #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.texto.show() + + 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 _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 de Juego") + + def _repeat_cb(self, widget): + subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[self.num_clic], 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.palabra.set_text(self.words[self.num_clic]) + subprocess.call("espeak -s 100 -v es-sc --stdout %s | aplay" % self.words[self.num_clic], 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): + if self.texto.get_text() != "": + self.num_clic += 1 + if self.texto.get_text() == self.words[(self.num_clic)-1]: + self._autocall_cb(100, self.palabra)#3 es tiempo + self.aciertos += 1 + else: + self._autocall_cb(100, self.palabra)#3 es tiempo + 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]) + 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]) + 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]) + 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 de 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 new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/nivel.txt @@ -0,0 +1 @@ +1
\ No newline at end of file |