《易学Python》——6.3 玩家输入

简介:

本节书摘来自异步社区《易学Python》一书中的第6章,第6.3节,作者[澳]Anthony Briggs,王威,袁国忠 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.3 玩家输入

大多数冒险游戏的玩法都是这样的:玩家输入指令,如往北走、拾剑、杀怪物和检宝,游戏再显示操作结果,以及有关玩家所处房间和房间中物件的描述。这里采取同样的方法,并利用一些对象的属性简化程序的扩展工作。别忘了,您还需让代码易于测试,因此将把处理用户输入的代码放在独立的函数中。

6.3.1 名词的动词化

您将首先寻找一种不错的方式,在类结构中编写将名词转换为动词的接口。通常情况下,对象为名词,而操作对象的方法为动词,因此命令GET SWORD应在当前房间找到Sword对象,并调用其Get接口。这样设计意味着不用编写一个什么都会做的大型Player类,而可编写大量更容易理解、修改和扩展的小型类。


screenshot

程序清单6.3是该程序的核心代码:Player类。它负责读取玩家的输入,并寻找合适的对象来解读命令。您应将这些代码保存在文件player.py中。

程序清单6.3 Player类


screenshot


screenshot

screenshot

编写Player类后,您需要从玩家那里读取输入,并执行相应的命令。程序清单6.4是一个示例框架,它创建一个简单的洞穴,让玩家置身中,然后开始循环:不断地读取输入并执行相应的命令,直到玩家结束游戏。以后您可能将这些代码封装在Game类中,但由于Python非常灵活,您可将其保留为函数,并编写和测试其他类。

程序清单6.4 使用Player类


screenshot

screenshot

如果您现在运行这个冒险游戏,应该能够指定命令LOOK和QUIT。这个程序很简单,下一节将介绍如何扩展接口。

相关文章
|
3月前
|
机器学习/深度学习 数据可视化 TensorFlow
50个Python学习资源,从初学者到高级玩家都有了!
50个Python学习资源,从初学者到高级玩家都有了!
|
6月前
|
Python
75 python - 打飞机案例(玩家飞机发射子弹)
75 python - 打飞机案例(玩家飞机发射子弹)
27 0
|
9月前
|
Python
Python带你做个愉快的"动森"玩家! (超简单代码)
Python带你做个愉快的"动森"玩家! (超简单代码)
91 0
|
12月前
|
Python
python及pygame雷霆战机游戏项目实战11 玩家多条命
python及pygame雷霆战机游戏项目实战11 玩家多条命
82 0
|
12月前
|
Python
python及pygame雷霆战机游戏项目实战09 玩家飞机添加血条
python及pygame雷霆战机游戏项目实战09 玩家飞机添加血条
149 0
|
存储 Java C语言
【python】输入以及print()函数的三种输出方式
【python】输入以及print()函数的三种输出方式
283 0
【python】输入以及print()函数的三种输出方式
|
前端开发 C语言 C++
Python Tkinter Gui 窗口图标,标签,输入,单复选,文件导入,按钮,日志 等常用组件 基本使用
tkinter是什么? 我们编写的Python代码会调用内置的Tkinter,Tkinter封装了访问Tk的接口; Tk是一个图形库,支持多个操作系统,使用Tcl语言开发; Tk会调用操作系统提供的本地GUI接口,完成最终的GUI;
1127 0
Python Tkinter Gui 窗口图标,标签,输入,单复选,文件导入,按钮,日志 等常用组件 基本使用
Python 创建能根据输入计算BMI指数的函数
Python 创建能根据输入计算BMI指数的函数
|
索引 Python 容器
【Python基础速览1】变量 | 输出和输入 | 数字类型 | 字符串类型(二)
最近得了急性胃肠炎(草),所以咕咕咕了好几天,等过段时间一定好好肝文。这次就发一发前几年学Python时自己记的笔记吧,还是和之前一样,适合用来复习过一遍基础,并不适合从零开始。
139 0
【Python基础速览1】变量 | 输出和输入 | 数字类型 | 字符串类型(二)
|
Java C语言 Python
【Python基础速览1】变量 | 输出和输入 | 数字类型 | 字符串类型(一)
最近得了急性胃肠炎(草),所以咕咕咕了好几天,等过段时间一定好好肝文。这次就发一发前几年学Python时自己记的笔记吧,还是和之前一样,适合用来复习过一遍基础,并不适合从零开始。
109 0
【Python基础速览1】变量 | 输出和输入 | 数字类型 | 字符串类型(一)