Hangman é um jogo de palavras em que o computador seleciona aleatoriamente uma palavra do dicionário e o jogador deve adivinhá-la corretamente em determinado número de jogadas. A palavra a ser adivinhada é representada por uma fileira de estrelas. Se a letra adivinhada estiver presente em palavra, o script será automaticamente colocado nos locais corretos.

Regras para adivinhar a palavra:

  1. Insira uma única letra de uma vez.
  2. Não use letras repetidas.
  3. As curvas serão diminuídas após cada tentativa.

Este é o arquivo de texto usado dentro do código words.txt , que contém 50.000 palavras em inglês.

Módulo necessário:

importar aleatório

Abaixo está a implementação:



  
import random 
def get_word(): 
      
    
    with open('/Users/Admin/Desktop/words.txt', 'r') as f: 
        
        words1 = f.read().splitlines() 
      
    
    return random.choice(words1) 
  
myword = get_word() 
for i in myword: 
      
    print("*", end = " ") 
      
l = len(myword) 
print("\nWord has %d letters" %l) 
def check(myword, your_word, guess1): 
    status = '' 
    matches = 0
      
    for letter in myword: 
        if letter in your_word: 
            status += letter 
        else: 
            status += '*'
        if letter == guess1: 
            matches += 1
              
    if matches > 1: 
        print(matches, guess1) 
          
    elif matches == 1: 
        print(guess1) 
    return status 
def game(): 
    guess = 0
    guessed = False
    your_word = [] 
    turns = len(myword) + 1
    turns1 = turns 
      
    print("Total turns: ", turns) 
    while guess < turns1: 
        guess1 = input("Enter your guess: ") 
        
      turns -= 1
        
        print("Turns left", turns) 
        
        if guess1 in your_word: 
            print("You already guessed") 
        elif len(guess1) == 1: 
                    your_word.append(guess1) 
            result = check(myword, your_word, guess1) 
                if result == myword: 
                guessed = True
                print("You won " + name) 
                print(myword) 
            else: 
                print(result) 
        else: 
            print("Invalid entry") 
        guess += 1
    if guess == turns1: 
        print("Word is:") 
        print(myword) 
game() 

Resultado :

* * * * *
Palavra tem 5 letras
Total de voltas: 11
Digite sua estimativa: a
Vira à esquerda 10
**********
Digite seu palpite: i
Vira à esquerda 9
Eu
** i ** i ****
Digite seu palpite: s
Vira à esquerda 8
s
** i ** i ** ss
Digite sua estimativa: r
Vira à esquerda 7
** i ** i ** ss
Digite sua estimativa: h
Vira à esquerda 6
** i ** i ** ss
Digite sua estimativa: e
Vira à esquerda 5
e
** i ** i * ess
Digite seu palpite: o
Vira à esquerda 4
** i ** i * ess
Digite seu palpite: u
Vira à esquerda 3
você
* ui ** i * ess
Digite sua estimativa: t
Vira à esquerda 2
t
* ui * ti * ess
Digite sua estimativa: n
Vira à esquerda 1
n
* ui * tiness
Digite sua estimativa: l
Vira à esquerda 0
eu
* uiltiness
Palavra é:
culpa