python - 如何为刽子手游戏创建列表和测试
问题描述
所以现在我正在创建一个刽子手游戏。我是一个初学者程序员,我现在有点卡住了。
我需要为程序创建一个列表以从中挑选一个词,然后将该词用于刽子手游戏。另外我必须创建一个测试来检查玩家是否输了。任何帮助或建议将不胜感激!
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
解决方案
您是否尝试创建如下列表:
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))
推荐阅读
- dataflow - Azure Synapse Workspace = data flow debug error
- api - create a charge with Stripe and Delphi
- python - 如何在多个功能中最佳使用 numba?
- c++ - 数字文字到无符号类型的类型推导
- javascript - Ngrx "Observable" vs Ng Observable
- amazon-web-services - 使用 Buildspec.yml 将构建工件复制到 s3 存储桶
- firebase - 如何从具有唯一文档 ID 的 Firebase 中获取数据并将其存储到下面代码中提到的变量中以在 _profilename 中使用?
- mysql - 具有 Cloud MySQL 授权的 Google Cloud Function 失败([Errno 111] 连接被拒绝)
- node.js - 无法从本地网络访问 mDNS 服务器
- javascript - TypeError:无法读取未定义 Reactjs 的属性“标题”