第6回:关于计算机模拟状态机在工程实践编程中的实际应用(1)

实践是检验真理的唯一标准。

前几回关于状态机和人工智能的讨论比较抽象,似乎并没有什么实际意义,因此,接下来几篇博文,我将举一个实际的例子用于展示状态机理论在实际工程中的应用(其实,是作者在经过大量的工程应用之后,才有能力进行一定的理论抽象),从这个实例中,读者也应能感受到作者对计算机编程实践的思考。

类似于文章的起承转合,以及作者需求至上的行为方式,作者对于工程文章的介绍一般包含三个部分:分别是:

  • 需求,为什么要去做。
  • 边界,做到什么程度。
  • 实现,制作实现过程。

没有边界的工程,或者边界随着需求扩散的工程是不具备可实现性的,换言之,可实现的需求其边界一定是收敛的。

需求

工程最终的实现效果如以下视频:

边界

  • 左侧作为显示区域模拟显示一个球在一定范围内进行碰撞运动。
  • 右侧list中包含运动参数,速度与位置之类(前文对粒子的分析)。
  • 使用XML保存配置参数(模拟环境参数),也是用序列化保存工艺参数(模拟对象参数)。
  • 可以控制运动状态,包括开始,暂停和停止。

实现

工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。

节选自《论语》

制作任何一个程序基本上都需要三个应用程序,编辑程序,编译程序,调试程序,通常这三个程序会集成在一个程序之中,这个程序称作集成开发环境(IDE),例如Visual Studio。作者通常使用C++编程,另外作者发现QT制作界面比使用VS便捷,但是QT作为集成开发环境中集成的编译器,似乎不能够加载windows dll,因此作者使用qt5.5.1 IDE作为源代码的编辑程序,在其中使用VS2010中的编译器用于加载windows dll并编译PE文件,调试程序也是用windows 的dbg_x86.msi。作者还额外使用了vld-2.5.1-setup.exe作为内存泄漏检测工具,其文件名如下截图:

qt已经支持VS编译器和调试器,因此以上程序只需安装就可以使用qt建立开发工程。


         不喜欢 0

D7FECB19D148C1AD1D829F1CD0E23DB0

发表回复

站内搜索

最新评论

归档日历

2024 年 9 月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

标签云