06 2008 档案

MD5算法的C++实现

posted @ 2008-06-25 17:12 RichardHe 阅读(194) | 评论 (0)  编辑

基于C++有限状态机的实现技术(调查报告)
     摘要: 一.引言言

有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在面向对象的软件系统中,一个对象无论多么简单或者多么复杂,都必然会经历一个从开始创建到最终消亡的完整过程,这通常被称为对象的生命周期。一般说来,对象在其生命期内是不可能完全孤立的,它必须通过发送消息来影响其它对象,或者通过接受消息来改变自身。在大多数情况下,这些消息都只不过是些简单的、同步的方法调用而已。例如,在银行客户管理系统中,客户类(Customer)的实例在需要的时候,可能会调用帐户(Account)类中定义的getBalance()方法。在这种简单的情况下,类Customer并不需要一个有限状态机来描述自己的行为,主要原因在于它当前的行为并不依赖于过去的某个状态。[1]

遗憾的是并不是所有情况都会如此简单,事实上许多实用的软件系统都必须维护一两个非常关键的对象,它们通常具有非常复杂的状态转换关系,而且需要对来自外部的各种异步事件进行响应。例如,在VoIP电话系统中,电话类(Telephone)的实例必  阅读全文

posted @ 2008-06-13 15:01 RichardHe 阅读(1743) | 评论 (0)  编辑

有限状态机的实现
     摘要: 有限状态机(Finite State Machine或者Finite State Automata)是软件领域中一种重要的工具,很多东西的模型实际上就是有限状态机。

最近看了一些游戏编程AI的材料,感觉游戏中的AI,第一要说的就是有限状态机来实现精灵的AI,然后才是A*寻路,其他学术界讨论比较多的神经网络、模糊控制等问题还不是很热。

FSM的实现方式:
1) switch/case或者if/else
这无意是最直观的方式,使用一堆条件判断,会编程的人都可以做到,对简单小巧的状态机来说最合适,但是毫无疑问,这样的方式比较原始,对庞大的状态机难以维护。

2) 状态表
维护一个二维状态表,横坐标表示当前状态,纵坐标表示输入,表中一个元素存储下一个状态和对应的操作。这一招易于维护,但是运行时间和存储空间的代价较大。

3) 使用State Pattern
使用State Pattern使得代码的维护比switch/case方式稍好,性能上也不会有很多的影响,但是也不是100%完美。不过Robe  阅读全文

posted @ 2008-06-13 14:48 RichardHe 阅读(2071) | 评论 (0)  编辑

利用C++标准库中文件流对象,如何获得文件的大小

posted @ 2008-06-05 14:17 RichardHe 阅读(640) | 评论 (0)  编辑

接口设计的要点(接口不应被使用者直接销毁)

posted @ 2008-06-04 15:39 RichardHe 阅读(150) | 评论 (0)  编辑

在C++中侦测内嵌类型的存在

posted @ 2008-06-04 15:23 RichardHe 阅读(1067) | 评论 (0)  编辑

boost源码剖析之:泛型编程精灵type_traits

posted @ 2008-06-04 15:22 RichardHe 阅读(440) | 评论 (0)  编辑

boost源码剖析之:泛型指针类any之海纳百川

posted @ 2008-06-04 15:21 RichardHe 阅读(245) | 评论 (0)  编辑

boost源码剖析之:boost::multi_array

posted @ 2008-06-04 15:21 RichardHe 阅读(379) | 评论 (0)  编辑

boost源码剖析之:Tuple Types

posted @ 2008-06-04 15:20 RichardHe 阅读(258) | 评论 (0)  编辑

刘未鹏之《boost源码剖析》系列多重回调机制signal

posted @ 2008-06-04 15:19 RichardHe 阅读(600) | 评论 (0)  编辑

Boost.Bind的基础使用

posted @ 2008-06-04 15:01 RichardHe 阅读(363) | 评论 (0)  编辑

Boost源码剖析:C++泛型函数指针类

posted @ 2008-06-04 14:50 RichardHe 阅读(265) | 评论 (0)  编辑

Boost.Function的基本使用

posted @ 2008-06-04 14:45 RichardHe 阅读(260) | 评论 (0)  编辑

给恋爱中的女孩的忠告

posted @ 2008-06-03 17:22 RichardHe 阅读(175) | 评论 (0)  编辑

仿函数、绑定、桥接、委托相关讨论

posted @ 2008-06-03 11:39 RichardHe 阅读(370) | 评论 (0)  编辑

posts - 94, comments - 138, trackbacks - 0, articles - 94

Copyright © RichardHe