def pesquisar_palavra(pesquisa): util.clear() temas = util.carregar_temas() resultados = [] for tema in temas: palavras = util.carregar_palavras(tema) for palavra in palavras: if pesquisa.upper() in palavra.upper(): resultados.append('%s - %s'%(palavra, tema)) util.cabecalho('Resultados da Pesquisa', historico) if len(resultados) == 0: print('NÃO HÁ RESULTADOS!') else: for palavra in range(len(resultados)): print('%d - %s'%(palavra+1, resultados[palavra])) print() print() if not len(resultados) == 0: print('1 - Editar Palavra') print('2 - Apagar Palavra') print('3 - Voltar') opcao = input('Opção: ') while not util.eh_inteiro(opcao): print('INSIRA UM NÚMERO!') opcao = input('Opção: ') while len(resultados) == 0 and opcao == '1' or len(resultados) == 0 and opcao == '2': print('NÃO HÁ NENHUMA PALAVRA!') opcao = input('Opção: ') while not util.eh_inteiro(opcao): print('INSIRA UM NÚMERO!') opcao = input('Opção: ') while opcao != '1' and opcao != '2' and opcao != '3': print('INSIRA UMA OPÇÃO VÁLIDA!') opcao = input('Opção: ') while not util.eh_inteiro(opcao): print('INSIRA UM NÚMERO!') opcao = input('Opção: ') if opcao == '1': numero_palavra = input('Digite o numero da palavra para editar: ') while not util.eh_inteiro(numero_palavra): print('INSIRA UM NUMERO!') numero_palavra = input('Digite o numero da palavra para editar: ') while not (int(numero_palavra) in range(1, len(resultados)+1)): print('NÚMERO INVÁLIDO!') numero_palavra = input('Digite o numero da palavra para editar: ') while not util.eh_inteiro(numero_palavra): print('INSIRA UM NUMERO!') numero_palavra = input('Digite o numero da palavra para editar: ') palavra = resultados[int(numero_palavra)-1].split(' - ') opcao_editar_palavra(palavra[0], palavra[1], pesquisa)
def inicio(): util.clear() Temas_existentes = util.carregar_temas() util.cabecalho('Bem-vindo ao jogo da forca', ['']) print('Escolha o nível de jogo:') print('1 - Fácil') print('2 - Médio') print('3 - Difícil') escolha_de_dificuldade = input('Opção: ') numero_de_chances = 0 perda_de_pontos = 0 while escolha_de_dificuldade != '1' and escolha_de_dificuldade != '2' and escolha_de_dificuldade != '3': print('Opção inválida') escolha_de_dificuldade = int(input()) util.clear() if escolha_de_dificuldade == '1': numero_de_chances = 8 perda_de_pontos = 750 elif escolha_de_dificuldade == '2': numero_de_chances = 5 perda_de_pontos = 1200 elif escolha_de_dificuldade == '3': numero_de_chances = 3 perda_de_pontos = 2000 util.cabecalho('Bem-vindo ao jogo da forca', ['']) print('Escolha um tema: ') print() for tema in range(len(Temas_existentes)): print('%d - %s'%(tema+1, Temas_existentes[tema])) numero_tema = input('Numero do tema: ') while not util.eh_inteiro(numero_tema): print('INSIRA UM NÚMERO!') numero_tema = input('Numero do tema: ') while not (int(numero_tema) in range(1, len(Temas_existentes)+1)): print('INSIRA UM NÚMERO VALIDO!') numero_tema = input('Numero do tema: ') while not util.eh_inteiro(numero_tema): print('INSIRA UM NÚMERO!') numero_tema = input('Numero do tema: ') nome_tema = Temas_existentes[int(numero_tema) - 1] palavras = util.carregar_palavras(nome_tema) palavra_secreta = choice(palavras) jogo(palavra_secreta, numero_de_chances, perda_de_pontos)
def exibir_ranking(): util.clear() ranking = util.carregar_ranking() util.cabecalho('Ranking', ['']) for linha in ranking: print('%s'%(linha)) print() print('1 - Jogar Novamente') opcao = input('Opção: ') while opcao != '1': print('OPCÃO INVÁLIDA!') opcao = input('Opção: ') if opcao == '1': inicio()
def main(): util.clear() util.cabecalho('Bem-vindo ao jogo da forca', ['']) print('1 - Administração do jogo') print('2 - Jogar') print('3 - Sair') opcao = input('Opção: ') while opcao != '1' and opcao != '2' and opcao != '3': print('OPÇÃO INVÁLIDA') opcao = input('Opção: ') if opcao == '1': admin.options() if opcao == '2': jogo.inicio() if opcao == '3': util.clear() print('Até mais!')
def options(): util.clear() util.cabecalho(titulo, historico) print('----Opções----') print('1 - Listar temas') print('2 - Pesquisar Temas') print('3 - Pesquisar Palavra') print('4 - Voltar') opcao = input('Opção: ') while opcao != '1' and opcao != '2' and opcao != '3' and opcao != '4': print('OPÇÃO INVÁLIDA') opcao = input('Opção: ') if opcao == '1': historico.append('Temas') listar_temas() if opcao == '2': temas = util.carregar_temas() pesquisa = input('Nome do tema a pesquisar: ') resultados = [] for palavra in temas: if palavra.upper().find(pesquisa.upper()) >= 0: resultados.append(palavra) historico.append('Resultados da Pesquisa') resultado_pesquisa_tema(resultados) if opcao == '3': pesquisa = input('Palavra para pesquisar:') historico.append('Pesquisar Palavra') pesquisar_palavra(pesquisa) if opcao == '4': historico.pop() import main main.main()
def resultado_pesquisa_tema(resultados): util.clear() util.cabecalho('Pesquisa de temas', historico) if len(resultados) == 0: print('NÃO HÁ RESULTADOS!') else: for i in range(len(resultados)): print('%d - %s'%(i+1, resultados[i])) print() print() print('----Opções----') if not len(resultados) == 0: print('1 - Ver palavras de um tema') print('2 - Editar nome do tema') print('3 - Apagar tema') print('4 - Voltar') opcao = input('Opção: ') if opcao != '1' and opcao != '2' and opcao != '3' and opcao != '4': print('INSIRA UMA OPÇÃO VÁLIDA!') opcao = input('Opção: ') while len(resultados) == 0 and opcao == '1' or len(resultados) == 0 and opcao == '2' or len(resultados) == 0 and opcao == '3': print('NÃO HÁ NENHUM TEMA!') opcao = input('Opção: ') if opcao == '1': opcao_listar_palavras(resultados, origem='pesquisa') if opcao == '2': opcao_editar_nome_tema(resultados) resultado_pesquisa_tema(resultados) if opcao == '3': opcao_apagar_tema(resultados) resultado_pesquisa_tema(resultados) if opcao == '4': historico.pop() options()
def listar_palavras(tema, origem='listagem'): palavras = util.carregar_palavras(tema) util.clear() util.cabecalho(titulo, historico) if len(palavras) == 0: print('NÃO HÁ PALAVRAS CADASTRADAS NESTE TEMA') else: for count in range(len(palavras)): print('%d - %s'%(count+1, palavras[count])) print() print() print('----Opções----') print('1 - Adicionar Palavra') if not len(palavras) == 0: print('2 - Editar Palavra') print('3 - Apagar Palavra') print('4 - Voltar') opcao = input('Opção: ') while len(palavras) == 0 and opcao == '2' or len(palavras) == 0 and opcao == '3': print('NÃO HÁ NENHUMA PALAVRA!') opcao = input('Opção: ') while not (opcao != '1' or opcao != '2' or opcao != '3' or opcao != '4'): print('OPÇÃO INVÁLIDA!') opcao = int(input('Opção: ')) if opcao == '1': nova_palavra = input('Nova palavra: ') palavras.append(nova_palavra) arquivo_tema = util.carregar_arquivo('./arquivos/'+tema+'.txt', 'a') arquivo_tema.write(nova_palavra+'\n') arquivo_tema.close() listar_palavras(tema) if opcao == '2': palavra_selecionada = input('Digite o número da palavra a ser editada: ') while not util.eh_inteiro(palavra_selecionada): print('INSIRA UM NUḾERO!') palavra_selecionada = input('Digite o número da palavra a ser editada: ') while not (int(palavra_selecionada) in range(1, len(palavras) + 1)): print('OPÇÃO INVÁLIDA!') palavra_selecionada = int(input('Digite o número da palavra a ser editada: ')) while not util.eh_inteiro(palavra_selecionada): print('INSIRA UM NUḾERO!') palavra_selecionada = input('Digite o número da palavra a ser editada: ') palavras[int(palavra_selecionada) - 1] = input('Nova palavra: ') arquivo_tema = util.carregar_arquivo('./arquivos/'+tema+'.txt', 'w') for palavra in palavras: arquivo_tema.write(palavra+'\n') arquivo_tema.close() listar_palavras(tema) if opcao == '3': palavra_selecionada = input('Digite o número da palavra a ser apagada: ') while not util.eh_inteiro(palavra_selecionada): print('INSIRA UM NÚMERO!') palavra_selecionada = input('Digite o número da palavra a ser apagada: ') while not (int(palavra_selecionada) in range(1, len(palavras) + 1)): print('OPÇÃO INVÁLIDA!') palavra_selecionada = input('Digite o número da palavra a ser apagada: ') while not util.eh_inteiro(palavra_selecionada): print('INSIRA UM NÚMERO!') palavra_selecionada = input('Palavra a ser apagada: ') del palavras[int(palavra_selecionada) - 1] for palavra in palavras: arquivo_tema.write(palavra+'\n') arquivo_tema = util.carregar_arquivo('./arquivos/'+tema+'.txt', 'w') arquivo_tema.close() listar_palavras(tema) if opcao == '4': historico.pop() if origem == 'listagem': listar_temas() else: historico.pop() options()
def listar_temas(): util.clear() temas = util.carregar_temas() util.cabecalho(titulo, historico) if len(temas) == 0: print('NENHUM TEMA CADASTRADO!') else: for tema in range(len(temas)): print('%d - %s'%(tema+1, temas[tema])) print() print() print('----Opções----') if not len(temas) == 0: print('1 - Ver palavras de um tema') print('2 - Editar nome do tema') print('4 - Apagar tema') print('3 - Criar tema') print('5 - Voltar') opcao = input('Opção: ') while len(temas) == 0 and opcao == '1' or len(temas) == 0 and opcao == '2' or len(temas) == 0 and opcao == '4': print('NÃO HÁ NENHUM TEMA!') opcao = input('Opção: ') while opcao != '1' and opcao != '2' and opcao != '3' and opcao != '4' and opcao != '5': print('OPÇÃO INVÁLIDA') opcao = input('Opção: ') while len(temas) == 0 and opcao == '1' or len(temas) == 0 and opcao == '2' or len(temas) == 0 and opcao == '4': print('NÃO HÁ NENHUM TEMA!') opcao = input('Opção: ') if opcao == '1': opcao_listar_palavras(temas) if opcao == '2': opcao_editar_nome_tema(temas) listar_temas() if opcao == '3': nome = input('Nome do novo tema: ') teste = testar_tema(nome) while teste: print('Este tema já existe!') nome = input('Nome do novo tema: ') teste = testar_tema(nome) arquivo_tema = util.carregar_arquivo('./arquivos/temas.txt', 'a') arquivo_tema.write(nome+'\n') arquivo_tema.close() arquivo_tema = util.carregar_arquivo('./arquivos/'+nome+'.txt', 'w') arquivo_tema.close() historico.append(nome) temas.append(nome) listar_palavras(nome) if opcao == '4': opcao_apagar_tema(temas) listar_temas() if opcao == '5': historico.pop() options()
def jogo(palavra_secreta, numero_de_chances, perda_de_pontos): util.clear() pontuacao = 6000 mascara = [] for i in range(len(palavra_secreta)): mascara.append('-') acertou = False enforcou = False erros = 0 tentativas_restantes = numero_de_chances while(not acertou and not enforcou): util.clear() util.cabecalho('jogo da forca', ['']) print("Você tem %d tentetivas restantes!"%tentativas_restantes) print("Sua pontuação é %d"%pontuacao) for char in range(len(mascara)): print('%s'%(mascara[char]), end='') print() chute = input('Digite uma letra: ') while len(chute) > 1: print('INSIRA SOMENTE UMA LETRA!') chute = input('Digite uma letra: ') print() acertou = chute.upper() in palavra_secreta.upper() if acertou: for letra in range(len(palavra_secreta)): if (chute.upper() == palavra_secreta[letra].upper()): mascara[letra] = palavra_secreta[letra].upper() acertou = False else: print(" ".join(mascara)) print('Letra não existente na palavra! :-(') erros += 1 tentativas_restantes -= 1 pontuacao -= perda_de_pontos acertou = '-' not in mascara enforcou = erros == numero_de_chances if (acertou): util.clear() util.cabecalho('jogo da forca', ['']) print("Sua pontuação é %d"%pontuacao) for char in range(len(mascara)): print('%s'%(mascara[char]), end='') print() print('Você ganhouuuuuuuuu!!!') jogador = input("Qual o seu nome? ") resultado = jogador + ' - ' + str(pontuacao) util.cadastrar_ranking(resultado) elif (not acertou): print() print() print("|----- ") print("| | ") print("| O ") print("| /|\ Enforcado!!!") print("| | ") print("| / \ ") print("==========") print() print('A palavra era: %s'%(palavra_secreta)) print('1 - Exibir Ranking 2 - Jogar Novamente 3 - Sair') opcao = input('Opção: ') while opcao != '1' and opcao != '2' and opcao != '3': print('OPÇAO INVALIDA!') opcao = input('Opção: ') if opcao == '1': exibir_ranking() if opcao == '2': inicio() if opcao == '3': util.clear() print('Até mais!')