• 小妖精的完美游戏教室——人工智能,状态机理论篇


      今天也要直播魔法,求科学的!

      欢迎来到小妖精Balous的完美游戏教室!

      每一款好玩的游戏里面肯定有很多人工智能,例如一些帮助玩家的NPC,一些被玩家调教小怪物,更有输掉后会卖萌的Boss(小妖精真的没有玩过东方project,真的没有,小妖精甚至连这个游戏都没听说过!)。那么,米娜桑想不想知道这些人工智能是如何实现的呢?那就跟着小妖精的步伐看下去吧~~但是小妖精现在的实力不是很强耶,目前还达不到妖精姐的水平,所以小妖精也只是教大家一些简单的基础。不要见怪哟。

      人工智能简单来讲,是由状态跟转移条件组成的。没错,状态+转移条件=人工智能。这看似很抽象,所以小妖精下面举个具体的例子来说明这个。

      现在,有个AI,她是魔王的女仆,她的职责是在玩家闯进大魔王宫殿时,去阻止玩家(真的是去阻止玩家,不是去被玩家调♀教)。她会根据玩家的行动,做出相应的对策。当玩家进入大魔王的宫殿时,她会闪现到玩家面前,使用小刀攻击玩家,如果成功伤害到玩家,女仆还会进行连击。但如果玩家跑远了,女仆就会把小刀扔出去,使用飞刀攻击。当然,玩家可能不想跟女仆正面对着干,玩家只想找出宫殿中的魔王,此时,玩家就会一直躲女仆。为了阻止玩家找到大魔王,女仆必须拦截住玩家,还有……当女仆被玩家推倒(击败)时,女仆会哭啼啼地说:“呜~我主,我失败了……”。

      好啦,写了这么多,女仆这个AI有这么几种状态:使用小刀近战攻击玩家,使用飞刀远程攻击玩家,拦截玩家,卖萌。转移条件分别是:if(玩家距离女仆很近)->使用小刀近战攻击玩家,if(玩家距离女仆很远)->使用飞刀远程攻击玩家,if(玩家无心战斗,想寻找大魔王)->拦截玩家,if(女仆被推倒)->卖萌。

      这样一来,米娜桑是不是明白为什么“状态+转移条件=人工智能”了呢?

      所以,实现游戏中的人工智能,就是实现状态机。由于篇幅的问题,小妖精暂时就讲解这么多啦。这次讲解的是状态机的理论,具体代码实现,小妖精将会在下一次讲解,所以这里暂时不提供代码啦~

  • 相关阅读:
    Java 核心编程——文件随机读写类(RandomAccessFile)
    java 核心编程——文件过滤类(FileFilter和FilenameFilter)
    java 核心编程 ——文件操作类File
    java 编程思想笔记(七)——异常
    java 编程思想笔记(六)——内部类
    enote笔记法使用范例(2)——指针(1)智能指针
    enote笔记法使用范例(1)——自己总结的一些编写代码的常识 (a)
    enote笔记语言(2)
    enote笔记语言(1)
    monkey命令——压力测试——转载参考07
  • 原文地址:https://www.cnblogs.com/balous/p/6679822.html
Copyright © 2020-2023  润新知