游戏中的人工智能(一):有限状态机

本文探讨了有限状态机的概念及其在现实世界中的应用,包括实现方式、状态转换表和消息功能。通过实例分析,深入浅出地阐述了如何在编程中利用有限状态机模型来简化复杂逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先从有限状态机说起。

   什么是有限状态机?

   有限状态机是一种模拟现实生活中人或者动物思考的一种模型。我们在思考过程中总是随着外界环境的变化或者内在因素的变化而进入一种状态,而相应的状态会触发相应的行为,我们总是处于这样那样的状态,并且不停切换。如早上天气冷,进入冷的状态,当处于冷的状态时,大脑就会做出加衣服、开热气等操作,到了中午太阳出来了,又会热起来,这个时候你会处于一种热的状态,并做出脱衣等反应。这是我个人的理解。

    在Mat.Buckland编著的著名的书籍《游戏人工智能编程案例精粹》里,他是这么定义的。有限状态机是一个设备模型,它具有有限数量的状态,它可以在任何给定的状态根据输入进行操作,从一个状态变换到另一个状态,并促使相应的行为的发生。

   如何实现一个有限状态机?

   简单幼稚的实现方式是用if else或者switch。优点是容易实现,缺点是应对复杂的情形,代码会相当的恶心——程序流程的跳转会非常快,不容易理解,会像面条一样缠绕纠结

   使用状态转换表

   

    把条件或者说思考嵌入到状态里。下面是实现的类图。

   

 

   如何让对象互相交流——给FSM增加消息功能?

   直接上类图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值