hangman

# words.py 使用pickle永久性存储数据

import pickle

filename = 'words.pk'

data = ['cat', 'dog', 'perro', 'gato', 'horse', 'elephant', 'mono']

with open(filename, 'wb') as f:
pickle.dump(data, f)
# hangman.py 猜词游戏

# 使用pickle导入数据
import pickle
# 使用random.choice函数在序列中随机选择
import random def hangman(word): # 传入一个参数(word)
# 错误数量
wrong = 0
# 要画的步骤
stages = ["",
"______ ",
"| | ",
"| | ",
"| 0 ",
"| /|\ ",
"| / \ ",
"| ",
]
# 将词转换为一个列表
rletters = list(word)
# 生成一个下划线的待猜列表
board = ["_"] * len(word)
# 未赢
win = False
print('Welcome to Hangman') # 如果画还没画完
while wrong < len(stages) - 1:
print('\n')
# 猜一个字母
msg = 'Guess a letter: '
char = input(msg)
# 如果字母在列表中
if char in rletters:
# 将列表中的字母剔除('$'),并在待猜列表中添加字母
cind = rletters.index(char)
board[cind] = char
rletters[cind] = '$'
# 如果字母不在列表中
else:
# 错误+1
wrong += 1
# 显示待猜列表
print('word: ' + (" ".join(board)))
# 打印图画
e = wrong + 1
print('\n'.join(stages[0:e]))
# 如果待猜列表中以及没有下划线了,赢了
if '_' not in board:
print('You win!')
print(' '.join(board))
win = True
break
# 如果输了
if not win:
print('You lose! It was {}'.format(word)) def random_word(filename='words.pk'):
with open(filename, 'rb') as f:
data = pickle.load(f)
return random.choice(data) if __name__ == '__main__':
while True:
hangman(random_word())
flag = input('Do you want to continue?(Y/N) ')
if flag.lower() not in ['y', 'yes']:
break

最新文章

  1. softwareTesting_work1
  2. 禁用visual studio实时调试器
  3. Crt单元
  4. 转!!java中Object转String
  5. GET与POST在什么情况下使用
  6. 配置IIS服务器,APK文件下载
  7. Android开发之ContentProvider(内容提供者)
  8. NSIS:制作软件升级安装包
  9. python基础---pymsql
  10. Android + HTML5 混合开发
  11. linux系统文件系统重要知识介绍
  12. linux常用命令:创建文件和文件夹
  13. Python+Selenium 自动化实现实例-处理分页(pagination)
  14. Thymeleaf模板布局
  15. 【JavaScript】获取当前页的URL与window.location.href
  16. SQL之分组排序取top n
  17. BAT for 循环
  18. Ubuntu 10.04 分辨率调整
  19. react-router 4.0版本使用笔记
  20. bzoj2516 电梯

热门文章

  1. android app 架构设计01
  2. Android之UtilsRequesServicetHelp工具类
  3. linux下的oom调试笔记【原创】
  4. 09.ws复杂数据类型数据传输
  5. JAVA 常用集合接口List、Set、Map总结
  6. Windows环境下使用强大的wget工具
  7. 利用Aspose.Cells导出Datatable数据
  8. 【转】PowerDesigner物理数据表生成C#实体类Model
  9. Visual Studio蛋疼问题解决(2)
  10. P1304 哥德巴赫猜想