Jogo da Forca em Python – Aula Completa

Você sabe como construir um jogo da forca em Python? Nesta aula vamos aprender a lógica usada e construir o jogo do zero!

Para criar um jogo da forca em Python, você sorteia uma palavra de uma lista, mostra um traço para cada letra e pede que o jogador digite letras. A cada palpite, o programa revela as letras certas ou desconta uma tentativa nas erradas. Usando while, listas e a função random.choice(), dá para montar o jogo completo com poucas linhas.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: Nesta aula, o instrutor ensina a criar o jogo da forca em Python. Ele constrói a lógica básica de um jogo (um loop que roda até o jogador ganhar ou perder), mostra a palavra com underlines revelando as letras acertadas, pega a letra digitada pelo usuário (input), verifica os acertos e as chances restantes, e no fim sugere evoluir para uma interface gráfica (com Tkinter).

Neste vídeo (17 min):

  • 0:00 - O objetivo: criar o jogo da forca em Python.
  • 2:00 - A lógica básica de um jogo: um loop que roda até ganhar ou perder.
  • 6:00 - Mostrar a palavra com underlines, revelando as letras acertadas.
  • 8:00 - Pegar a letra digitada pelo usuário (input).
  • 10:00 - Verificar os acertos e as chances restantes.
  • 17:00 - Evoluir para uma interface gráfica (com Tkinter).

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala Impressionadores! Você já jogou o jogo da forca? É um jogo muito conhecido, mas você sabia que conseguimos reproduzir esse jogo dentro do Python?

Hoje eu vou te mostrar como isso é possível e você ainda vai aprender algumas estruturas importantes se ainda não souber.

O objetivo desse jogo é descobrir uma palavra escolhida.

Para isso, o usuário precisa escolher uma letra por vez para verificar se essa letra está contida na palavra.

Em caso positivo ela será revelada, caso contrário o usuário perde uma vida.

O jogo acabar quando o usuário perde todas as vidas ou acerta a palavra!

É um jogo bem simples, mas fazer isso no Python é interessante, pois você consegue aplicar a lógica de programação, na prática.

A lógica é simples, mas você tem que pensar em todos os passos para que o seu código funcione corretamente em todas as possibilidades.

Jogo da Forca

Para construir o jogo da forca só precisamos utilizar as ferramentas básicas de Python, não é necessário baixar nenhuma biblioteca.

Todo o jogo essencialmente é um looping infinito, por isso vamos usar a estrutura de repetição While.

Vamos precisar de dois If's, um If para quando o usuário perder e um If para quando o usuário ganhar, ambos os If’s encerram o jogo.

Exemplo:

Codigo
while True:

        if ganhou:

                 encerra o jogo

        if perdeu:

                 encerra o jogo

Para conseguir construir essa estrutura vamos ter que pensar efetivamente em como o jogo da forca funciona.

O primeiro parâmetro do jogo da forca é que existe uma palavra para ser adivinhada, então vamos acrescentar essa palavra em uma variável.

O segundo e terceiro passo é que temos que considerar as letras que o usuário já jogou e quantas chances ele tem para jogar.

Vamos criar também uma variável que vai receber verdadeiro ou falso dependendo do resultado do jogo -> ganhou = true -> perdeu = false, vamos iniciar essa variável que vai se chamar -> "ganhou" como false.

Codigo
Palavra = “python”

Letras_usuario = []

Chances = 7

Ganhou = false

while True:

        if ganhou:

                 encerra o jogo

        if perdeu:

                encerra o jogo

Quando estamos criando um jogo existem duas lógicas que temos que nos preocupar, uma delas é como o jogo vai ser organizado para funcionar como esperamos e a segunda é o que vamos mostrar para o usuário e o que o usuário vai inserir no jogo.

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python
Codigo
if ganhou:

    print(f"Parabéns, você ganhou. A palavra era: {palavra}")

else:

    print(f"Você perdeu! A palavra era: {palavra}")

Criando a lógica do jogo

Vamos criar um código que crie um espaço para representar cada letra da palavra que estiver na nossa variável “palavra”.

Codigo
for letra in palavra

Exemplo:

Se a palavra é Python o resultado será 6 espaços.

_ _ _ _ _ _

Por padrão o print vai deixar cada letra uma abaixo da outra na resposta, para corrigir isso acrescentamos nos parênteses do print o end, assim os espaços vão ficar um ao lado do outro.

No momento em que o usuário chutar uma letra correta, vamos substituir o espaço pela letra, caso contrário vamos colocar novamente o espaço.

Codigo
for letra in palavra

if letra.lower() in letras_usuario:

print(letra, end=” “)

else:

                 print("_", end=” “)

Exemplo:

Se o usuário chutou “t”, então:

_ _ T _ _ _

Feito isso, vamos criar a estrutura que vai pegar a informação do usuário.

Codigo
tentativa = input("Escolha uma letra para adivinhar: ")

Neste input o usuário consegue colocar uma letra, essa letra temos que adicionar na variável letras_usuario.

