常见数据结构和算法

数据结构

一、线性表 1.数组实现 2.链表

二、栈与队列

三、树与二叉树 1.树 2.二叉树基本概念 3.二叉查找树 4.平衡二叉树 5.红黑树

四、图

五、总结

算法

一、概述

二、查找算法

三、排序算法

四、其它算法

五、常见算法题

六、总结

Combining Steering Forces : 合并转向力

每一个Steering行为会产生一个力,他们会作用在速度向量上,这个合力的方向和大小会驱动AI个体实现一些行为(如Seek,Flee,Wander等),大致的计算方式如下:

steering = seek(); // this can be any behavior
steering = truncate (steering, max_force)
steering = steering / mass
 
velocity = truncate (velocity + steering , max_speed)
position = position + velocity

继续阅读“Combining Steering Forces : 合并转向力”

Steering Behaviors: Pursuit and Evade 追逐和躲避

到目前为止,我们研究了seek,flee,arrival,wander行为。在这个教程,会研究追逐和躲避行为。让角色跟随活着躲避。

追踪是指朝着移动目标运动并试图抓住它,这里说的“抓住”很重要,如果只是朝着目标运动,那基本上只是重复目标的运动轨迹。在追踪的时候,追踪者必须做出一定的预判,如果能够预判出目标接下去几秒的位置,就能够调整自己当前的速度来抓住它。可以预测轨迹,减少不必要的路径。

继续阅读“Steering Behaviors: Pursuit and Evade 追逐和躲避”

Steering Behaviors: Flee and Arrival 逃逸和到达

Flee

之前描述的seek行为基于两个力,一个是目标速度,一个是朝目标位置的推力。

desired_velocity = normalize(target - position) * max_velocity
steering = desired_velocity - velocity

desired_velocity在这里就是离目标位置的最短路径,根据目标点的位置和个体的位置相减得出,代表了一个以个体位置为起点,朝向目标点的力。

继续阅读“Steering Behaviors: Flee and Arrival 逃逸和到达”

Steering Behaviors: Seek 转向行为 : 寻找

文章将翻译教程,然后我会根据项目代码,在Unity3d 实现相关相应的内容。

Steering Behaviors 意在使游戏中的AI个体具备真实的运动行为,通过对力的施加与整合,使游戏个体具备类生命体般的运动特征。这项技术并不基于寻路或者别的宏观算法,而是基于个体局部周围空间的信息,单个的行为实现起来非常的方便,它们组合在一起又能有非常复杂的行为方式。 继续阅读“Steering Behaviors: Seek 转向行为 : 寻找”

基础内容知识,来自维基百科

算法。

定义

算法algorithm),在数学算学)和计算机科学之中,为任何良定义的具体计算步骤的一个序列[1],常用于计算数据处理自动推理。精确而言,算法是一个表示为有限长[2]列表的有效方法。算法应包含清晰定义的指令[3]用于计算函数[4]

个人理解:通过计算解决问题的方法。

基本要素

继续阅读“基础内容知识,来自维基百科”