예제 #1
0
def mostraResultados():
    mydb = conecta()
    mycursor = mydb.cursor()

    sql = "select * from jogos"
    mycursor.execute(sql)
    resultado = mycursor.fetchall()

    for jogo in resultado:
        print(
            f"Concurso {jogo[0]:^4} Dezenas: {jogo[1]:^4} - {jogo[2]:^4} - {jogo[3]:^4} - {jogo[4]:^4} - {jogo[5]:^4}"
            f" - {jogo[6]:^4} - {jogo[7]:^4} - {jogo[8]:^4} - {jogo[9]:^4} - {jogo[11]:^4} - {jogo[12]:^4} - "
            f"{jogo[13]:^4} - {jogo[14]:^4} - {jogo[15]:^4}")
예제 #2
0
def excluiJogos():
    i = 0
    mydb = conecta()
    while True:
        if i == 1:
            break
        op = str(
            input(
                "Tem certeza que deseja excluir os dados da tabela jogos?\n[ 1 ] - SIM\n[ 2 ] - NAO\n==>>  "
            ))
        if op == '1':
            mycursor = mydb.cursor()
            opcao = str(
                input(
                    '[ 1 ] - Deletar todos\n[ 2 ] - Deletar concurso específico\n\n=>> '
                ))
            while True:
                if opcao == '1':
                    sql = "delete from jogos;"
                    sql2 = "alter table jogos auto_increment=1;"
                    mycursor.execute(sql)
                    mycursor.execute(sql2)
                    print('Registros deletados com sucesso!')
                    i = 1
                    break
                elif opcao == '2':
                    id = str(input('Digite a ID do concurso:\n=>> '))
                    sql = f'delete from jogos where id_concurso={id};'
                    sql2 = f'ALTER TABLE jogos AUTO_INCREMENT={id};'
                    mycursor.execute(sql)
                    mycursor.execute(sql2)
                    print(f'Concurso {id} deletado com sucesso')
                    break
                else:
                    print('Opção inválida!')
                    continue
        elif op == '2':
            print('OK!')
            break
        else:
            print('Opção inválida!')
            continue
    mydb.commit()
    mydb.close()
예제 #3
0
def addTodosSorteios():
    mydb = conecta()

    wb = load_workbook('loto.xlsx')
    ws = wb.active

    lines = ws.max_row + 1
    columns = ws.max_column + 1
    mycursor = mydb.cursor()
    game = []
    jogos = []
    contator = 0
    for li in range(1, lines):
        for col in range(0, columns):
            if li > 7 and col > 2:
                i = ws.cell(row=li, column=col).value
                game.append(i)
        jogos.append(sorted(game[:]))
        game.clear()
    for j in jogos:
        if len(j) > 0:
            n1 = j[0]
            n2 = j[1]
            n3 = j[2]
            n4 = j[3]
            n5 = j[4]
            n6 = j[5]
            n7 = j[6]
            n8 = j[7]
            n9 = j[8]
            n10 = j[9]
            n11 = j[10]
            n12 = j[11]
            n13 = j[12]
            n14 = j[13]
            n15 = j[14]
            contator += 1
            sql = f'insert into jogos (dezena_1, dezena_2, dezena_3, dezena_4, dezena_5, dezena_6, dezena_7, ' \
                  f'dezena_8, dezena_9, dezena_10, dezena_11, dezena_12, dezena_13, dezena_14, dezena_15)' \
                  f'values({n1},{n2},{n3},{n4},{n5},{n6},{n7},{n8},{n9},{n10},{n11},{n12},{n13},{n14},{n15})'
            mycursor.execute(sql)
    print(f'Foram adcionados {contator} jogos no banco de dados')
    mydb.commit()
    mydb.close()
예제 #4
0
def validaResultadosJogoGerado(game):
    mydb = conecta()
    mycursor = mydb.cursor()
    jogos_bd = []
    jg = []
    acertou = 0
    acertos = []
    onze = 0
    doze = 0
    treze = 0
    quatorze = 0
    quinze = 0
    sql = "select * from jogos"
    mycursor.execute(sql)
    resultado = mycursor.fetchall()
    for j in resultado:
        for i in range(1, 16):
            #print(j[i], end=' ')
            jg.append(j[i])
        jogos_bd.append(jg[:])
        jg.clear()
    for jogo in jogos_bd:
        for n in jogo:
            if n in game:
                acertou += 1
        acertos.append(acertou)
        acertou = 0
    for ac in acertos:
        if ac == 11:
            onze += 1
        elif ac == 12:
            doze += 1
        elif ac == 13:
            treze += 1
        elif ac == 14:
            quatorze += 1
        elif ac == 15:
            quinze += 1

    return (
        f"\nAcertos obtidos com o jogo gerado na história da lotofácil:\n"
        f"11 pontos: {onze}\n12 pontos: {doze}\n13 pontos: {treze}\n14 pontos: {quatorze}\n15 pontos: {quinze}\n"
    )
