首页 > 解决方案 > 如何为刽子手游戏创建列表和测试

问题描述

所以现在我正在创建一个刽子手游戏。我是一个初学者程序员,我现在有点卡住了。

我需要为程序创建一个列表以从中挑选一个词,然后将该词用于刽子手游戏。另外我必须创建一个测试来检查玩家是否输了。任何帮助或建议将不胜感激!

def hangman(secretWord):
        lettersGuessed = []
        availableLetters = list("abcdefghijklmnopqrstuvwxyz")
        mistakes = 8
        while mistakes > 0:
            if wordFound(secretWord, lettersGuessed):
                print("You figured it out!")
                break
            print(displayWord(secretWord, lettersGuessed))
            print("Available letters:", " ".join(availableLetters))
            print("You have", mistakes, "mistakes left")
            guess = input("guess letter: ")
            if guess.lower() in availableLetters:
                availableLetters.remove(guess)
                lettersGuessed.append(guess)
                if guess in secretWord:
                    print("Good Guess!")
                else:
                    mistakes -= 1
                    print("Bad guess.")
            else:
                print("You already guessed that one")
        #Create a test to see if player lost.
        #print a message if the player lost.

    def displayWord(secretWord, lettersGuessed):
        word = []
        for i in secretWord:
            if i in lettersGuessed:
                word.append(i)
            else:
                word.append("_")
        return(" ".join(word))

    def wordFound(secretWord, lettersGuessed):
        for i in secretWord:
            if i not in lettersGuessed:
                return False
        return True

标签: pythonpython-3.x

解决方案


您是否尝试创建如下列表:

list1 = ['word1', 'word2', 'word3', 'word4']

然后选择随机词:

random.randint(1, 10)

或者阅读带有单词的 txt,然后选择一个随机单词:

# -*- coding: utf-8 -*-

import random

with open('somefile.txt', 'r') as f:
    list1 = [i.rstrip() for i in f.readlines()]

word = random.choice(list1)

默认.txt:

worda
wordb
wordc
wordd

对于测试,您可以简单地使用错误变量:

if mistakes == 0:
    print("You lost, the word was {0}".format(secretWord))

推荐阅读