《游戏编程模式》一第7章 状态模式

简介:

本节书摘来异步社区《游戏编程模式》一书中的第7章,第7.1节,作者: 【美】Robert Nystrom (尼斯卓姆) 译者: 赵卫兵 , 许新星 , 姜召阳 , 陈侃 , 屈光辉 , 郑炯彬 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第7章 状态模式

“允许一个对象在其内部状态改变时改变自身的行为。对象看起来好像是在修改自身类。”

交代一下:我写的有些过头了,我在本章里面添加了太多东西。表面上这一章是介绍状态模式[1]的,但是我不能抛开游戏里面的有限状态机(finite state machines,FSM)而单独只谈“状态模式”。不过,当我讲到FSM的时候,我发觉我还有必要再介绍一下层次状态机(hierarchical state machine)和下推自动机(pushdown automata)。

因为有太多东西需要讲,所以我试图压缩本章的内容。本章中的代码片断没有涉及很细节的东西,所以,这些省略的部分需要靠读者来脑补。我希望它们仍然足够清楚到能让你掌握关键点(big picture)。

层次状态机和下推自动机这对术语指的是早期的人工智能。在20世纪50年代和60年代,大部分AI研究关注的是语言处理。许多现在用来解析编程语言的编译器被发明用来解析人类语言。

如果你从未听说过状态机,也不要感到沮丧。它们对于人工智能领域的开发者和编译器黑客来说非常熟悉,不过在其他编程领域可能不是那么被人熟知了。我觉得它应该被更多的人了解,因此,我将从一个不同的应用领域的视角来介绍它。

相关文章
|
6月前
|
设计模式 Java 数据库连接
解锁设计模式的神秘面纱:编写无懈可击的代码之建造者设计模式
解锁设计模式的神秘面纱:编写无懈可击的代码之建造者设计模式
31 0
|
6月前
|
设计模式 Java 关系型数据库
解锁设计模式的神秘面纱:编写无懈可击的代码之抽象工厂设计模式
解锁设计模式的神秘面纱:编写无懈可击的代码之抽象工厂设计模式
23 0
|
6月前
|
设计模式 安全 Java
解锁设计模式的神秘面纱:编写无懈可击的代码之单例设计模式
解锁设计模式的神秘面纱:编写无懈可击的代码之单例设计模式
18 1
|
6月前
|
设计模式 算法 Java
解锁设计模式的神秘面纱:编写无懈可击的代码之简单工厂设计模式
解锁设计模式的神秘面纱:编写无懈可击的代码之简单工厂设计模式
28 0
|
4月前
|
设计模式 算法 Java
二十三种设计模式全面解析-当你的代码需要多种算法时,策略模式是你的救星!
二十三种设计模式全面解析-当你的代码需要多种算法时,策略模式是你的救星!
|
4月前
|
设计模式 存储 缓存
二十三种设计模式全面解析-探索解释器模式的高级应用和优化技巧:解锁代码解析的新境界
二十三种设计模式全面解析-探索解释器模式的高级应用和优化技巧:解锁代码解析的新境界
|
4月前
|
设计模式 调度
二十三种设计模式全面解析-解密命令模式:掌握控制权的设计艺术
二十三种设计模式全面解析-解密命令模式:掌握控制权的设计艺术
|
4月前
|
设计模式 API 数据格式
二十三种设计模式全面解析-适配器模式:代码的奇迹之桥,连接你的世界!
二十三种设计模式全面解析-适配器模式:代码的奇迹之桥,连接你的世界!
|
6月前
|
设计模式 Java 数据库连接
解锁设计模式的神秘面纱:编写无懈可击的代码之原型设计模式
解锁设计模式的神秘面纱:编写无懈可击的代码之原型设计模式
25 1
|
6月前
|
设计模式 应用服务中间件 uml
解锁设计模式的神秘面纱:编写无懈可击的代码之外观设计模式
解锁设计模式的神秘面纱:编写无懈可击的代码之外观设计模式
26 1