예제 #5
0
def adicionaResultado():

    j = list()
    cont = 0
    print("\n\nInforme as 15 dezenas do resultado:\n\n")
    while True:
        mydb = conecta()
        mycursor = mydb.cursor()
        for x in range(0,15):
            j.append(int(input(f'Digite a dezena {x+1}: ')))
        n1 = j[0]
        n2 = j[1]
        n3 = j[2]
        n4 = j[3]
        n5 = j[4]
        n6 = j[5]
        n7 = j[6]
        n8 = j[7]
        n9 = j[8]
        n10 = j[9]
        n11 = j[10]
        n12 = j[11]
        n13 = j[12]
        n14 = j[13]
        n15 = j[14]
        sql = f'insert into jogos (dezena_1, dezena_2, dezena_3, dezena_4, dezena_5, dezena_6, dezena_7, dezena_8,' \
              f'dezena_9, dezena_10, dezena_11, dezena_12, dezena_13, dezena_14, dezena_15)' \
              f'values({n1},{n2},{n3},{n4},{n5},{n6},{n7},{n8},{n9},{n10},{n11},{n12},{n13},{n14},{n15})'
        mycursor.execute(sql)
        mydb.commit()
        mydb.close()
        cont += 1
        j.clear()
        print("Resultado inserido com sucesso!\n")
        op = int(input("\nDeseja inserir mais resultados:\n[ 1 ] - SIM\n[ 2 ] - NAO\n==> "))
        if op == 1:
            continue
        elif op == 2:
            print(f"\nBanco de dados atualizado com {cont} resultados!\n")
            break
        else:
            print("\nOpção inválida!\n")
