Esempio n. 1
0
def main():
    """
    Función que muestra la ventana de top de puntajes.
    
    El usuario puede ver el top de todos los niveles y un top general (incluye todos los niveles).
    """
    
    ultimo_presionado = "general"
    
    top = leer_top()
        
    tabla = cargar_tabla()

    window = crear_ventana_tops(tabla["general"])
    
    while True:
      event = leer_evento(window)[0]
      if event in (None, "volver"):
        break
      elif event == "resetear":
        resetear(top, tabla, ultimo_presionado, window)
      else:
        ultimo_presionado = mostrar_top(ultimo_presionado, event, tabla[event], window)

    window.Close()
Esempio n. 2
0
def main():
    """
    Función que muestra la ventana de reglas.
    
    Informa el tipo de palabras válidas y tamaño del tablero de acuerdo
    al nivel seleccionado.
    """

    ultimo_presionado = ""

    window = crear_ventana_reglas()

    while True:
        event = leer_evento(window)[0]
        if event == "mas_informacion":
            open(
                "https://github.com/ValentinGiorgetti/ScrabbleAR/blob/master/README.md#reglas-del-juego"
            )
            continue
        if event in (None, "Volver"):
            break
        else:
            ultimo_presionado = mostrar_texto(window, event, ultimo_presionado)

    window.Close()
Esempio n. 3
0
def main(window, tablero, parametros):
    """
    Función que muestra una ventana donde el jugador puede cambiar algunas o todas sus fichas.

    Parámetros:
        - window (sg.Window): ventana del tablero.
        - tablero (dict): diccionario con la información del tablero.
        - parametros (dict): diccionario con párametros que controlan la lógica del juego.
    """

    jugador = tablero["jugador"]
    letras_jugador = jugador.fichas
    bolsa_de_fichas = tablero["bolsa_de_fichas"]

    if parametros["jugada"]:
        sg.Popup("Primero debe levantar sus fichas\n", **parametros_popup)
        return

    ventana = crear_ventana_cambio_fichas(letras_jugador)

    fichas = fichas_totales(bolsa_de_fichas)

    seleccionadas = {}

    cambio = False

    while not cambio:
        event, values, tiempo = leer_evento(ventana, 1000, "esperar")
        parametros["fin_juego"], tablero["contador"] = actualizar_tiempo(
            window, tablero["contador"], tiempo)
        if parametros["fin_juego"] or event in ("cancelar", None):
            break
        elif event == "esperar":
            continue
        elif event == "todas":
            cambio = cambiar_todas(window, bolsa_de_fichas, parametros,
                                   letras_jugador)
        elif event == "algunas":
            cambio = cambiar_seleccionadas(window, bolsa_de_fichas,
                                           seleccionadas, letras_jugador,
                                           parametros)
        else:
            seleccionar_ficha(ventana, event, seleccionadas,
                              letras_jugador[event])

    ventana.Close()

    if cambio:
        actualizar_tablero(window, tablero, parametros, jugador)
Esempio n. 4
0
def ventana_palabras_ingresadas(window, tablero, parametros, comenzar):
    """
    Función que muestra una ventana con información sobre las palabras formadas
    durante la partida.

    Parámetros:
        - window (sg.Window): ventana del tablero.
        - tablero (dict): diccionario que contiene información del tablero.
        - parametros (dict): diccionario que contiene párametros usados para controlar la lógica del juego.
        - comenzar (bool): indica si la partida está pausada.
    """

    palabras_ingresadas = tablero["palabras_ingresadas"]

    if not palabras_ingresadas:
        sg.Popup("No se ingresó ninguna palabra\n", **parametros_popup)

        return

    layout = [[
        sg.Text("Palabras ingresadas durante la partida",
                **titulos,
                size=(40, 1))
    ], [sg.Text("")],
              [
                  sg.Table(
                      sorted(palabras_ingresadas,
                             key=lambda x: x[2],
                             reverse=True),
                      [" Palabra ", "Clasifiación", "Puntos", "Usuario"],
                      justification="center",
                  )
              ], [sg.Text("")], [sg.Button(" Volver ")]]
    ventana = sg.Window(" Palabras ingresadas", layout, **parametros_ventana)

    partida_finalizada = parametros["fin_juego"]

    while True:
        event, values, tiempo = leer_evento(ventana, 1000)
        if not partida_finalizada and comenzar:
            parametros["fin_juego"], tablero["contador"] = actualizar_tiempo(
                window, tablero["contador"], tiempo)
            if parametros["fin_juego"]:
                break
        if event in (" Volver ", None):
            break

    ventana.Close()
