Jogos de texto simples que você pode jogar na linha de comando são ótimos projetos para iniciantes.

Você está com vontade de jogar um jogo que você mesmo escreveu? Bem, você está no lugar certo. Hangman é um popular jogo de adivinhação de palavras e você pode criar sua própria versão com o mínimo de esforço.

Este jogo é um entretenimento perfeito, familiar de programas e séries populares de jogos de TV, como Wheel of Fortune, Letterbox e Party Time. E Python é uma linguagem conveniente para usar para construir um clone do Hangman.

Como jogar o jogo da forca

Hangman é um jogo bem conhecido onde um jogador pensa em uma palavra e o outro jogador tenta adivinhá-la sugerindo letras com um número fixo de palpites. Um jogador (neste caso o programa) apresenta uma sequência de traços representando cada letra da palavra, juntamente com um caractere como ponto de partida. O outro jogador (ou usuário) adivinha os personagens presentes na palavra, um a um.

Se a letra que eles adivinharem estiver na palavra de destino, o programa preencherá o traço com o caractere. Caso contrário, o jogador perde uma chance e o programa desenha um elemento de um boneco como um registro. Em um total de sete chances, se o usuário adivinhar a palavra corretamente, ele ganha o jogo. Caso contrário, o programa completa o desenho de um homem-palito.

instagram viewer

Você pode criar uma lista de suas palavras favoritas ou baixar uma como A lista de Mieliestronk com mais de 58.000 palavras em inglês. Você também pode explorar e criar outros jogos divertidos baseados em texto, como um jogo de perguntas interativo ou um jogo de aventura baseado em texto em Python.

Como construir o jogo da forca

O código-fonte deste jogo da Forca, junto com o arquivo de lista de palavras, está presente neste Repositório GitHub e é gratuito para usar.

Importar o aleatório módulo e definir uma função, get_random_word_from_wordlist(), para selecionar uma palavra aleatória do arquivo. O arquivo de texto pode conter substantivos comuns ou nomes de lugares, animais, filmes e muito mais, de acordo com sua preferência. Defina uma lista usando os colchetes retangulares ([]).

Use o com instrução para abrir o arquivo e passar o modo como 'r' indicando o modo somente leitura. Isso automaticamente se encarrega de fechar o arquivo no final do bloco mesmo em casos de erros. Se você visualizar o hangman_wordlist.txt arquivo, você notará que há uma palavra presente em cada linha, então o arquivo separa cada palavra com um caractere de nova linha.

Passe o caractere de escape para uma nova linha (\n) para o dividir() função para armazenar cada palavra na lista que você definiu anteriormente. Usar random.choice() para retornar uma palavra aleatória da lista.

import random
 
defget_random_word_from_wordlist():
wordlist = []
 
with open("hangman_wordlist.txt", 'r') as file:
wordlist = file.read().split("\n")
 
word = random.choice(wordlist)
return word

Em seguida, defina uma função, get_some_letters(), que toma como parâmetro a palavra selecionada aleatoriamente. Esta função exibirá uma sequência de traços em branco (_) e algumas letras para o usuário.

Definir lista vazia cartas para armazenar todos os caracteres presentes na palavra. Use o temperatura variável para armazenar uma string que contém o número de traços em branco igual ao comprimento da palavra. Usar lista() para converter a string em uma lista de caracteres e iterar sobre ela. Usar acrescentar() para adicionar o personagem à lista, se ainda não estiver presente.

Usar random.choice() para escolher um caractere aleatório que você vai apresentar ao usuário junto com os traços em branco. Iterar sobre os caracteres da palavra usando enumerar para acompanhar o índice de cada caractere.

Quando você encontrar o caractere selecionado aleatoriamente, substitua o traço em branco por ele. Usar juntar() para unificar a lista de caracteres em uma string completa e retorná-la.

defget_some_letters(word):
letters = []
temp = '_' * len(word)
 
for char in list(word):
ifchar not in letters:
letters.append(char)
 
character = random.choice(letters)
 
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
 