예제 #6
0
def fechamento():
    #contadores
    contTrabalhadas = 0
    tentativas = 0
    #vetores
    vetTrabalhadas = list()
    vetJogos = list()
    vetFixas = list()
    # --
    vetorPrimos = [2, 3, 5, 7, 11, 13, 17, 19, 23]
    vetorMoldura = [1, 2, 3, 4, 5, 6, 10, 11, 15, 16, 20, 21, 22, 23, 24, 25]
    vetImpar = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25]
    vetFibo = [1, 2, 3, 5, 8, 13, 21]
    vetMultiplos = [3, 6, 9, 12, 15, 18, 21, 24]

    # CRIA O VETOR DO ÚLTIMO RESULTADO PARA MONTAR O VETOR REPETIDAS
    mydb = conecta()
    mycursor = mydb.cursor()
    mycursor1 = mydb.cursor()
    mycursor1.execute("select max(id_concurso) from jogos")
    last = mycursor1.fetchone()
    last = last[0]
    sql = f"SELECT dezena_1, dezena_2, dezena_3, dezena_4, dezena_5, dezena_6, dezena_7, dezena_8,dezena_9, dezena_10, " \
          f"dezena_11, dezena_12, dezena_13, dezena_14, dezena_15 FROM jogos WHERE id_concurso = {last}"
    mycursor.execute(sql)
    result = mycursor.fetchall()
    print("Dezenas sorteadas no concurso anterior: ", end=' ')
    print(result[0])
    ##### fim vetor repetidas

    #seleciona quantidade de jogos
    qdtJogos = int(input("Quantos jogos: "))
    contJogos = 0

    #seleciona quantas dezenas serão trabalhadas nos jogos
    qtd_trabalhadas = int(input("Quantas dezenas trabalhadas: "))

    if qtd_trabalhadas == 25:
        for i in range(1, 26):
            vetTrabalhadas.append(i)
    else:
        #captação das dezenas que irá ser usada para gerar os jogos
        while True:
            n = int(
                input(f"Digite a {contTrabalhadas + 1}° Dezena Trabalhada: "))
            # caso o número digitado não esteja já no vetor, ela é adicionada, e o contador aumenta 1
            if n not in vetTrabalhadas:
                vetTrabalhadas.append(n)
                contTrabalhadas += 1
            # caso dezena já exista no vetor ela não é adicionada e volta ao passo anterior de solicitar uma dezena
            else:
                print("Dezena já incluída")
                continue
            # caso o contador chegar a quantidade de trabalhadas escolhidas, sai do loop while
            if contTrabalhadas == qtd_trabalhadas:
                break

    # solicita se deseja fixar dezenas
    op = int(input("Deseja Fixar dezenas?\n1 - SIM\n2 - NAO\n-->"))
    # se opcao for sim
    if op == 1:
        # solicita a quantidade de dezenas deseja fixar nos jogos
        fx = int(input("Quantas fixas: "))

        # solicita quais as dezenas fixas
        for i in range(0, fx):
            n = int(input(f"{i+1}° fixa: "))
            # se a dezena escolhida for nova é adicionada no vetor
            if n not in vetFixas:
                vetFixas.append(n)

    # fx recebe o tamanho do vetor de fixas
    fx = len(vetFixas)

    # define os parametros da validação
    minImpar = int(input("Minimo Impar: "))
    maxImpar = int(input("Maximo Impar: "))
    minRep = int(input("Minimo Repetidas: "))
    maxRep = int(input("Maximo Repetidas: "))
    minPrimo = int(input("Minimo Primo: "))
    maxPrimo = int(input("Maximo Primo: "))
    minMult = int(input("Mínimo Multiplos: "))
    maxMult = int(input("Máximo Multiplos: "))
    minFibo = int(input("Mínimo Fibo: "))
    maxFibo = int(input("Máximo Fibo: "))
    minMold = int(input("Mínimo na Moldura: "))
    maxMold = int(input("Máximo na Moldura: "))
    minSoma = int(input("Mínimo soma: "))
    maxSoma = int(input("Máximo soma: "))

    # looping para gerar jogos e os validar
    while True:
        jogo = gerarNumerosJogos()
        # caso a validação seja falsa
        if not valida(jogo, vetTrabalhadas, vetFixas, result, fx, minImpar,
                      maxImpar, minRep, maxRep, minPrimo, maxPrimo, minMult,
                      maxMult, minFibo, maxFibo, minMold, maxMold, minSoma,
                      maxSoma):
            tentativas += 1
            continue
        # caso a validação seja verdadeira
        else:
            if len(vetJogos) > 0:
                # valida se existem jogos ok na validação porém já adicionados no vetor
                if jogo in vetJogos:
                    print(f"Jogo {jogo} repetido")
                    continue
                # caso o jogo não seja repetido é adicionado ao vetor final
                else:
                    vetJogos.append(jogo)
                    # print(f"jogo: {jogo}")
                    # print(f"Gerado com {tentativas} tentativas")
                    # validaResultadosJogoGerado(jogo)
                    tentativas = 0
                    contJogos += 1
            # caso o vetor final não possua jogos ainda o primeiro jogo com validação verdadeira é incluído
            else:
                vetJogos.append(jogo)
                # print(f"jogo: {jogo}")
                # print(f"Gerado com {tentativas} tentativas")
                # validaResultadosJogoGerado(jogo)
                tentativas = 0
                contJogos += 1
                continue
            # caso atinga a quantidade de jogos desejada sai do looping while
            if contJogos == qdtJogos:
                break
            # caso ainda não tenha atingido o número de jogos desejados, continua while
            else:
                continue

    # Abre arquivo onde serão gravados os jogos com permissão de escrita
    file = open("desdobramentos.txt", "w+")

    for index, jogo in enumerate(vetJogos):
        # CONTADORES
        contPrimo = contMold = contRepetidas = contImpar = contTrab = contFixa = contFibo = soma = contMult = 0
        for j in jogo:
            if j in vetorPrimos:
                contPrimo += 1
            if j in vetFibo:
                contFibo += 1
            if j in vetorMoldura:
                contMold += 1
            if j in result[0]:
                contRepetidas += 1
            if j in vetImpar:
                contImpar += 1
            if j in vetTrabalhadas:
                contTrab += 1
            if j in vetFixas:
                contFixa += 1
            if j in vetMultiplos:
                contMult += 1
            soma += j
        # if minImpar <= contImpar <= maxImpar and minPrimo <= contPrimo <= maxPrimo \
        #         and minRep <= contRepetidas <= maxRep and contTrab == 15 and contFixa == fx and minSoma <= soma <= maxSoma \
        #         and minMold <= contMold <= maxMold and minFibo <= contFibo <= maxFibo and minMult <= contMult <= maxMult:
        # imprime no console os jogos com a quantidade de cada parametro
        print(f"\033[1;32m jogo {index+1}:\n      {jogo}\033[1;0m")
        a = validaResultadosJogoGerado(jogo)
        print(a)
        print(f"Qtd de Impar: {contImpar}")
        print(f"Qtd de Primo: {contPrimo}")
        print(f"Qtd de Multiplos de 3: {contMult}")
        print(f"Qtd de Repetida: {contRepetidas}")
        print(f"Qtd de Moldura: {contMold}")
        print(f"Qtd de Fibo: {contFibo}")
        print(f"Soma: {soma}\n")
        print("- -- - -- -" * 10)
        # escreve no arquivo
        file.write(f"jogo {index+1}:\n      {jogo}\n")
        file.write(a)
        file.write("\n")
        file.write(f"Qtd de Impar: {contImpar}\n")
        file.write(f"Qtd de Primo: {contPrimo}\n")
        file.write(f"Qtd de Repetidas: {contRepetidas}\n")
        file.write(f"Qtd de Moldura: {contMold}\n")
        file.write(f"Qtd de Fibo: {contFibo}\n")
        file.write(f"Qtd de Multiplos: {contMult}\n")
        file.write(f"Soma: {soma}\n\n")
        file.write("- -- - -- -" * 10)
        file.write("\n")
    # salva o arquivo com os jogos
    file.close()
    print("\n\n#####  Jogos salvos no arquivo desdobramentos.txt  ######\n\n")