Esempio n. 5
0
def main():
    """
    Función que muestra una ventana donde el usuario puede modificar diferentes parámetros de la partida.
    
    El usuario puede configurar el nivel y tiempo de la partida, asi como también el puntaje y cantidad de 
    fichas de cada letra para todos los niveles. 

    Siempre se muestra la última configuración seleccionada, la cuál inicialmente coincide con la configuración 
    por defecto. El usuario tiene la posibilidad de reestablecer las configuraciones a valores por defecto. 
    
    Retorna:
        - configuracion_seleccionada (dict): diccionario que contiene la configuración seleccionada.
    """

    configuracion_seleccionada = leer_ultima_configuracion()

    ultimo_presionado = configuracion_seleccionada[
        "nivel_seleccionado"].capitalize()

    window = crear_ventana_configuracion(ultimo_presionado,
                                         configuracion_seleccionada)

    while True:
        event, values, tiempo = leer_evento(window)
        if event in (None, " Aceptar "):
            break
        elif event == "restablecer":
            restablecer_configuracion(window, ultimo_presionado,
                                      configuracion_seleccionada)
        elif event == "confirmar_tiempo":
            confirmar_tiempo(values["tiempo"], configuracion_seleccionada,
                             window)
        elif event == "confirmar_letra":
            confirmar_letra(values, configuracion_seleccionada, window)
        elif event == "confirmar_nick":
            confirmar_nick(values, configuracion_seleccionada, window)
        elif event in ("Fácil", "Medio", "Difícil"):
            ultimo_presionado = seleccionar_dificultad(
                configuracion_seleccionada, ultimo_presionado, event, window)

    window.Close()

    guardar_ultima_configuracion(configuracion_seleccionada)

    return configuracion_seleccionada
Esempio n. 6
0
def main():
    """
    Función que muestra la ventana principal del programa.
    
    Muestra un menú con opciones para acceder a la ventana de configuración, reglas, top de
    puntajes, reanundar o iniciar una partida nueva.
    """

    partida_guardada = leer_partida_guardada()

    configuracion_seleccionada = leer_ultima_configuracion()

    ventana_principal = crear_ventana_main(partida_guardada)

    while True:
        event = leer_evento(ventana_principal)[0]
        if event in (None, "Salir"):
            break
        if event == "github":
            open("https://github.com/ValentinGiorgetti/ScrabbleAR")
            continue
        ventana_principal.Hide()
        if event == "reglas":
            reglas()
        elif event == "top_puntajes":
            top_puntajes()
        elif event == "configuracion":
            configuracion_seleccionada = cargar_configuracion()
        elif event == "jugar":
            partida_guardada = comenzar_juego(configuracion_seleccionada,
                                              partida_guardada,
                                              ventana_principal)
        elif event == "reanudar":
            partida_guardada = reanudar_juego(configuracion_seleccionada,
                                              partida_guardada,
                                              ventana_principal)
        ventana_principal.UnHide()

    ventana_principal.Close()
Esempio n. 7
0
def main(configuracion, partida_anterior):
    """
    Función donde se muestra el tablero de juego y se leen los diferentes eventos.

    Parámetros:
        - configuracion (dict): diccionario que contiene la configuración de la partida.
        - partida_anterior (dict): diccionario que contiene información de la partida anterior.

    Retorna:
        - partida_guardada (dict): diccionario con la partida jugada.
        - tablero["jugador"] (Jugador): instancia de la clase Jugador que representa al usuario.
        - tablero["computadora"] (Jugador): instancia de la clase Jugador que representa a la computadora.
    """

    tablero, parametros = inicializar_parametros(configuracion,
                                                 partida_anterior)

    window = crear_ventana_tablero(tablero, parametros, partida_anterior)

    comenzar = partida_guardada = partida_finalizada = None

    while True:
        event, values, tiempo = leer_evento(window, 1000)
        if event == "Salir" and confirmar_salir(parametros["fin_juego"]):
            break
        elif event == "Iniciar":
            comenzar = iniciar_partida(window, parametros, partida_anterior)
        elif event == "Pausa":
            comenzar = pausar(window, comenzar)
        elif event == "palabras_ingresadas":
            ventana_palabras_ingresadas(window, tablero, parametros, comenzar)
        elif event == "Posponer":
            salir, partida_guardada = posponer(tablero, parametros["jugada"])
            if salir:
                break
        elif event == "Terminar":
            comenzar = finalizar_partida(window, tablero, parametros)
        elif comenzar:
            parametros["fin_juego"], tablero["contador"] = actualizar_tiempo(
                window, tablero["contador"], tiempo)
            if tablero["turno"] == "Computadora":
                jugar_computadora(window, parametros, tablero)
            elif tablero["turno"] == "Jugador":
                if event == "cambiar":
                    cambiar_fichas(window, tablero, parametros)
                elif event == "Pasar":
                    pasar(window, parametros, tablero)
                elif event == "confirmar":
                    confirmar_palabra(window, parametros, tablero)
                elif event in range(7):
                    seleccionar_ficha(window, parametros, event,
                                      tablero["jugador"].color)
                elif event:
                    colocar_ficha(window, parametros, tablero, event)
            if parametros["fin_juego"]:
                comenzar = finalizar_partida(window, tablero, parametros)
            window["cantidad_fichas"].Update(
                len(fichas_totales(tablero["bolsa_de_fichas"])))

    window.Close()

    return partida_guardada, tablero["jugador"], tablero["computadora"]