hangman

  1. # words.py 使用pickle永久性存储数据
  2.  
  3. import pickle
  4.  
  5. filename = 'words.pk'
  6.  
  7. data = ['cat', 'dog', 'perro', 'gato', 'horse', 'elephant', 'mono']
  8.  
  9. with open(filename, 'wb') as f:
  10. pickle.dump(data, f)
  1. # hangman.py 猜词游戏
  2.  
  3. # 使用pickle导入数据
  4. import pickle
  5. # 使用random.choice函数在序列中随机选择
  6. import random
  7.  
  8. def hangman(word): # 传入一个参数(word)
  9. # 错误数量
  10. wrong = 0
  11. # 要画的步骤
  12. stages = ["",
  13. "______ ",
  14. "| | ",
  15. "| | ",
  16. "| 0 ",
  17. "| /|\ ",
  18. "| / \ ",
  19. "| ",
  20. ]
  21. # 将词转换为一个列表
  22. rletters = list(word)
  23. # 生成一个下划线的待猜列表
  24. board = ["_"] * len(word)
  25. # 未赢
  26. win = False
  27. print('Welcome to Hangman')
  28.  
  29. # 如果画还没画完
  30. while wrong < len(stages) - 1:
  31. print('\n')
  32. # 猜一个字母
  33. msg = 'Guess a letter: '
  34. char = input(msg)
  35. # 如果字母在列表中
  36. if char in rletters:
  37. # 将列表中的字母剔除('$'),并在待猜列表中添加字母
  38. cind = rletters.index(char)
  39. board[cind] = char
  40. rletters[cind] = '$'
  41. # 如果字母不在列表中
  42. else:
  43. # 错误+1
  44. wrong += 1
  45. # 显示待猜列表
  46. print('word: ' + (" ".join(board)))
  47. # 打印图画
  48. e = wrong + 1
  49. print('\n'.join(stages[0:e]))
  50. # 如果待猜列表中以及没有下划线了,赢了
  51. if '_' not in board:
  52. print('You win!')
  53. print(' '.join(board))
  54. win = True
  55. break
  56. # 如果输了
  57. if not win:
  58. print('You lose! It was {}'.format(word))
  59.  
  60. def random_word(filename='words.pk'):
  61. with open(filename, 'rb') as f:
  62. data = pickle.load(f)
  63. return random.choice(data)
  64.  
  65. if __name__ == '__main__':
  66. while True:
  67. hangman(random_word())
  68. flag = input('Do you want to continue?(Y/N) ')
  69. if flag.lower() not in ['y', 'yes']:
  70. break

Python hangman小游戏的更多相关文章

  1. 12岁的少年教你用Python做小游戏

    首页 资讯 文章 频道 资源 小组 相亲 登录 注册       首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...

  2. python 金币小游戏

    我最近用python的pygame做了一个金币小游戏 游戏规则:移动挡板接住金币 游戏截图: 代码如下: import pygame.freetype import sys import random ...

  3. python 打字小游戏

    最近随便用python的pygame编了这个打字小游戏 只要有字母调到窗口底部就结束 上代码: import pygame.freetype import sys import random pyga ...

  4. Python 实现 Hangman 小游戏

    Hangman--游戏简介--> 百度百科 打印Hangman def printHangman(N): # 第一行 print("\t____") # 第二行 print( ...

  5. python学习 小游戏

    基于python3.4 while循环 #!/usr/bin/python3 #-*- coding=utf-8 -*- import random import sys import os luck ...

  6. Python——项目-小游戏

    开始我们的项目 飞机大战 1 项目的初体验 以及前期准备 游戏初体验画面 验证一下本地第三方包有没有导入 python3 -m pygame.examples.aliens 如果没有出现游戏画面请先安 ...

  7. Python——项目-小游戏2-动画绘制

    实现游戏循环还有事件的监听 在上一讲中 你需要完成这样的这样的效果, 如果你还没有完成,请不要继续往下阅读!!切记切记切记.,重要的事情说三遍 我们来看一下什么是游戏循环 所谓的游戏循环很好的理解 就 ...

  8. 把川普射上太阳—如何用python制作小游戏

    1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装. Windows环境下打开Cmd(开始—运行—CMD),苹果系统 ...

  9. python做小游戏——做个马里奥分分钟解决

    一.前言 嗨喽,大家好呀!这里是小熊猫 在你的童年记忆里,是否有一个蹦跳.顶蘑菇的小人已经被遗忘? 马里奥是靠吃蘑菇成长,闻名世界的超级巨星.特征是大鼻子.头戴帽子.身穿背带工作服.还留着胡子.帽子加 ...

随机推荐

  1. Anton and Letters

    Anton and Letters time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  2. DexClassLoader和PathClassLoader类载入机制

    0x00 在DexClassLoader和PathClassLoader载入Dex流程一文中,我们分析了dex文件怎样形成了DexFile结构体.本文中解说类载入机制,实际上就是生成ClassObje ...

  3. javascript的==和===,以及if(xxx)总结

    转载请注明 本文出自:http://blog.csdn.net/nancle 首先说==和=== 首先说明一个非常特殊的值NaN, typeof(Nav)得到'number',可是NaN不等于不论什么 ...

  4. hdoj--1533--Going Home(KM)

    Going Home Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  5. redis配置文件参数详解

    配置文件参数说明: 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时,Redis默认会把pi ...

  6. 给统计人讲Python(1)_科学计算库-Numpy

    本地代码是.ipynb格式的转换到博客上很麻烦,这里展示部分代码,了解更多可以查看我的git-hub:https://github.com/Yangami/Python-for-Statisticia ...

  7. Polyfill 与 Shim

    Polyfill 与 Shim polyfill 的概念是 Remy Sharp 在2010年提出的. polyfill,或 polyfiller ,表示为开发人员提供旧浏览器没有原生支持的较新功能的 ...

  8. 前端之HEML

    HTML介绍 Web服务本质   import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen ...

  9. WPF下DataGrid的简单应用

    Dim dt As New DataTable() '------------------- dt.Columns.Add(New DataColumn("名称")) dt.Col ...

  10. 找不到dll原因

    1.没有生成成功: A.代码有错误 B.引用dll有问题(dll生成失败|dll版本不对) C.源文件损坏 2.dll生成路径不对 3.对dll的引用丢失