Beispiel #1
0
def promedio_temperatura():
    oficinas = leer_archivo("json files/datos-oficinas.json")
    config = leer_archivo("json files/configuracion.json")[0]
    oficina_promedio = oficinas[config['oficina']]
    temperaturas = 0
    cant_temperaturas = 0
    for var in oficina_promedio:
        temperaturas += var["temp"]
        cant_temperaturas += 1
    return temperaturas / cant_temperaturas
Beispiel #2
0
def Main():
    colores=leer_archivo('json files/colores.json')    
    sg.SetOptions(background_color=colores["COLOR_FONDO"],button_color=colores["COLOR_BOTON"], text_element_background_color=colores["COLOR_FONDO"])    
    '''Programa Principa de configuracion.py. Ejecuta el layout de las configuraciones
    y aplica los respectivos cambios al archivo de configuracion.json '''
    window=sg.Window('Configuraciones',font='Fixedsys',auto_size_buttons=True).Layout(crear_layout(colores))
    dic_colores={'azul':'blue','verde':'green','rojo':'red','amarillo':'yellow','violeta':'violet','naranja':'orange','celeste':'lightblue','indigo':'indigo'}
    while True:
        event,valores=window.Read()
        if event=='Aplicar':
            if comparar_colores(valores[9],valores[10],valores[11]):
                colorVB,colorJJ,colorNN=what_color(valores[9],valores[10],valores[11],dic_colores)
                if valores[0]==False:
                    orientacion = 'Vertical'
                else:
                    orientacion='Horizontal'
                if valores[6]== False:
                    letra='Minuscula'
                else:                    
                    letra='Mayuscula'
                JsonObj=[{'orientacion':orientacion,'ayuda':valores[2],'cant_palabras':{'VB': int(valores[3]),'JJ': int(valores[4]),'NN':int(valores[5])},'tipo_letra':letra,'invertir': valores[8],'colores':{'VB':colorVB,'JJ':colorJJ,'NN':colorNN},'oficina':valores[12]}]
                actualizar_archivo(JsonObj)
                break
            else:
                mensaje=[[sg.Text('Por favor ingrese colores distintos para cada tipo de palabra')],
                         [sg.Button('OK')]]
                window_ventana=sg.Window('Colores').Layout(mensaje)
                event,values=window_ventana.Read()
                if event is None or event=='OK':
                    window_ventana.Close()                
        elif event == None or event=='Cancelar':
                 break
    window.Close()
Beispiel #3
0
def mostrar_palabras():
    palabras = leer_archivo('json files/palabras.json')[0]
    lista_palabras = []
    for var in palabras:
        lista_palabras.extend(list(palabras[var].keys()))
    layout = [[sg.Multiline(lista_palabras, size=(40, 12), disabled=True)],
              [sg.Button('Cerrar')]]
    window = sg.Window('json files/Palabras').Layout(layout)
    event, values = window.Read()
    window.Close()
Beispiel #4
0
def actualizar_archivoPal(objeto):
    '''Recibe un diccionario con datos de palabras y sus definiciones y actualiza el archivo palabras.json'''
    datos_archivo = leer_archivo('json files/palabras.json')
    for x in objeto[0]:
        for palabra in objeto[0][x]:
            datos_archivo[0][x][palabra] = objeto[0][x][palabra]
    nuevos = json.dumps(datos_archivo, indent=4)
    archivo = open('json files/palabras.json', 'w')
    archivo.write(nuevos)
    archivo.close
