zoukankan      html  css  js  c++  java
  • 小妖精的完美游戏教室——人工智能,状态机理论篇

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

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

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

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

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

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

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

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

  • 相关阅读:
    UVa 839 -- Not so Mobile(树的递归输入)
    UVa 548 -- Tree
    UVA 122 -- Trees on the level (二叉树 BFS)
    UVa679 小球下落(树)
    POJ 2255 -- Tree Recovery
    POJ 1451 -- T9
    POJ 2513 -- Colored Sticks
    STL -- heap结构及算法
    nginx利用try_files实现多个源
    nginx location的优先级
  • 原文地址:https://www.cnblogs.com/balous/p/6679822.html
Copyright © 2011-2022 走看看