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:
while True:
if ganhou:
encerra o jogo
if perdeu:
encerra o jogoPara 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.
Palavra = “python”
Letras_usuario = []
Chances = 7
Ganhou = false
while True:
if ganhou:
encerra o jogo
if perdeu:
encerra o jogoQuando 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.
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”.
for letra in palavraExemplo:
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.
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.
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.
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.
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 -= 1Se o usuário já gastou todas as chances então temos que parar o jogo, vamos construir essa lógica:
if chances == 0:
breakFeito 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.
ganhou = True
for letra in palavra:
if letra.lower() not in letras_usuario:
ganhou = False
if chances == 0 or ganhou:
breakAté 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:
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:
Palavra = “javascript”No arquivo do jogo coloque:
From palavraforca import palavraA 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!