Beispiel #5
0
def crear_layout(colores):
        config=leer_archivo('json files/configuracion.json')[0]
        lista_cantidad=[]
        arcoiris=['azul','verde','rojo','amarillo','violeta','indigo','naranja','celeste']
        oficinas=list(leer_archivo("json files/datos-oficinas.json").keys())
        lista_invertir= ['Si','No']
        for var in range(11):
            lista_cantidad.append(str(var))
        layout=[[sg.Text('Orientacion:'),sg.Radio('Horizontal',"selector1", default=conseguir_booleano('Horizontal',config['orientacion']),background_color=colores["COLOR_FONDO"]),sg.Radio('Vertical', "selector1",default=conseguir_booleano('Vertical',config['orientacion']),background_color=colores["COLOR_FONDO"])],
                [sg.Text('Ayudas:'),sg.Combo(['Ninguna','Definición','Palabras','Ambas'],default_value=config["ayuda"])],
                [sg.Text('Cantidad de Palabras:')],
                [sg.Text('Verbos'),sg.Combo(lista_cantidad,default_value=str(config["cant_palabras"]["VB"])),
                 sg.Text('Adjetivos'),sg.Combo(lista_cantidad,default_value=str(config["cant_palabras"]["JJ"])),
                 sg.Text('Sustantivos'),sg.Combo(lista_cantidad,default_value=str(config["cant_palabras"]["NN"]))],
                [sg.Text('Letras de la sopa'),sg.Radio('Mayuscula','selector2',default=conseguir_booleano('Mayuscula',config['tipo_letra']),background_color=colores["COLOR_FONDO"]),sg.Radio('Minuscula','selector2',default=conseguir_booleano('Minuscula',config['tipo_letra']),background_color=colores["COLOR_FONDO"])],
                [sg.Text('Palabras invertidas'),sg.Combo(lista_invertir,default_value=config["invertir"])],
                [sg.Text('Colores:')],
                [sg.Text('Verbos:'),sg.Combo(arcoiris,default_value=conseguir_color('VB',config['colores'])),
                 sg.Text('Adjetivos:'),sg.Combo(arcoiris,default_value=conseguir_color('JJ',config['colores'])),
                 sg.Text('Sustantivos:'),sg.Combo(arcoiris,default_value=conseguir_color('NN',config['colores']))],
                [sg.Text('Oficina'),sg.Combo(oficinas,default_value=config["oficina"])],
                [sg.Button('Aplicar'),sg.Button('Cancelar')]]
        return layout
Beispiel #6
0
def main():
    colores = leer_archivo('json files/colores.json')
    sg.SetOptions(background_color=colores["COLOR_FONDO"],
                  text_color='white',
                  button_color=colores["COLOR_BOTON"],
                  text_element_background_color=colores["COLOR_FONDO"])
    '''Programa Principal de comprobacion.py.
    Realiza el ingreso/eliminacion de palabras al archivo palabras.json llamando a las respectivas funciones declaradas en comprobacion.py'''
    layout = [
        [sg.Text('¡Bienvenido a la sección de ingreso de palabras!')],
        [
            sg.Text(
                'Ingrese la palabra a agregar/eliminar. Puede tardar en comprobar la palabra en internet.'
            )
        ], [sg.Input()],
        [
            sg.Text(
                '<<Una palabra por vez. Con acentuación incluída>>.<<Máximo de longitud:10 >> ',
                text_color='red')
        ],
        [
            sg.Button('Agregar'),
            sg.Button('Eliminar'),
            sg.Button('Mostrar Palabras'),
            sg.Button('Mostrar Reporte')
        ], [sg.Button('Terminar')]
    ]
    window = sg.Window('Ingreso de palabras').Layout(layout)
    while True:
        event, values = window.Read()
        if event == None or event == 'Terminar':
            break
        elif event == 'Agregar' and values != ['']:
            jsonObj = [{"VB": {}, "JJ": {}, "NN": {}}]
            tipo = verificacion_palabra(values[0], jsonObj)
            actualizar_archivoPal(jsonObj)
        elif event == 'Eliminar':
            eliminar(values[0])
        elif event == 'Mostrar Palabras':
            mostrar_palabras()
        elif event == 'Mostrar Reporte':
            mostrar_reporte()

    window.Close()
Beispiel #7
0
def eliminar(palabra):
    '''Recibe una palabra y la elimina del archivo palabras.json'''
    palabra = palabra.lower()
    datos = leer_archivo('json files/palabras.json')
    for x in datos[0]:
        llaves = list(datos[0][x].keys())
        if palabra in llaves:
            del datos[0][x][palabra]
            mensaje = ' Se ha eliminado con exito'
            break
        else:
            mensaje = 'La palabra no se encuentra en el archivo'
    nuevos = json.dumps(datos, indent=4)
    archivo = open('json files/palabras.json', 'w')
    archivo.write(nuevos)
    archivo.close
    layout = [[sg.Text(mensaje, font='Courier')], [sg.Button('Aceptar')]]
    window = sg.Window('Eliminado').Layout(layout)
    while True:
        event, values = window.Read()
        if event == None or event == 'Aceptar':
            break
    window.Close()
