Beispiel #1
0
def retorna_ultima_jogada(id_jogador_1: int, id_jogador_2: int, current_cursor: CursorBase, log: bool = False) -> int:
    """Retorna o número da última jogada feita na partida.

    Args:
        id_jogador_1 (int): Id do primeiro jogador da partida.
        id_jogador_2 (int): Id do segundo jogador da partida.
        current_cursor (int): Cursor aberto que executará as queries.
        log (bool, optional): Ativa e desativa o logging. Default é False.

    Returns:
        int: O número da última jogada feita na partida ou -1 caso alguma coisa
            tenha dado errado.

    """
    try:
        query_1 = f"SELECT MAX(n_jogada) FROM Quadrado WHERE id_dono = {id_jogador_1}"
        current_cursor.execute(query_1)
        max_jogador_1 = current_cursor.fetchone()[0]
        query_2 = f"SELECT MAX(n_jogada) FROM Quadrado WHERE id_dono = {id_jogador_2}"
        current_cursor.execute(query_2)
        max_jogador_2 = current_cursor.fetchone()[0]
        ultima_jogada = max(max_jogador_1, max_jogador_2)
        if log:
            print(current_cursor.rowcount, "Ultima jogada obtida")
        return ultima_jogada
    except Exception as e:
        if log:
            print("Não obteve a ultima jogada", e)
        return -1
Beispiel #2
0
def retorna_jogador(id_jogador: int,
                    current_cursor: CursorBase,
                    log: bool = False) -> Union[Tuple, int]:
    """Obtém um jogador do banco de dados.

    Args:
        id_jogador (int): Id do jogador que se deseja obter.
        current_cursor (CursorBase): Cursor aberto que executará as queries.
        log (bool, optional): Ativa e desativa o logging. Default é False.

    Returns:
        Union[Tuple, int]: Tupla com os dados do jogador caso tenha funcionado ou
            0 caso alguma coisa tenha dado errado.

    """
    try:
        query = f"SELECT * FROM Jogador WHERE id_jogador={id_jogador}"
        current_cursor.execute(query)
        if log:
            print(current_cursor.rowcount, f"Jogador {id_jogador} selecionado")
        return current_cursor.fetchone()
    except Exception as e:
        if log:
            print("Jogador não foi selecionado", e)
        return 0
Beispiel #3
0
def get_active_semester(cursor: CursorBase) -> tuple:
    """
    Get the currently active semester, using the given cursor.

    The returned value is a tuple representing the season
    and cal_year of the semester (in that order)
    """
    cursor.execute(ACTIVE_SEMESTER_QUERY)
    return cursor.fetchone()
Beispiel #4
0
def get_current_cfr(cursor: CursorBase, dept_name: str) -> tuple:
    """
    Get the latest cfr for the given department in the currently
    active semester, using the given cursor.
    
    The returned value is a tuple with the following fields (in this order):
    dept_name, semester, cal_year, date_initial, date_revised,
    revision_num, cfr_submitter, dean_committed

    This will return None if there are no CFRs for the department
    """
    semester = get_active_semester(cursor)
    query = (dept_name, semester[0], semester[1])
    cursor.execute(SELECT_CFR_DEPT, query)
    result = cursor.fetchone()

    return result
Beispiel #5
0
def le_ultimo_id_jogador(current_cursor: CursorBase, log: bool = False) -> int:
    """Retorna do banco de dados o maior id_jogador da tabela Jogador.

    Args:
        current_cursor (CursorBase): Cursor aberto que executará as queries.
        log (bool, optional): Ativa e desativa o logging. Default é False.

    Returns:
        int: O maior id_jogador registrado no banco de dados caso dê certo.
             -1 caso algum erro ocorra.

    """
    try:
        query = "SELECT id_jogador FROM Jogador ORDER BY id_jogador DESC LIMIT 1"
        current_cursor.execute(query)
        last_id = current_cursor.fetchone()
        if log:
            print(current_cursor.rowcount, "Id jogador retornado")
        return last_id[0]
    except Exception as e:
        if log:
            print("Id jogador não retornado", e)
        return -1