return temp

Definir uma função draw_hangman() que leva o número de chances como parâmetro. Esta função fornece uma figura do homem enforcado. Como o número de chances continua diminuindo, também diminuem as chances de sobrevivência. Quando esgotada, a figura está completa e o jogo termina.

defdraw_hangman(chances):
if chances == 6:
print("________ ")
print("| | ")
print("| ")
print("| ")
print("| ")
print("| ")
elif chances == 5:
print("________ ")
print("| | ")
print("| 0 ")
print("| ")
print("| ")
print("| ")
elif chances == 4:
print("________ ")
print("| | ")
print("| 0 ")
print("| / ")
print("| ")
print("| ")
elif chances == 3:
print("________ ")
print("| | ")
print("| 0 ")
print("| /| ")
print("| ")
print("| ")
elif chances == 2:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| ")
print("| ")
elif chances == 1:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / ")
print("| ")
elif chances == 0:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / \ ")
print("| ")

Declarar uma função, start_hangman_game(), que define a lógica principal do programa. Obtenha uma palavra aleatória chamando o get_random_word_from_wordlist() função e obter a sequência para exibir ao usuário usando o get_some_letters() função.

Defina o número de chances para sete e inicialize uma variável, encontrado, como falso. Você definirá isso como verdadeiro se a letra adivinhada estiver presente na palavra.

defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False

Declare um loop que termine quando o usuário adivinhar a palavra corretamente ou ficar sem chances. Comece o jogo mostrando a sequência, o número de letras da palavra e as chances restantes. Peça ao usuário para adivinhar uma letra e recebê-la usando o entrada() função. Valide a entrada do usuário verificando o comprimento do caractere e se é um alfabeto.

whileTrue:
if chances == 0:
print(f"Sorry! You Lost, the word was: {word}")
print("Better luck next time")
break
 
print(" Guess the word ")
print(temp, end='')
print(f"\t(word has {len(word)} letters)")
print(f"Chances left: {chances}")
character = input("Enter the character you think the word may have: ")
 
iflen(character) > 1 ornotcharacter.isalpha():
print("Please enter a single alphabet only")
continue

Se a entrada for válida, verifique se o caractere está presente na palavra e substitua-o usando o processo visto anteriormente e atualize o valor de encontrado. Se o personagem não estiver presente, diminua o número de chances. Se presente, retorne o valor de encontrado para o valor inicial falso.

Se não houver traços em branco restantes, exiba que o usuário ganhou junto com o número de palpites dados, caso contrário, exiba o gráfico do carrasco de acordo com o número de chances restantes.

else:
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
found = True
 
if found:
found = False
else:
chances -= 1
 
if'_' not in temp:
print(f"\nYou Won! The word was: {word}")
print(f"You got it in {7 - chances} guess")
break
else:
draw_hangman(chances)
 
print()

Defina uma função para jogar o jogo Hangman. Se o usuário inserir sim, chame o start_hangman_game() caso contrário, saia do jogo com a mensagem apropriada. Em caso de entrada inválida, peça ao usuário para entrar novamente.

print(" Welcome to the Hangman Game ")
 
whileTrue:
choice = input("Do you wanna play hangman? (yes/no): ")
 
if'yes'in choice.lower():
start_hangman_game()
elif'no'in choice.lower():
print('Quitting the game...')
break
else:
print("Please enter a valid choice.")
 
print("\n")

A saída do jogo da forca

Você verá a seguinte saída se vencer o jogo:

Você verá a seguinte saída se perder o jogo:

Use Python para criar jogos

Você pode usar o Python para criar jogos de linha de comando, bem como jogos gráficos. Alguns jogos interessantes de linha de comando que você pode criar usando Python incluem o jogo de adivinhação de números, o jogo Magic 8 Ball, Mad Libs, Rock/Paper/Scissors e um jogo de aventura de texto.

Alguns jogos gráficos divertidos que você pode construir com python incluem Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. A melhor parte desses jogos é que você pode criá-los apenas com a Python Standard Library.