如何用 Python 编写刽子手游戏
如何用 Python 编写刽子手游戏
让我们通过一个有趣的游戏来学习 python 编程概念。
会发生什么?
我开始接触 Python!
这是我为尝试我的 python 编程技能而创建的项目之一——希望可以一起学习和分享。
我将用这段代码探索一些关键点 -
- 使用参数执行 python 脚本
- 单独或作为模块执行脚本
- 处理异常
- Python 类、方法和变量
- 带参数的构造函数
- 读取多行文件
- 从列表中选择一个随机元素
- 迭代——For、While 循环
- 三元条件
什么是刽子手游戏?
你一定已经熟悉这个流行的游戏了。
您需要一次猜测一个隐藏单词的字母。每次尝试,游戏都会显示正确猜到的字母。如果在有限的时间或尝试次数内没有计算出所有的字母,刽子手就会死亡。
让我们计划一下工作
涉及用户交互
对于任何程序或应用程序,了解程序将如何与用户交互至关重要。让我们试试刽子手——
- 用户需要知道挑战词中有多少个字母
- 用户应该能够选择/键入一个字母
- 正确猜出字母后,用户应该看到填充了哪些位置
- 用户应该对剩余的尝试有所了解(直到 Hangman 死了!)
- 一些不错的控件可以是-
- 用户可以更改挑战词
- 用户可以退出 - 最后,该程序应为易用性提供足够的指导。
涉及的重要处理
在了解了用户交互之后,我们来看看满足那些用户交互需要进行哪些处理。
- 维护一个单词列表以及随机选择一个挑战单词的能力(最初以及当用户选择更改单词时)
- 渲染空白占位符的必要处理
- 匹配正确的字母并呈现更新的占位符
- 绘制刽子手(最初和每次输入之后)
- 控制字母或任何其他输入的输入处理(即手动退出、更改单词)
高层次的设计思维
现在您可以计划所需的方法和属性。
- 在里面() — 这是 python 构造函数。我们将在构造函数本身中读取文件。因此,它将是一个参数化构造函数,其文件名作为参数传递。
- pick_next_word() — 最好将其作为一种方法,以防我们在选择挑战词时想要进行一些额外的处理。这将在最初以及当用户选择更改挑战词时被调用。
- draw_hangman() — 此方法将检查尝试计数器并绘制刽子手和吊杆。
- 启动空白() —此方法将执行以下操作-
— 为所选的挑战词准备一组占位符(下划线字符)。
— 重置尝试计数器。
— 通过调用 draw_hangman() 绘制空吊杆 - update_hangman() — 每次输入猜测的字母时都会调用它。下面的处理需要在这里进行——
— 根据挑战词检查输入字母。更新空白占位符和输入队列
— 渲染占位符和输入队列
— 检查是否达到了允许的尝试。通过调用 draw_hangman() 显示更新的刽子手图像。
— 当尝试用尽或正确猜测所有字母时处理退出场景。 - play_hangman() — 由于代码可以从包中调用或独立调用,因此您需要一个方法来启动游戏,以便调用位置可以轻松调用游戏。此方法将执行以下操作 -
— 通过调用 pick_next_word() 选择一个挑战词
— 通过调用initial_blanks() 渲染显示占位符和空吊杆的初始屏幕
— 提示用户有关允许的输入。
— 控制循环以获取后续用户输入并处理退出场景
让我们编码
当您弄清楚主要方法及其用途后,让我们开始吧。
您可以关注评论和文档字符串(以“帮助(
导入和类定义
属性
用于绘制刽子手和杆子的字符串数组 -
关键点 -
请注意字符串中的转义字符 ('')。 hangman_length 属性和hangman 绘图数组需要匹配(我建议您在浏览代码时更改它们)。
在里面()
关键点 -
— 参数化构造函数
— 使用 try/except 处理异常
— 以只读模式打开文件。请注意,通过“with open() as x”语法打开文件时不需要关闭
— 从文件内容中读取行
pick_next_word()
关键点 -
— 使用“随机”模块从列表中选择一个元素
draw_hangman()
关键点 -
— 使用“for”循环和“if/else”条件
启动空白()
关键点 -
— For 循环
— 三元条件(“
update_hangman()
关键点 -
— 更多 for 循环和 if/else 条件
— 从方法中返回一个值
— 为用户打印足够的消息
play_hangman()
关键点 -
— While 循环
——“pass”表达式(与“continue”不同,表示进入下一条语句)
开始/调用游戏
这是写在模块内(“hangman.py”文件),但在类之外。
注意检查“if name == 'main':”。这是为了让模块只有在“python hangman.py”命令直接运行时才执行。
如果你想为游戏制作一个包,上面的代码将进入包中的“main.py”文件。
这就是所有的编码。现在是时候玩了!
运行游戏
“python hangman.py”之后的第一个屏幕 -
请注意异常处理的输出,并使用代码中引用的“.txt”文件进行编程。该文件仅包含多行水果的名称。
经过几次猜测后的样子——
八次尝试后你死了:)
编码快乐!!
下载
GitHub—— https://github.com/SaurabhGhosh/hangman.git
结论
在此博客中,我希望您对以下内容有所了解-
- 使用参数执行 python 脚本
- 单独或作为模块执行脚本
- 处理异常
- Python 类、方法和变量
- 带参数的构造函数
- 读取多行文件
- 从列表中选择一个随机元素
- 迭代——For、While 循环
- 三元条件
在我的下一篇博客中,我将探索另一个程序并了解更多概念。
如果您对此计划有任何疑问,请随时发表您的意见。
请点赞、评论和关注我!保持学习!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通