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【https://www.yuanrenxue.com/】 由一群工作十余年的老程序员结合实际工作经验所写的Python教程。

python 游戏(猜单词Hangman)的更多相关文章

  1. Python小游戏 -- 猜单词

    Python初学者小游戏:猜单词 游戏逻辑:就像我们曾经英语学习机上的小游戏一样,电脑会从事先预置的词库中抽取单词,然后给出单词的字母数量,给定猜解次数,然后让玩家进行猜测,并给出每次猜测的正确字母与 ...

  2. python 游戏(猜数字)

    1. 构造猜数字核心函数 import random def guess_core(guess_min,guess_max,guess_counrt): '''猜数字核心判断函数 :param gue ...

  3. 关于切片/截取(slice)和random模块的使用(实例:猜单词小游戏)

    切片和random的使用在源码中都有注释(可以直接下载):https://github.com/NoobZeng/GuessWords 1. README.MD 基于Python的猜单词游戏 猜单词小 ...

  4. 玩Python小游戏猜数字,在游戏中掌握基础,你还能学不会?

    学python怎么离得开案例呢? 今天再继续给大家分享一个Python教程里的猜数字游戏     我最近也是在学python,从事编程工作几年了,但是python还是今年才开始玩的,不得不说,这真是一 ...

  5. Python初学者随笔(一)_ 用Python写的第一个游戏“猜数字”

    如标题所写,这篇随笔主要记录下学习Python过程中用Python写的第一个游戏--"猜数字"_跟着"小甲鱼"学Python,链接: https://b23.t ...

  6. python练习题——猜数字游戏

    增加了按照对半找数的方法来计算最短几次就可以猜到随机数,决定到游戏结束共猜数的次数: from random import * import numpy as np from numpy import ...

  7. 《Python游戏编程快速上手》|百度网盘免费下载|Python基础编程

    <Python游戏编程快速上手>|百度网盘免费下载| 提取码:luy6 Python是一种高级程序设计语言,因其简洁.易读及可扩展性日渐成为程序设计领域备受推崇的语言. 本书通过编写一个个 ...

  8. python 游戏(数字推理游戏Bagels)

    1.游戏思路和流程图 实现功能:玩家猜测三位不一样的数字,猜错了有提示,提示分别为(位置错误数字正确),(位置和数字正确),(数字和位置都不正确) 游戏流程图 2. 使用模块和游戏提示 import ...

  9. Python游戏编程入门

    <Python游戏编程入门>这些文章负责整理在这本书中的知识点.注意事项和课后习题的尝试实现.并且对每一个章节给出的最终实例进行分析和注释. 初识pygame:pie游戏pygame游戏库 ...

随机推荐

  1. MySQL递归查询父节点或递归查询子节点-陈远波

    根据id查询父节点,具体需要修改的地方笔者已在注释中给大家作了注解 DELIMITER $$ USE `yjlc_platform`$$ -- getCompanyParent 为函数名 DROP F ...

  2. DevExpress03、GridControl

    设计数据源并绑定字段: 数据源可以是实现下列接口之一的任何类型: IList 接口,包括一维数组.List<T>等! IListSource 接口,例如,DataTable 和 DataS ...

  3. c++向量

    https://blog.csdn.net/suxiao_shaoer/article/details/52180087 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个 ...

  4. 1001.A+B Format(10)

    1001.A+B Format(20) github链接:[example link](https://github.com/wgc12/object-oriented 1.对题目的理解: 首先这道题 ...

  5. 三、git管理修改

    一.修改提交 如下图,Git分工作区和版本库(.git隐藏目录中). 在每次修改后 git add "file name" 其实是把修改内容提交到本地版本库的 暂存区(stage) ...

  6. Markdown基本语法规范

    1. 标题 #的个数即表示Hn, 一下依次从h1~h6.  也可在句尾添加同样个数的#(也可忽略) # This is H1 ## This is H2 ### This is H3 #### Thi ...

  7. 使用Winform程序作为WCF服务的宿主

    如果我们自己新建一个WCF服务库,生成了dll文件.那我们需要创建一个宿主程序,在本例中我们新建一个Winform程序作为WCF的宿主程序. 在网上很多教程里对创建过程写的很模糊,错误也很多.本文是作 ...

  8. java字节码的工具(含IDEA插件)

    转:https://blog.csdn.net/qq_34039315/article/details/78561493 javap方式 最基础的方式,此处不做介绍 windows下的工具jclass ...

  9. 《阿里巴巴 Java 开发手册》划重点!

    [强制]小数类型为 decimal,禁止使用 float 和 double. 说明:float 和 double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不 正确的结果.如果存储的数 ...

  10. php可逆加密解密

    函数: function encrypt($data, $key) { $prep_code = serialize($data); $block = mcrypt_get_block_size('d ...