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

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

  经过前两周的学习,相信米娜桑已经对状态机有所了解了呢~虽然状态机能够实现几乎所有的人工智能,但是,在实践中,你们有没有发现,自己做出来的怪物很笨呢?比如说,前面明明有一堵墙,但是怪物还是把脸往墙上撞,不会拐弯;又比如游戏的地图比较复杂,怪物追击玩家追到树林里后,玩家只要在树的周围绕圈子,怪物就不知道该怎么继续追击玩家了,因为怪物总是被几棵树挡住去路!

  这样看来,怪物的确很笨呢,因为它们不会在复杂的地形中找到一条正确的道路继续追击玩家,然后,怪物就被玩家给调♀戏了。

  再换个栗子,现在你在玩DOTA2,你正在使用卓尔游侠,现在看来,卓尔游侠并不是AI,因为你作为玩家在操控她,然而,当你用鼠标右键点击地图的一块空白区域时,卓尔游侠就会自己跑过去你点的地方,即使周围有小兵或者树挡住卓尔游侠的前进路线,她还是能够找到一条最近的路线跑到目标地点。用这种方法来分析,即便是玩家操控的游戏角色,它们依然也是人工智能。

  小妖精跟大家举了这两个例子,是为了要引出这节要讲述的话题——AI寻路!

  没错,无论是怪物在复杂地形中追击玩家,还是卓尔游戏能够自动走到目标地点,这些例子都是在解决一个问题,就是AI寻路问题,既然是寻路,肯定就离不开图论,所以,图论基础不好的同学回去翻翻《数据结构》的课本吧。

  然后,小妖精会告诉你,课本上讲的东西根本一无是处,这是赤裸裸的现实,因为学校的教育是培养一些能够参加全国比赛的学生,而不是能够参与项目的学生,如果你打算使用深度优先搜索dfs,广度优先搜索bfs,或者是Dijkstra算法的话,你就等着游戏卡帧吧,没错,因为你使用了毫无用处的算法,导致你的cpu运转不过来!!虽然课本上讲的这些算法在编程竞赛中很有用,但到了实践中却是毫无意义的。可悲的是,学校的评级是按照科研水平来评,所以学校为了让自己的学校更出名,肯定是教你一些竞赛中常用的算法,然后,获得全国一等奖的你就会发现,你连个软件也做不出来。

  不过,小妖精Balous要教大家的,是有实际意义的算法,A*算法,这个算法的目的,是找到从起点到目标点的最短路径,A*比dfs,bfs以及Dijkstra都要好很多,因为A*是有目的性地去寻找路径,而后面三者则是盲目地去试探性寻找。

  因为这章是引言,所以小妖精也不讲太多啦,接下来的课程,Balous将教大家如何创建图,如何使用A*算法。那么,我们下周见咯~~

小妖精的完美游戏教室——人工智能,A*算法,引言的更多相关文章

  1. 小妖精的完美游戏教室——人工智能,A*算法,启发因子篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

  2. 小妖精的完美游戏教室——人工智能,A*算法,导航网络篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

  3. 小妖精的完美游戏教室——人工智能,A*算法,结点篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

  4. 小妖精的完美游戏教室——人工智能,A*算法,实现篇

    //================================================================//// Copyright (C) 2017 Team Saluk ...

  5. 小妖精的完美游戏教室——buff系统

    作者:小妖精Balous,未经作者允许,任何个人与单位不得将此源代码用于商业化项目 #region buff /// <summary> /// 是否魔法免疫,魔法免疫的生物不会受到除自己 ...

  6. 小妖精的完美游戏教室——东方PROJECT,同人,墙

    //================================================================//// Copyright (C) 东方同人社// All Rig ...

  7. 小妖精的完美游戏教室——东方PROJECT,同人,符卡系统

    //================================================================//// Copyright (C) 东方同人社// All Rig ...

  8. 小妖精的完美游戏教室——东方PROJECT,同人,th12灵梦A

    ╮(╯▽╰)╭没办法,小妖精Balous也很讨厌学院化的教育呀,一点意义都没有. 这次就上传东方地灵殿灵梦A逻辑部分的核心代码吧,估计连老师都看不懂.动画部分的代码就不放上来了. //======== ...

  9. 小妖精的完美游戏教室——东方PROJECT,同人,子机

    //================================================================//// Copyright (C)// All Rights Re ...

随机推荐

  1. 浅析Tomcat、JBOSS、WebSphere、WebLogic、Apache

    做任何web项目,都离不开服务器,有钱的公司用WebSphere.WebLogic,没钱公司用nginx+tomcat,不要小瞧nginx+tomcat麻雀虽小,五脏俱全. 服务器的知识,在笔试.面试 ...

  2. spring boot2+jpa+thymeleaf增删改查例子

    参考这遍文章做了一个例子,稍微不同之处,原文是spring boot.mysql,这里改成了spring boot 2.Oracle. 一.pom.xml引入相关模块web.jpa.thymeleaf ...

  3. 在 jupyter 中添加菜单和自动完成功能

    在 jupyter 中添加菜单和自动完成功能 参考文档http://www.360doc.com/content/17/1103/14/1489589_700569828.shtmlhttp://to ...

  4. 7、zabbix使用进阶(03)

    节知识点: zabbix自动发现 web监控 zabbix自动发现   官网:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/ ...

  5. 3、基于多播、安全认证的corosync集群(VIP、Httpd、Filesystem)

    Messaging Layer --> CRM --> RA systemd:/usr/lib/systemd/system     systemd有一个特性,即便一个服务开机启动,但是在 ...

  6. 将nginx添加至service服务

    一.问题描述: 无法用service命令启动nginx 二.问题分析: /etc/init.d/目录下缺少nginx默认启动脚本 三.问题解决: 在/etc/init.d/路径下添加脚本文件,名称为n ...

  7. [原]JSBSim 自动驾驶(浅出)

    jsbsim的脚本文件分为几大类: 1.系统脚本: systems  包含通用飞机各部分功能模块组件以及自动飞行控件:Autopilot.xml  和 自动飞行的算法控件:GNCUtilities.x ...

  8. java笔记 -- 类与对象

    封装: 从形式上看, 封装是将数据和行为组合在一个包中, 并对对象的使用者隐藏了数据的实现方式. 对象中的数据称为实例域, 操纵数据的过程称为方法. 对于每个特定的类实例(对象)都有一组特定的实例域值 ...

  9. OPENAPI规范Swagger

    OPENAPI规范 是一种规范,Swagger是一种工具,Swagger帮我们使用OPENAPI更具体更完善,更好. 博客1:https://app.swaggerhub.com/help/index ...

  10. 综述 - 染色质可及性与调控表观基因组 | Chromatin accessibility and the regulatory epigenome

    RNA-seq这个工具该什么时候用?ATAC-seq该什么时候用?有相当一部分项目设计不行,导致花大钱测了一些没有意义的数据. 还是在中心法则这个框架下来解释,这是生物信息的核心.打开华大科技服务官网 ...