python 游戏(猜单词Hangman)
1.游戏思路和流程图
实现功能:随机一个单词让玩家猜测(后续难度实现修改为成语填空,成语必须要有提示,可修改猜的次数,增加连续猜成语,难度系数随着次数的增加而增加)
游戏流程图
2. 单词库和模块
import random
word='''and away big blue can come down find for funny go'''
word_list=word.split()
3. 游戏开始提示
def game_info():
'''游戏开始提示函数'''
print('欢迎来到猜单词')
print('游戏提示:你有9次猜单词的机会,一次只能猜一个字母')
4. 重新开始游戏输入验证
def Double_choice(a,b,hint):
'''双选择验证函数
:param a 第一个选项值
:param b 第二个选项值
:param hint 选项信息
:return 返回输入值'''
choice=''
while choice.lower() !=a and choice.lower() !=b:
print(hint)
choice=input()
return choice
5. 用户输入验证
def letter_limited(letter,right_letter_list):
'''字母输入约束条件
:param letter 用户输入单词
:param right_letter_list 用户猜中单词列表
:return 返回 用户输入单词'''
while True:
if len(letter) !=1:
print('请输入一个字母')
elif letter in right_letter_list:
print('这个字母猜过了,请重新猜一个字母')
elif letter not in 'abcdefghijklmnopqrstuvwxyz':
print('请输入英文字母')
else:
break
letter=input()
return letter.lower()
6. 猜词判断(游戏核心)
def word_handle(user_letter,guess_letter_list,right_letter_list):
'''字母判断
:param user_letter 用户输入字母
:param guess_letter_list 需要猜测的字母列表
:param right_letter_list 用户猜中的字母列表
:return 返回用户猜中的字母列表'''
for i in range(len(guess_letter_list)):
if user_letter == guess_letter_list[i].lower():
right_letter_list[i]=guess_letter_list[i]
return right_letter_list
7. 游戏完成度提示
def game_content_hint(guess_letter_list):
'''游戏界面函数'''
print('单词完成度:%s'%' '.join(guess_letter_list))
8. 游戏核心外壳
def game_start():
'''游戏开始函数'''
guess_word=random.choice(word_list)
guess_letter_list=list(guess_word) #猜单词的列表
right_letter_list=['_'for i in guess_letter_list] #用户看见的单词列表
count=9 #猜取的次数
while count:
game_content_hint(right_letter_list)
print('猜单词中的字母(剩余机会%d)'%count)
user_letter=letter_limited(input(),right_letter_list)
# print(user_letter)
right_letter_list=word_handle(user_letter,guess_letter_list,right_letter_list)
# print(right_letter_list)
if right_letter_list == guess_letter_list:
break
count -= 1
if right_letter_list == guess_letter_list:
print('恭喜你猜中了全部字母,这个单词是%s'%guess_word)
else:
print('你的机会用光了也没猜中,这个单词是%s' %(guess_word))
9. 游戏外壳(重新开始游戏)
def game_shell():
'''外壳程序'''
game_info() # 游戏开始提示
game_start()
while True:
message='你想在玩一次吗(Y or N)'
again_flag=Double_choice('y','n',message)
if again_flag=='n':
break
game_start()
10. 运行游戏
game_shell()
python学习途径
本游戏参考书本 <<Python游戏编程快速上手>>
python 游戏(猜单词Hangman)的更多相关文章
- Python小游戏 -- 猜单词
Python初学者小游戏:猜单词 游戏逻辑:就像我们曾经英语学习机上的小游戏一样,电脑会从事先预置的词库中抽取单词,然后给出单词的字母数量,给定猜解次数,然后让玩家进行猜测,并给出每次猜测的正确字母与 ...
- python 游戏(猜数字)
1. 构造猜数字核心函数 import random def guess_core(guess_min,guess_max,guess_counrt): '''猜数字核心判断函数 :param gue ...
- 关于切片/截取(slice)和random模块的使用(实例:猜单词小游戏)
切片和random的使用在源码中都有注释(可以直接下载):https://github.com/NoobZeng/GuessWords 1. README.MD 基于Python的猜单词游戏 猜单词小 ...
- 玩Python小游戏猜数字,在游戏中掌握基础,你还能学不会?
学python怎么离得开案例呢? 今天再继续给大家分享一个Python教程里的猜数字游戏 我最近也是在学python,从事编程工作几年了,但是python还是今年才开始玩的,不得不说,这真是一 ...
- Python初学者随笔(一)_ 用Python写的第一个游戏“猜数字”
如标题所写,这篇随笔主要记录下学习Python过程中用Python写的第一个游戏--"猜数字"_跟着"小甲鱼"学Python,链接: https://b23.t ...
- python练习题——猜数字游戏
增加了按照对半找数的方法来计算最短几次就可以猜到随机数,决定到游戏结束共猜数的次数: from random import * import numpy as np from numpy import ...
- 《Python游戏编程快速上手》|百度网盘免费下载|Python基础编程
<Python游戏编程快速上手>|百度网盘免费下载| 提取码:luy6 Python是一种高级程序设计语言,因其简洁.易读及可扩展性日渐成为程序设计领域备受推崇的语言. 本书通过编写一个个 ...
- python 游戏(数字推理游戏Bagels)
1.游戏思路和流程图 实现功能:玩家猜测三位不一样的数字,猜错了有提示,提示分别为(位置错误数字正确),(位置和数字正确),(数字和位置都不正确) 游戏流程图 2. 使用模块和游戏提示 import ...
- Python游戏编程入门
<Python游戏编程入门>这些文章负责整理在这本书中的知识点.注意事项和课后习题的尝试实现.并且对每一个章节给出的最终实例进行分析和注释. 初识pygame:pie游戏pygame游戏库 ...
随机推荐
- MySQL递归查询父节点或递归查询子节点-陈远波
根据id查询父节点,具体需要修改的地方笔者已在注释中给大家作了注解 DELIMITER $$ USE `yjlc_platform`$$ -- getCompanyParent 为函数名 DROP F ...
- DevExpress03、GridControl
设计数据源并绑定字段: 数据源可以是实现下列接口之一的任何类型: IList 接口,包括一维数组.List<T>等! IListSource 接口,例如,DataTable 和 DataS ...
- c++向量
https://blog.csdn.net/suxiao_shaoer/article/details/52180087 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个 ...
- 1001.A+B Format(10)
1001.A+B Format(20) github链接:[example link](https://github.com/wgc12/object-oriented 1.对题目的理解: 首先这道题 ...
- 三、git管理修改
一.修改提交 如下图,Git分工作区和版本库(.git隐藏目录中). 在每次修改后 git add "file name" 其实是把修改内容提交到本地版本库的 暂存区(stage) ...
- Markdown基本语法规范
1. 标题 #的个数即表示Hn, 一下依次从h1~h6. 也可在句尾添加同样个数的#(也可忽略) # This is H1 ## This is H2 ### This is H3 #### Thi ...
- 使用Winform程序作为WCF服务的宿主
如果我们自己新建一个WCF服务库,生成了dll文件.那我们需要创建一个宿主程序,在本例中我们新建一个Winform程序作为WCF的宿主程序. 在网上很多教程里对创建过程写的很模糊,错误也很多.本文是作 ...
- java字节码的工具(含IDEA插件)
转:https://blog.csdn.net/qq_34039315/article/details/78561493 javap方式 最基础的方式,此处不做介绍 windows下的工具jclass ...
- 《阿里巴巴 Java 开发手册》划重点!
[强制]小数类型为 decimal,禁止使用 float 和 double. 说明:float 和 double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不 正确的结果.如果存储的数 ...
- php可逆加密解密
函数: function encrypt($data, $key) { $prep_code = serialize($data); $block = mcrypt_get_block_size('d ...