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. 【Alpha go】Day 2!

    [Alpha go]Day 2! Part 0 · 简要目录 Part 1 · 项目燃尽图 Part 2 · 项目进展 Part 3 · 站立式会议照片 Part 4 · Scrum 摘要 Part ...

  2. Mac上编译OpenJDK过程记录

    编译OpenJDK主要为了学习HotSpot,编译过程在很多相关书籍中都有所涉及,但由于机型.机子具体环境的不同,很难有资料能够一步到位.还是得碰到具体问题通过上网查来一个个解决. 下载OpenJDK ...

  3. redis性能测试工具的使用

    在redis安装完成后会生成一个bin的目录,在这个目录中有一个 redis-benchmark 的文件脚本工具,通过执行这个工具进行redis的性能测试. bash #执行这个脚本后脚本会自动运行r ...

  4. php无限分类 下拉框

    无限分类 下拉框优势:填写参数少,只需要指定一个循环节点($parnent_id),就可以循环所有下级分类.循环输出结构很有特色,比较符合我的口味.补充: $parent_id才是上下级关联的节点,i ...

  5. c++ 智能指针、函数指针和指针函数

    智能指针: 1.内存泄漏memory leak :是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出. 2.内存溢出 out of me ...

  6. Grunt-jsdoc生成JS API文档

    Grunt-jsdoc生成JS API文档 具体的请看官网 https://github.com/krampstudio/grunt-jsdoc 一:首先确保本机电脑上是否已经安装了nodejs和np ...

  7. cURL函数库错误码说明之PHP curl_errno函数

    背景概述:游戏接口是使用PHP cURL扩展进行请求操作.但是,被请求的服务器经常会无故的不响应或者超时.总之,就是请求之后收不到响应回来的数据.这时候可不能说对方API接口有问题,或者,服务器有故障 ...

  8. Altium 拼板方法以及 注意的 地方

    1.修改软件设置, 即工具→优先选项→覆铜重建 对号去掉,如下,否则 拼板复制 覆铜 会变形导致拼板错误!!! 2.拼板方法,Ctrl+A全部复制(不要漏掉),选择特殊粘贴的方式,快捷键 E→A  去 ...

  9. Linux常用系统信息查看命令

    [转]http://yulans.cn/linux/linux%E5%B8%B8%E7%94%A8%E7%B3%BB%E7%BB%9F%E4%BF%A1%E6%81%AF%E6%9F%A5%E7%9C ...

  10. 网络运营商名称显示&amp;SIM名称显示

    一 网络名称显示这部分比較复杂.Spec对这也有明白的规定,依据其优先级由高往低介绍(其优先级參考TS 22.101), 1.       Enhanced Operator Name String. ...