Beispiel #8
0
def look_and_feel():
    temperatura = promedio_temperatura()
    foto = 'images/logo.png'
    if temperatura < 10:
        color = "#291E9C"
        color_boton = ["white", "#525AFE"]
    elif 10 < temperatura < 20:
        color = "#9FD9DA"
        color_boton = ["white", "#4E8498"]
    elif 20 < temperatura < 27:
        color = "#FBB40D"
        color_boton = ["black", "#FACA3C"]
    elif temperatura > 27:
        color = "#E6402A"
        color_boton = ["white", "#C82610"]
    colores = leer_archivo("json files/colores.json")
    colores['COLOR_FONDO'] = color
    colores['COLOR_BOTON'] = color_boton
    colores['COLOR_TEXTO'][1] = color
    archivo = open('json files/colores.json', 'w')
    objeto = json.dumps(colores, indent=4)
    archivo.write(objeto)
    archivo.close
    return foto, color, color_boton
def Main():
    colores=leer_archivo('json files/colores.json')
    sg.SetOptions(background_color=colores['COLOR_FONDO'],button_color=colores['COLOR_BOTON'], text_element_background_color=colores['COLOR_FONDO'])    
    '''Programa Principal de Sopa de letras.
    Se encarga de la creacion de la sopa de letras y del ingreso de las coordenadas de las casillas marcadas.
    Se encarga de la comprobacion de las casillas marcadas y de volver al menu.'''
    palabras = leer_archivo("json files/palabras.json")
    config= leer_archivo("json files/configuracion.json")
    color=colores['COLOR_BOTON']
    volver_a_jugar=True
    while volver_a_jugar:
        volver_a_jugar=False
        layout,coor,palabras_sopa=crear_sopa(palabras,config)
        window=sg.Window('Sopa de letras',font='Courier').Layout(layout)
        ingresados={'VB':[],'JJ':[],'NN':[]}
        while True:
            event,values=window.Read()
            if(event is None or event=='Volver al menú'):
                break
            elif type(event)==tuple:
                if(color[1]==config[0]['colores']['VB']):
                    comparar(event,ingresados,'VB','JJ','NN')            
                elif(color[1]==config[0]['colores']['JJ']):
                    comparar(event,ingresados,'JJ','VB','NN')
                elif(color[1]==config[0]['colores']['NN']):
                    comparar(event,ingresados,'NN','JJ','VB')
                elif(color==colores['COLOR_BOTON']):
                    for var in ingresados:
                        if event in ingresados[var]:
                            ingresados[var].remove(event)                    
                window.FindElement(event).Update(button_color=color)
            elif(event=='Adjetivos'):
                color=('white',config[0]['colores']['JJ'])
                window.FindElement('color_actual').Update(button_color=color)
            elif(event=='Sustantivos'):
                color=('white',config[0]['colores']['NN'])
                window.FindElement('color_actual').Update(button_color=color)
            elif(event=='Verbos'):
                color=('white',config[0]['colores']['VB'])
                window.FindElement('color_actual').Update(button_color=color)
            elif (event=='Mostrar definiciones'):
                mostrar_def(palabras, palabras_sopa)                
            elif(event=='Borrar boton'):
                color=colores['COLOR_BOTON']
                window.FindElement('color_actual').Update(button_color=color)
            elif(event=='Borrar Tablero'):
                for llave in ingresados:
                    if ingresados[llave]:
                        for var in ingresados[llave]:
                            window.FindElement(var).Update(button_color=colores['COLOR_BOTON'])
                for llave in ingresados:
                    ingresados[llave].clear()            
            elif(event=='Listo!'):
                logrado, terminado=comprobar(ingresados, coor)
                if terminado:
                    for clave in coor:
                        if clave== 'VB':
                            color_actual= config[0]['colores']['VB']
                        elif clave== 'JJ':
                            color_actual= config[0]['colores']['JJ']
                        else:
                            color_actual= config[0]['colores']['NN']
                        for coord in coor[clave]:
                            window.FindElement(coord).Update(button_color=('white',color_actual))
                        for pintada in ingresados[clave]:
                            if pintada in coor[clave]:
                                window.FindElement(pintada).Update(button_color=(color_actual,'white'))
                            else:
                                window.FindElement(pintada).Update(button_color=('white','black'))
                window.FindElement('mensaje').Update('Resolución: Las letras blancas son las que marcaste correctamente y las negras las incorrectas', font ='Bold')
                event,values= window.Read()
                if logrado or terminado:
                    layout2=[[sg.Text('¿Quieres volver a jugar?',font='ourier')],
                             [sg.Button('Si'),sg.Button('No')]]
                    window2=sg.Window('Logrado').Layout(layout2)
                    event,values=window2.Read()
                    if event =='Si':
                        volver_a_jugar=True
                    else:
                        volver_a_jugar=False
                    window2.Close()
                    break                 
        window.Close()