1 Star 0 Fork 0

ChrisEighteen18/pySimpleGamePractice

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
hangman.py 4.18 KB
一键复制 编辑 原始数据 按行查看 历史
# 火柴人猜单词游戏
import random
# ASCII码构成的图片资源
HANGMANPICS = ['''
+---+
| |
|
|
|
|
=========''', '''
+---+
| |
O |
|
|
|
=========''', '''
+---+
| |
O |
| |
|
|
=========''', '''
+---+
| |
O |
/| |
|
|
=========''', '''
+---+
| |
O |
/|\\ |
|
|
=========''', '''
+---+
| |
O |
/|\\ |
/ |
|
=========''', '''
+---+
| |
O |
/|\\ |
/ \\ |
|
=========''']
# words 的 字典方式进行增加单词丰富性
words = {'Colors': '''red orange yellow green blue indigo violet white black
brown'''.split(),
'Shapes': '''square triangle rectangle circle ellipse rhombus trapezoid
chevron pentagon hexagon septagon octagon'''.split(),
'Fruits': '''apple orange lemon lime pear watermelon grape grapefruit cherry
banana cantaloupe mango strawberry tomato'''.split(),
'Animals': '''bat bear beaver cat cougar crab deer dog donkey duck eagle fish
frog goat leech lion lizard monkey moose mouse otter owl panda python rabbit
rat shark sheep skunk squid tiger turkey turtle weasel whale wolf wombat
zebra'''.split()}
# 随机生成一个单词
def getRandomWord():
style = random.choice(list(words.keys()))
index = random.randint(0, len(words) - 1)
return [style,words[style][index]]
# 展示游戏面板:显示当前所猜到的字母
def showPlayBroad(errorLetter, correctLetter, guessWord):
# 最多七次机会去猜对答案
if len(errorLetter) <= len(HANGMANPICS)-1:
print(HANGMANPICS[len(errorLetter)])
# 打印错误的字母
print("ERROR LETTER:", end=' ')
for i in range(len(errorLetter)):
print(errorLetter[i], end=' ')
print()
blank = '_' * len(guessWord)
# 打印现在已经猜的代码
print("Take a guess")
for i in range(len(guessWord)):
if guessWord[i] in correctLetter:
# 刷新blank游戏面板
blank = blank[:i] + guessWord[i] + blank[i + 1:]
print(blank)
# 获取输入的字母
def getGuessLetter(alreadyGuess):
while True:
print("Guess:", end=" ")
guess = input().lower()
# 条件判断只能输入
if len(guess) > 1:
print("Please enter a letter!")
elif guess not in "qwertyuioplkjhgfdsazxcvbnm":
print("It is not English LETTER!")
elif guess in alreadyGuess:
print("You have guessed this letter")
else:
return guess
# 是否在玩一次
def isPlayAgain():
print("Would u play again?")
answer = input().lower()
return answer.startswith('y')
"""
正式开始游戏
"""
if __name__ == '__main__':
# 多返回,对应下标
secretStyle,secretWord = getRandomWord()
alreadyGuess = ''
errorGuess = ''
correctGuess = ''
while True:
print("the style is {}".format(secretStyle))
# 展示画板
showPlayBroad(errorGuess, correctGuess, secretWord)
guess = getGuessLetter(alreadyGuess)
alreadyGuess = alreadyGuess + guess
if guess in secretWord:
correctGuess = correctGuess + guess
else:
errorGuess = errorGuess + guess
if correctGuess == secretWord:
showPlayBroad(errorGuess, correctGuess, secretWord)
print("Congratulations~ Guess Well")
if isPlayAgain():
secretStyle,secretWord = getRandomWord()
alreadyGuess = ''
errorGuess = ''
correctGuess = ''
else:
print("Ok~ See u next time")
break
elif len(alreadyGuess) >= len(HANGMANPICS):
showPlayBroad(errorGuess, correctGuess, secretWord)
print("Oh it is over, the secretWord is {}".format(secretWord))
if isPlayAgain():
secretStyle,secretWord = getRandomWord()
alreadyGuess = ''
errorGuess = ''
correctGuess = ''
else:
print("Ok~ See u next time")
break
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/ChrisEighteen18/py-simple-game-practice.git
git@gitee.com:ChrisEighteen18/py-simple-game-practice.git
ChrisEighteen18
py-simple-game-practice
pySimpleGamePractice
master

搜索帮助