예제 #7
0
def desdobra():
    wb = load_workbook(f"desdobra.xlsx")
    ws = wb.active

    lines = ws.max_row
    columns = ws.max_column

    #vetores
    vetorPrimos = [2, 3, 5, 7, 11, 13, 17, 19, 23]
    vetorMoldura = [1, 2, 3, 4, 5, 6, 10, 11, 15, 16, 20, 21, 22, 23, 24, 25]
    vetRepetidas = [3, 4, 6, 7, 11, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25]
    vetImpar = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25]

    file = open("desdobra.txt", "w+")
    print(lines)
    print(columns)
    vet1 = []
    vet2 = []
    vet3 = []
    # CRIA O VETOR DO ÚLTIMO RESULTADO PARA MONTAR O VETOR REPETIDAS
    mydb = conecta()
    mycursor = mydb.cursor()
    mycursor1 = mydb.cursor()
    mycursor1.execute("select max(id_concurso) from jogos")
    last = mycursor1.fetchone()
    last = last[0]
    sql = f"SELECT dezena_1, dezena_2, dezena_3, dezena_4, dezena_5, dezena_6, dezena_7, dezena_8,dezena_9, dezena_10, " \
          f"dezena_11, dezena_12, dezena_13, dezena_14, dezena_15 FROM jogos WHERE id_concurso = {last}"
    mycursor.execute(sql)
    result = mycursor.fetchall()
    print("Dezenas sorteadas no concurso anterior: ", end=' ')
    print(result[0])
    ##### fim vetor repetidas

    # define os parametros da validação
    qtd_jogos = int(input("Quantos jogos: "))
    minImpar = int(input("Minimo Impar: "))
    maxImpar = int(input("Maximo Impar: "))
    minRep = int(input("Minimo Repetidas: "))
    maxRep = int(input("Maximo Repetidas: "))
    minPrimo = int(input("Minimo Primo: "))
    maxPrimo = int(input("Maximo Primo: "))
    # maxMold  = int(input("Minimo Moldura: "))
    # minMold  = int(input("Maximo Moldura: "))
    # minFibo = int(input("Minimo Fibo: "))
    # maxFibo = int(input("Maximo Fibo: "))
    # menQtz = int(input("Máximo de dezenas menores que 14: "))

    for l in range(1, lines + 1):
        for c in range(1, columns + 1):
            n = ws.cell(row=l, column=c).value
            vet1.append(n)
        vet2.append(vet1[:])
        vet1.clear()
    contJogos = 0
    while True:
        for v in vet2:
            # CONTADORES
            contPrimo = contMoldura = contRepetidas = contImpar = soma = 0
            for n in v:
                if n in vetImpar:
                    contImpar += 1
                if n in vetorPrimos:
                    contPrimo += 1
                if n in result[0]:
                    contRepetidas += 1
                if n in vetorMoldura:
                    contMoldura += 1
                soma += n
            if minImpar <= contImpar <=maxImpar and minPrimo <= contPrimo <= maxPrimo and minRep <= contRepetidas <= maxRep\
                    and 180 <= soma <= 215 :
                file.write(f"{sorted(v)}\n")
                file.write(f"impar: {contImpar}\n")
                file.write(f"primo: {contPrimo}\n")
                file.write(f"soma: {soma}\n")
                file.write(f"repetidas: {contRepetidas}\n")

                print(sorted(v))
                print(F"impar: {contImpar}")
                print(F"primo: {contPrimo}")
                print(f"Repetidas: {contRepetidas}")
                print(f"soma:{soma}\n")
                if v not in vet3:
                    vet3.append(v)
                if len(vet3) < qtd_jogos:
                    break
        file.close()