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
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
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()
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
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