如何允许用户在刽子手游戏中添加单词

时间:2014-10-16 17:34:42

标签: python python-3.x

我正在用Python 3.x创建一个刽子手游戏。我已经创建了游戏,直到它可以从单词数组中随机选择一个单词,并允许用户使用工作生命系统进行猜测。但是我不清楚如何让用户能够将自己的一组单词添加到游戏中。我看过其他类似的问题,但没有用。

以下是代码:

#Hangman Game

#Asks the user to input their name
name = input("What is your name?")

#This prints the first statement, welcoming the user to the hangman game
print("Hello", name, ".Welcome to BlackHamed's Game of Hangman!")
print("")

#Imports the random module
import random

#These are the words in an array
words = ("python", "computer", "processor")
#This line of code, makes the program choose a random word to use for the game
word = random.choice(words)
#This is the print statement which indicates to the user how long the word is
print("The word you need to guess is", len(word), "letters long. Let's Get Started!")


#This is the 'Lives' system in the game.
lives = 6

if lives == 6:
print("You have 6 lives left.")
if lives == 5:
print("You have 5 lives left.")
if lives == 4:
print("Your have 4 lives left.")
if lives == 3:
print("You have 3 lives left.")
if lives == 2:
print("Your have 2 lives left.")
if lives == 1:
print("You have 1 life left.")

correct_guesses = 0
#This is the empty list where the guessed letters are inputted
Guessed_Letters=[]

while lives > 0:
letter = input ("Guess a letter:")
if letter not in Guessed_Letters:
    Guessed_Letters.append(letter)

    #If the letter is in the word, the program adds 1 point to correct_guesses and outputs a message
if letter in word:
    correct_guesses += 1
    print("Correct. This letter is in the word")
    print(letter)
    print("Letters Already Guessed:", Guessed_Letters)
    print(letter in word)
    #If the letter guessed is not in the word, the program minuses 1 from the lives and outputs a message    
else:
    lives -= 1
    print("Incorrect. This letter is not in the word. You have lost a life. You have", lives, "lives left.")
    print("_")
    print("Letters Already Guessed:", Guessed_Letters)
    #If the number of correct guesses is equal to the length of the word:
    #An output message congratulating the user is displayed, their score is displayed and the 'while' loop is broken      
if correct_guesses == len(word):
    print("Well done, you have got the correct word, which was", word)
    print("SCORE:", correct_guesses)
    break
    #If the number of lives is equal to 0:
    #An output message saying the user has lost and their score is displayed
else:
    if lives == 0:
        print("You have lost the game. The word is", word)
        print("SCORE:", correct_guesses)
#If an letter is inputted twice, the program only displays this message, and doesn't add/take any correct guesses/lives       
else:
    print("You have already guessed that letter, guess a letter different to this one.")

有人可以帮我解决一下如何写出我要添加的新功能的代码及其工作原理吗?

2 个答案:

答案 0 :(得分:1)

我这样做的方法是让程序加载文件中的单词列表。你可以有一个文件" words.txt"在与脚本相同的文件夹中,用户可以使用任何文本编辑器对其进行修改。

也许你可以有一个可选的命令行参数来告诉程序使用不同的文件。

这是读取文件的基本代码,假设每行有1个单词。

with open('words.txt','r') as f:
    words =  f.read().split()

编辑 - 这是带命令行选项的版本:

import sys, os
fname = 'words.txt'
if sys.argv[1:]:
    if os.path.isfile(sys.argv[1]):
        fname = sys.argv[1] 
with open(fname,'r') as f:
    words =  f.read().split() 

答案 1 :(得分:0)

这取决于你希望它如何工作。 您可以在游戏开始时询问用户是否想要播放,或者添加新单词,然后您只需要将新单词添加到列表中

word=input()
words.append(word)

然后你也可以询问用户是想继续还是玩。 请注意,这些单词仅在此会话中可用。如果你想要更多的东西,你必须使用文件I / O.