`
qinysong
  • 浏览: 190736 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
在此把这个算法称作B* 寻路算法(Branch Star 分支寻路算法,且与A*对应),本算法适用于游戏中怪物的自动寻路,其效率远远超过A*算法,经过测试,效率是普通A*算法的几十上百倍。 通过引入该算法,一定程度上解决了游戏服务器端无法进行常规寻路的效率问题,除非服务器端有独立的AI处理线程,否则在服务器端无法允许可能消耗大量时间的寻路搜索,即使是业界普遍公认的最佳的A*,所以普遍的折中做法是服务器端只做近距离的寻路,或通过导航站点缩短A*的范围。 算法原理 本算法启发于自然界中真实动物的寻路过程,并加以改善以解决各种阻挡问题。 前置定义: 1、探索节点: 为了叙述方便,我们定义在寻路过程中向 ...
对于人工智能最近对这个问题比较困惑,当然属于胡思乱想而已 理性是指导思想和活动的控制器,比如学习的时候要靠理性指导学什么东西、什么是重点、碰到问题如何解决和挂起,学完之后还要靠理性把学到的知识组织到我们已有的思想体系里,如果和以前知识体系有冲突、不一致的话如何整理以构筑出一个更完整更理性的思想体系。所以如果这么说的话,记忆、预测就是理性控制下的工作模块、工作单元,而理性就是这些工作单元的操作系统。 再一个就是感性,好像是有一个哲学家说过,一个完全理性的驴子站在两堆完全相同的稻草中间,结果却因为无法取舍该先吃哪一堆而饿死。所以纯粹的理性将导致无限的循环,即无法产生一个适量的结果。比如我们解决一个 ...
在Ext中,Grid的使用包括以下几个步骤: 1、获取数据集,示例代码如下 js 代码 var myData = [           ['Apple',29.89,0.24,0.81,'9/1 12:00am'],           ['Ext',83.81,0.28,0.34,'9/12 12:00am'],           ['Google',71.72,0.02,0.03,'10/1 12:00am'],           ['Microsoft',52.55,0.01,0.02,'7/4 12:00am'],       ...
布局Layout的一些概念: 区域(region):任何一个封闭的DOM元素,例如body,div,span等 布局管理器(layout manager):负责管理页面中的区域。在Ext中布局管理的主要的用户组件是BorderLayout类。在BorderLayout中划分好了一些预定的区域。可用的区域分别有south, east, west, north,和center。每一个BorderLayout对象都提供这些区域,但只有center要求必须使用的。 面板(Panel):是区域管理(region management)的另外一个组件。面板也相当于一个容器,它将页面元素(div等)与布局la ...
在Ext中,菜单器件(Menu Widgets)是通过几个类的联合来使用的,这些类包括:Ext.Toolbar、Ext.menu.Menu、Ext.menu.Item、Ext.menu.CheckItem,以及一些特殊类型的菜单或菜单项,比如菜单Ext.menu.DateMenu、菜单项Ext.menu.ColorItem。 构成菜单器件的这些类在菜单中的层次结构如下: 下面对一些类进行具体说明: 1、Ext.Toolbar 该类表示一个菜单条,构建函数接受两个参数,第一个是指定toolbar的容器(contrainer);第二个参数是包含全部按钮的数组。大体如下: new Ext.To ...
最近工作中一个项目打算采用工作流技术,所以对工作流特别是OSWorkflow进行了一些学习和研究,为了向项目组其他成员演示和进一步进行应用,做了这个小业务系统,现在经过整理把它拿出来,希望对想要了解OSWorkflow的朋友有一点帮助。我接触的时间也不长,所以哪个地方有问题还希望大家多多指点,对工作流技术共同提高。 这个小业务系统的主要目的 演示如何基于OSWorkflow构建业务系统,即如何将原来程序内硬编码的业务过程抽取出来,放到底层的工作流引擎中,上层业务模块只进行具体业务动作的执行,同时演示着两层如何“集成”。 本系统演示三个方面:业务处理和OSWorkflow的基本“集成”、工作流引 ...
[quote="junjie314"]  有谁能不能说具体的实现!~~现在如果光排序的那没问题,但是各节点之间不是有顺序的吗??这个顺序是可以改的..现在主要问题是如果要改这个的话就比较麻烦了..比如有两个父节点顺序是23和38  现在把23这个改成39的话..那23下面的所有子节点都要修改..   这个好象比较麻烦,要么是我设计的问题???[/quote] 首先创建一个SQL函数:weightValue,如下 [code]CREATE FUNCTION weightValue(@idValue int) RETURNS bigint AS BEGIN  DECLARE @r ...
这是过年后写的一个以英语学习为目标的网络游戏概要书,触发是当时和几个同事吃饭时聊到的,感觉这个方向很不错,市场很大,而且目前还没有类似的产品上市,所以就从网上搜索了一些这方面的资料,参考整理了这个项目 ...
因为已突破原帖子主题“对结构型设计模式的理解”本身含义,所以转移出来 jamesby 写道qinysong 写道jamesby 写道qinysong 写道jamesby 写道 我觉得降低偶合,也就是解偶是关键,底偶合高内聚,高扩展,高复用是软件设计的目标。 我觉得“底偶合高内聚”应该在设计原则层次,通过原则指导利于达到设计目标——“高扩展,高复用”我觉得设计原则应该是 面向接口和抽象编程 优先使用组成而不是继承,也就是HAS A OR IS A 等等, 而遵守设计原则的软件就是高内聚底偶合的设计,也就是高扩展,高复用的设计! 我认为高扩展,高复用是终极目标,但是达到了高内聚底偶合的目标也就 ...
在《重构》中,Martin Fowler按照重构所针对的代码内容进行了分类,包括对函数的重构、对对象特性的重构、对数据组织的重构、对条件表达式的重构以及对类层次的重构,并按照这种分类组织了章节。 除了按照重构所针对的代码内容进行分类外,按照采用手法进行分类,我觉得也可以从另一个角度帮助我们更进一步理解重构的进行方式。 通过整理,按照采用手法分类如下: 1、提炼 就是对某个过程的一部分,或某个事物的一部分进行抽象并概念化,以减小所表达的目的(要做什么)和实现(做什么,如何做)之间的语义差距。 运用提炼的重构手法包括 Extract Method、 Split Temporary Variab ...
此外代码的坏味道Bad smells一章,真是一顿营养丰富的大餐。Duplicated Code是代码腐化的万恶之源,Long Method、Large Class、Long Parameter List这些几乎就是旧社会臭婆娘的裹脚布,Divergent Change、Shotgun Surgery、Feature Envy、Inappropriate Intimacy这些简直就是指责不清勾肩搭背。等等。。。 重构,它为我们清除这些坏味道指明了方向,并且《重构》通过强调“重构是一种有纪律的、经过训练的、有条不紊的程序整理方法”,保证了重构过程的安全性和高效性。 在重构的手法中有相当一大部分是双 ...
刚才有一个关于Struts和MVC组件对应关系的帖子,现在好像被放入了新手区,关于这个问题记得以前有过激烈的讨论,可惜刚才我搜索一下没有找到想找的那篇,希望有谁找到能把链接发上来 对于这个问题我觉得还是有讨论的一些必要,因为疑惑的人还是存在,而且从我个人来说对这个问题的理解也在不断的变化。现在把我现在的理解写下来,可能存在偏颇(本来理解也在变化),只供讨论 我现在的观点是: MVC可以帮助刚刚进入面向对象设计的开发者理解分层体系结构(MVC的最大价值),之后在面对Struts,Spring时,可以借助那种分层思想、及各层的大致组件角色和职责对这些框架进行理解,但不必钉钉铆铆的去对应,因为这种 ...
读完《重构——改善既有代码的设计》,感觉写得真是非常得好,非常的细腻而且深入,建议还没有读过的找时间读一读,肯定受益良多。 之前写程序也总是不停的重构、重构,读完这本书之后才发现对于重构的理解以前是很 ...
每一两天都要和同事打赌喝可乐,今天我们自己想了一个打赌方法,因为比较新鲜,打完之后喝着可乐想这个方式猜者猜中的几率,觉得还不是很好算,所以贴出来共享,有兴趣的也可以赌一赌,呵呵 方式为: 甲方从1—5这五个数中选出一个数写在纸上,然后乙方来猜,乙方有两次机会,每次猜一个数,乙方第一次如果没有猜对,甲方要告诉乙方自己写的数比乙方猜的数大还是小,乙方再猜,如果再没有猜对就算乙方输。
在Gof设计模式中,对设计模式的主要分类为:1)创建型、2)结构型、3)行为型。创建型设计模式抽象了对象的实例化过程;结构型设计模式涉及到如何组合类和对象以获得更大的结构;行为型设计模式描述算法和对象间职责的分配。   那么,结构型设计模式到底如何对类和对象进行组合,以获得更大的结构,组合的指引是什么呢?Adapter/Bridge/…/Proxy七种模式只是结构型设计模式的七个实例,这七个实例的核心主题是什么呢? 通过分析,我觉得可以将结构型设计模式的主题用三个词概括:1)统一、2)概括、和3)分离。   1)统一:达到一致 “统一”描述了对象组合的一个主题,通过统一性便于客户使用和扩展,在G ...
Global site tag (gtag.js) - Google Analytics