Python 实现 Hangman 小游戏
Hangman--游戏简介--> 百度百科
打印Hangman
def printHangman(N):
# 第一行
print("\t____")
# 第二行
print("\t| |")
# 第三行
print("\t| ", end="")
if N > 0:
# 第三行 第一笔
print("O")
else:
# 第三行 换行
print()
# 第四行
print("\t| ", end="")
if N > 2:
# 第四行 第三笔
print("/", end="")
else:
# 第四行 换行
print(" ", end="")
if N > 1:
# 第四行 第二笔
print("|", end="")
else:
# 第四行 换行
print(" ", end="")
if N > 3:
# 第四行 第四笔
print("\\")
else:
# 第四行 换行
print(" ")
# 第五行
print("\t| ", end="")
if N > 4:
# 第五行 第五笔
print("/ ", end="")
else:
# 第五行 换行
print(" ", end="")
if N > 5:
# 第五行 第六笔(画完结束)
print("\\")
else:
# 第五行 换行
print(" ")
# 第六行
print("\t|")
# 第七行
print("-------------")
# printHangman(0)
# printHangman(1)
# printHangman(2)
# printHangman(3)
# printHangman(4)
# printHangman(5)
# printHangman(6)
### 其它
```
# 生成一个仅包含星号的长度相同的字符串
def hide(s):
return '*' * len(s)
计算星号
def hide_num(secret):
num = 0
for i in secret:
if i == "*":
num += 1
return num
记录猜测错误的词
def record_wrong(wrong, wrong_in):
wrong = wrong + wrong_in
return wrong
打印已经猜错的词
def print_wrong(wrong):
print("You've entered (wrong):", end=' ')
for i in wrong:
if i != wrong[-1]:
print(i, end=',')
else:
print(i)
将猜对的词在对应位置显示出来
def show_correct(word, secret, correct_in):
index = 0
temp = ''
for i in word:
# 将每个词和输入的进行匹配
if i == correct_in:
temp = temp + correct_in
# 将已经猜对的词继续显示
elif secret[index] != '':
temp = temp + secret[index]
# 没猜中的继续以 * 表示
else:
temp = temp + ''
index += 1
return temp
<br/>
### 开始游戏
给定一个需要猜测的单词开始游戏
def start_game(word):
# 已经猜错的词
wrong = ''
# 将未猜出的以 * 显示
secret = hide(word)
# 记录还剩多少个 * ,如果为0,则为全部猜中
secret_num = hide_num(secret)
# 猜错的步数,6步画完小人,表示失败
hang = 0
# 6步之内而且还有 * 未猜出
while secret_num > 0 and hang < 7:
print('You word looks like this:')
print(secret)
printHangman(hang)
if hang < 6:
print('Choose a letter:', end='')
char_in = input()
# 判断猜的词是否在单词中
if char_in in word:
secret = show_correct(word,secret, char_in)
else:
wrong = record_wrong(wrong, char_in)
hang = hang + 1
secret_num = hide_num(secret)
# 代表得分,假如abbc,猜b,得两分
score = len(word) - secret_num
print('Your points so far:', score)
if wrong != '':
print_wrong(wrong)
print()
else:
# 小人画完
break
# 胜利
if secret_num == 0:
print('WIN')
print('Word:', word)
# 失败
else:
print('Defeat')
print('Word:', word)
<br/>
### 结果
![](https://img2018.cnblogs.com/blog/821307/201911/821307-20191121214223726-785597182.png)
<br/><br/><br/>
Python 实现 Hangman 小游戏的更多相关文章
- Python开发转盘小游戏
Python开发转盘小游戏 Python 一 原理分析 Python开发一个图形界面 有12个选项和2个功能键 确定每个按钮的位置 每个按钮的间隔相同 点击开始时转动,当前选项的背景颜色为红色,其他 ...
- 用Python实现童年小游戏贪吃蛇
贪吃蛇作为一款经典小游戏,早在 1976 年就面世了,我最早接触它还是在家长的诺基亚手机中.
- 教你用Python自制拼图小游戏,一起来制作吧
摘要: 本文主要为大家详细介绍了python实现拼图小游戏,文中还有示例代码介绍,感兴趣的小伙伴们可以参考一下. 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Pyt ...
- python 小鸡飞行小游戏
python 小鸡飞行小游戏 用空格键控制小鸡飞行 代码 import pygame.freetype import sys import random pygame.init() screen = ...
- 利用Python完成一个小游戏:随机挑选一个单词,并对其进行乱序,玩家要猜出原始单词
一 Python的概述以及游戏的内容 Python是一种功能强大且易于使用的编程语言,更接近人类语言,以至于人们都说它是“以思考的速度编程”:Python具备现代编程语言所应具备的一切功能:Pytho ...
- python 面向对象编程 - 小游戏
面向对象写的小游戏 欢迎玩耍 class Omnicience: camp = 'Omniscience' def __init__(self, name, atk=100, hp=1000, mp= ...
- Python hangman小游戏
hangman # words.py 使用pickle永久性存储数据 import pickle filename = 'words.pk' data = ['cat', 'dog', 'perro' ...
- 上班无聊,自己用python做个小游戏来打发时间
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取t.cn ...
- Python猜数小游戏
使用random变量随机生成一个1到100之间的数 采集用户所输入的数字,如果输入的不符合要求会让用户重新输入. 输入符合要求,游戏开始.如果数字大于随机数,输出数字太大:如果小于随机数,输出数字太小 ...
随机推荐
- 读书笔记之《Java 并发编程的艺术》
一.多线程语义 即使是单核处理器也支持多线程执行代码,CPU 通过给每个线程分配 CPU 时间片来执行任务,当前任务执行一个时间片后会切换到下一个任务,所以 CPU 通过不停的切换线程执行. 并发执行 ...
- Dev 日志 | 文章《快速体验知识图谱 OwnThink》中的技术问题
社区小伙伴反馈在实践文章<使用图数据库 Nebula Graph 数据导入快速体验知识图谱 OwnThink>时,遇到了一些问题,Nebula Graph 将在本文对该文章中出现的问题进行 ...
- FineUICore基础版部署到docker实战
FineUI用了好多年,最近出了FineUICore版本,一直没时间是试一下docker,前几天买了一个腾讯云服务器,1核2g,装了centos7.6,开始的时候主要是整个个人博客,在腾讯云安装了宝塔 ...
- PlayJava Day025
JTable 用JTable类可以以表格的形式显示和编辑数据 JTable类的对象并不存储数据,它只是数据的表现 MVC 数据.表现和控制三者分离,各负其责 M = Model(模型) V = Vie ...
- iviewer插件
jQuery-iviewer插件的使用 iviewer是一个具有缩放和图像旋转功能的图像查看小部件. 在jQuery官网下载后,有很多文件. 直接把文件夹解压拖到项目里. 然后再html中引入主要的文 ...
- JS---DOM---自定义属性引入和移除
总结:在html标签中添加的自定义属性, 如果想要获取这个属性的值, 需要使用getAttribute("自定义属性的名字")才能获取这个属性的值 html标签中有没有什么自带的属 ...
- VUE组件 之 高德地图地址选择
注:本文基于上一篇文章[ Vue-Cli 3.0 中配置高德地图] ,采用直接引入高德 SDK 的方式来使用高德地图api 一.效果图 二.组件要实现的功能 1. 如果有传入坐标点,则定位到坐标点 2 ...
- 增加sudo用户访问oracle
增加zgy用户可以访问数据库[root@DBDATA ~]# useradd zgy--设置密码[root@DBDATA ~]# passwd zgy--设置组[root@DBDATA ~]# use ...
- mybatis报错: java.lang.IllegalArgumentException invalid comparison: java.util.Date and java.lang.String
原因是在使用<if> 进行条件判断时, 将datetime类型的字段与 ' ' 进行了判断,导致的错误 解决, 只使用 <if test="createTime != n ...
- SQL Server 索引分析开关
set statistics io onset statistics profile on