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

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. &lt;图形图像,动画,多媒体&gt; 读书笔记 --- 录制与编辑视频

    使用UIImagePickerController 进行录制 #import "ViewController.h" #import <MobileCoreServices/M ...

  2. [SPOJ VLATTICE]Visible Lattice Points 数论 莫比乌斯反演

    7001. Visible Lattice Points Problem code: VLATTICE Consider a N*N*N lattice. One corner is at (0,0, ...

  3. ScrollViewer滚动究竟来触发载入数据的Behavior

    近期项目中遇到载入数据的性能问题, 原因是.net4.0的虚拟化支持不够完毕,有好多bug在4.5才修复. 我们仅仅能利用大家通用的做法来延迟载入数据: 每次载入固定少量的数据.当拖动究竟后.继续载入 ...

  4. c28---const

    // // main.c // const关键字,节省内存空间,放在字符表里面, #include <stdio.h> int main(int argc, const char * ar ...

  5. Android.mk中添加宏定义【转】

    本文转载自:http://blog.csdn.net/huangyabin001/article/details/38302021 在Boardconfig.mk 中添加一个 IS_FLAG := t ...

  6. 在Android系统中添加宏控制代码【原创】

    关键词:Android  宏控制 Androd.mk 平台信息:内核:linux3.4.39 系统:android/android5.1平台:S5P4418  作者:庄泽彬(欢迎转载,请注明作者) 邮 ...

  7. SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理——深入的话需要去折腾Azure Active Directory

    SRV记录 SRV记录 什么情况下会用到SRV记录? [SRV记录用来标识某台服务器使用了某个服务,常见于微软系统的目录管理] SRV记录的添加方式 A.主机记录处格式为:服务的名字.协议的类型 例如 ...

  8. 找新朋友(hdoj--1286--欧拉函数)

    欢迎参加--每周六晚的BestCoder(有米!) 找新朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  9. Top 5 Timed Events[转]

    Event                                               Waits    Time (s) Ela Time --------------------- ...

  10. linux下nmap工具的使用

    NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工 具包,其基本功能有三个,一是探测一组主机是否在线:其次是扫描主机端口,嗅探所提供的网络服务:还可以推断主机所用的操作系统 ...