Codigo
tentativa = input("Escolha uma letra para adivinhar: ")

    letras_usuario.append(tentativa.lower())

Obs. Usamos o lower() para que as letras fiquem todas minúsculas.

Agora, se o usuário errar a letra, temos que tirar dele uma chance.

Codigo
palavra = "python"

letras_usuario = []

chances = 4

ganhou = False

    for letra in palavra:

        if letra.lower() in letras_usuario:

            print(letra, end=" ")

        else:

            print("_", end=" ")

    tentativa = input("Escolha uma letra para adivinhar: ")

    letras_usuario.append(tentativa.lower())

    if tentativa.lower() not in palavra.lower():

        chances -= 1

Se o usuário já gastou todas as chances então temos que parar o jogo, vamos construir essa lógica:

Codigo
if chances == 0:

        break

Feito isso, temos que analisar a seguinte situação, caso o usuário ganhe o jogo:

A situação em que ele ganha é quando todas as palavras que ele jogou estão contidas na nossa variável letras_usuario, ou seja, todas as letras da palavra Python, sendo a palavra que escolhemos para ser adivinhada, estão contidas na variável letras_usuario.

Como fazer esta verificação?

Aqui vamos aplicar a lógica contrária que já usamos, vamos iniciar dizendo que ele ganhou, ou seja, que a variável ganhou começa verdadeira.

Depois vamos verificar se alguma letra da palavra está faltando na variável letras_usuario então o resultado é falso e se todas estiverem o resultado é verdadeiro e o usuário ganhou o jogo.

Codigo
ganhou = True

    for letra in palavra:

        if letra.lower() not in letras_usuario:

            ganhou = False

    if chances == 0 or ganhou:

        break

Até aqui ele pode ou ganhar o jogo, ou esgotar suas chances.

Para melhorar o código vamos exibir para o usuário a cada tentativa a quantidade de chances que ele ainda tem:

Codigo
Resultado do código:

palavra = "python"

letras_usuario = []

chances = 4

ganhou = False

while True:

    # criar a nossa logica

    for letra in palavra:

        if letra.lower() in letras_usuario:

            print(letra, end=" ")

        else:

            print("_", end=" ")

    print(f"Você tem {chances} chances")

    tentativa = input("Escolha uma letra para adivinhar: ")

    letras_usuario.append(tentativa.lower())

    if tentativa.lower() not in palavra.lower():

        chances -= 1

    ganhou = True

    for letra in palavra:

        if letra.lower() not in letras_usuario:

            ganhou = False

    if chances == 0 or ganhou:

        break

if ganhou:

    print(f"Parabéns, você ganhou. A palavra era: {palavra}")

else:

    print(f"Você perdeu! A palavra era: {palavra}")

Você também pode abrir um novo arquivo e colocar a palavra que deve ser adivinhada nele, depois você deve apenas indicar no jogo a variável onde está a palavra.

Assim quem estiver jogando com você não vai ver a palavra no código, exemplo:

Crie um arquivo e escreva a variável:

Codigo
Palavra = “javascript”

No arquivo do jogo coloque:

Codigo
From palavraforca import palavra

A partir daqui você ainda pode evoluir mais e usar recursos como o CustomTkinter para fazer uma janela bonita para o usuário jogar ao invés de jogar no seu editor de código.

Perguntas frequentes

1. Como fazer um jogo da forca em Python?

Use random.choice() para sortear uma palavra de uma lista, mostre um traço por letra e peça palpites em um laço while. A cada letra, revele as posições corretas ou reduza as tentativas; o jogo termina quando a palavra é descoberta ou as tentativas acabam.

2. O que preciso saber para criar o jogo da forca?

Conceitos básicos de Python: variáveis, listas, laços (while e for), condicionais (if/else), entrada de dados com input() e a biblioteca random. Com isso já é possível montar a lógica completa do jogo do zero.

3. Como sortear uma palavra aleatória em Python?

Use o módulo random: crie uma lista de palavras e chame random.choice(lista), que devolve um item aleatório. Esse é o ponto de partida do jogo da forca, garantindo uma palavra diferente a cada partida.

4. Como contar as tentativas no jogo da forca?

Defina uma variável com o número de erros permitidos (por exemplo, 6) e diminua 1 a cada palpite errado. Verifique no laço while se as tentativas chegaram a zero para encerrar o jogo, indicando que o jogador perdeu.

Conclusão - Jogo da Forca em Python

Nesta aula ensinei como fazer o jogo da forca, este jogo é um jogo simples de se construir no Python, para ele não é necessário importar nenhuma biblioteca.

Porém, a medida que fazemos, conseguimos exercitar bem a lógica que deve ser aplicada para fazer o jogo rodar de forma correta, além de estruturas básicas que temos que treinar como o if, While, input, etc.

Você ainda pode continuar implementando o jogo construindo uma janela para ele.

Espero que tenham gostado! Até mais! Um abraço,

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?