Python中的刽子手游戏

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

null

猜单词的规则:

  1. 一次输入一个字母。
  2. 不要重复使用字母。
  3. 每猜一次,圈数就会减少。

这是代码中使用的文本文件 话。txt ,包含50000个英语单词。

所需模块:

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 ( "Word 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
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享