📜  Python中的刽子手游戏

📅  最后修改于: 2022-05-13 01:55:19.665000             🧑  作者: Mango

Python中的刽子手游戏

刽子手是一个文字游戏,电脑会从字典中随机选择一个单词,玩家必须在给定的回合数内正确猜出它。要猜的单词由一排星星表示。如果猜测的字母是单词,脚本将自动放置到正确的位置。

这是代码words.txt中使用的文本文件,其中包含50,000个英文单词。

需要的模块:

import random

下面是实现:

# Python program to implement Hangman game
  
# Importing random module
import random
  
# Function to randomly select
# a word from dictionary
def get_word():
      
    # Path to the text file
    with open('/Users/Admin/Desktop/words.txt', 'r') as f:
          
        # Reads each word after splitting
        words1 = f.read().splitlines()
      
    # Returns any random word    
    return random.choice(words1)
  
myword = get_word()
  
# Function prints row of
# stars in place of words
for i in myword:
      
    print("*", end = " ")
      
# Calculating length of word
l = len(myword)
print("\nWord has %d letters" %l)
  
# Check if entered letter is correct
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
  
# Main Game function
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: ")
          
        # Decrementing turn
        # after every guess
        turns -= 1
          
        # Print turns left
        print("Turns left", turns)
          
        # If letter is already guessed
        if guess1 in your_word:
            print("You already guessed")
        elif len(guess1) == 1:
              
            # Appending the letters
            # on their place
            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)
  
# Driver Code
game()

输出 :

* * * * * 
Word has 5 letters
Total turns:  11

Enter your guess: a
Turns left 10
**********

Enter your guess: i
Turns left 9
i
**i**i****

Enter your guess: s
Turns left 8
s
**i**i**ss

Enter your guess: r
Turns left 7
**i**i**ss

Enter your guess: h
Turns left 6
**i**i**ss

Enter your guess: e
Turns left 5
e
**i**i*ess

Enter your guess: o
Turns left 4
**i**i*ess

Enter your guess: u
Turns left 3
u
*ui**i*ess

Enter your guess: t
Turns left 2
t
*ui*ti*ess

Enter your guess: n
Turns left 1
n
*ui*tiness

Enter your guess: l
Turns left 0
l
*uiltiness

Word is:
guiltiness