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