Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Criar um jogo de forca usando palavras dentro de uma lista = []

Amigos, preciso de uma luz... eu quero fazer um Jogo de Forca com a lista dentro do script utilizando a função .choice(), conforme abaixo. Mas não consigo montar o While. Alguém pode me ajudar?

from random import choice

print('#' * 30) print(' VAMOS JOGAR FORCA?') print('#' * 30)

lista = ['banana', 'morango', 'abacaxi', 'caqui']

palavra_secreta = choice(lista).upper().strip()

letras_acertadas = ['' for letra in palavrasecreta]

print('Olá, sou seu computador... vamos jogar forca?\n')

print('Uma dica! Só vou pensar em nomes de frutas ;)\n')

print(letras_acertadas)

acertou = False

letra = letras_acertadas

while not acertou: jogador = str(input('Qual é o seu palpite? ')).upper().strip() if jogador == letra: .... #não consigo prosseguir daqui

3 respostas
solução!
from random import choice

print('#' * 30)
print(' VAMOS JOGAR FORCA?')
print('#' * 30)

lista = ['banana', 'morango', 'abacaxi', 'caqui']

palavra_secreta = choice(lista).upper().strip()

letras_acertadas = ['' for letra in palavra_secreta]

print('Olá, sou seu computador... vamos jogar forca?\n')

print('Uma dica! Só vou pensar em nomes de frutas ;)\n')

print(letras_acertadas)

#Cria uma varíavel reposta pois a palavra secreta será transformada em list
respota = palavra_secreta
palavra_secreta = list(palavra_secreta)

#Cria um lista com as letras digitadas
letras_digitadas = []

while True:
    letra = input('Digite uma letra:').upper()



    for i in palavra_secreta:
        if i == letra:
            #pega o index da letra em palavra secreta
            index = palavra_secreta.index(letra)
            letras_acertadas[index] = letra #coloca a letra no mesmo indica em letras_acertadas
            #troca a letra em palavra_secreta
            palavra_secreta[index] = 0

    print(letras_acertadas)


    #Avisa que a letra já foi digitada
    if letra in letras_digitadas:
        print("Esta letra já foi digitada!")


    #Verifica se a palavra já foi completada
    palavra_valida = ''
    for i in letras_acertadas:
        palavra_valida+=i


    #Para o loop
    if respota == palavra_valida:
        break


Tentei aqui, e deu certo!

Obrigada, João! Funcionou aqui certinho... eu sou muito iniciante e não consegui pegar muito bem o final da Parte 2. O raciocínio que você usou foi o Lists Comprehensions? Eu preciso fazer mais atividades pra aprender, de fato, essa parte.

Provavelmente da para fazer isso de uma maneira mais clean, algo que eu n consegui (sry). Respondendo a tua pergunta, não, eu só usei o os métodos que cada tipo de dado tem (lembrando que tudo no Python é um objeto, ou seja, uma variável é um objeto). Lembrando que, se vc usar dir(objeto) e help(help) no cmd do python, o primeiro mostra todos os métodos possíveis daquele objeto e help mostra com mais detalhes, isso ajuda MUITO MESMO Ex:

    x = 'algo'

    dir(x)

    help(x)