2015年5月13日

A*(A星)算法python实现

摘要: 在春节放假前两天我偶然看到了A\*算法(A\*算法是一个启发式的地图寻路算法),感觉挺有意思。正好放假前也没有什么事情,就花了一个下午写出算法的骨架,节后又花了半天时间完善屏幕输出的细节并且调试完成。该实现只是一时兴起的随手而作,没有考虑性能和扩展性等问题。正在学习A\*算法的朋友可以拿去随便折腾。 Email: wang.zhigang... 阅读全文

posted @ 2015-05-13 14:06 绝知此事要躬行 阅读(8029) 评论(0) 推荐(0) 编辑

A*(A星)算法Go lang实现

摘要: 之前发表一个A*的python实现,连接:点击打开链接 最近正在学习Go语言,基本的语法等东西已经掌握了。但是纸上得来终觉浅,绝知此事要躬行嘛。必要的练手是一定要做的。正好离写python版的A*不那么久远。这个例子复杂度中等。还可以把之前用python实现是没有考虑的部分整理一下。 这一版的GO实现更加模块化了,同时用二叉堆来保证了openlist的查找性能。可以说离应用到实现工程中的要求差距不... 阅读全文

posted @ 2015-05-13 14:06 绝知此事要躬行 阅读(510) 评论(0) 推荐(0) 编辑

[原]TCP/UDP使用细节备忘

摘要: [原]TCP/UDP使用细节备忘 首先,TCP和UDP的基本区别是TCP提供可靠的面向连接的流传输;UDP提供不可靠的基于数据包的传输; 所谓可靠就是说发送端调用send后,数据就一定会发送给接收端。虽然这当中可能会消耗很长的时间,或者实在无法发送的话发送端或者接收端也能得到适当的通知。而不可靠传输是指,发送端调用send后,接收端能不能收到数据... 阅读全文

posted @ 2015-05-13 14:03 绝知此事要躬行 阅读(466) 评论(0) 推荐(0) 编辑

关于项目技术选型的思考

摘要: 2014年12月加入了一个新的项目,这是一个游戏的辅助项目,其实可以认为是一个典型的互联网产品。这个综合使用了c/s和b/s两种结构。因为游戏相关的项目采用c/s是自然而然的事情,同时运用b/s结构就值得玩味了。在接手该项目b/s相关部份工作的过程中促使我开始认真思考关于一个技术团队在开发一个产品的过程中应该如何选择技术和工具的问题。这个问题完全没有标准答案,但实际上在纷乱无章的表象背后其实还是有... 阅读全文

posted @ 2015-05-13 14:02 绝知此事要躬行 阅读(409) 评论(0) 推荐(0) 编辑

go lang学习笔记——channel机理及调度理解

摘要: 《Go语言编程》一书介绍了libtask库,可以认为这个库等同于go的底层goroutine实现。libtask库的channel的数据结构如下:struct Alt{ Channel *c; void *v; unsigned int op; Task *task; Alt *xalt;};struct Altarray{ Alt **a; unsign... 阅读全文

posted @ 2015-05-13 13:30 绝知此事要躬行 阅读(496) 评论(0) 推荐(0) 编辑

2012年11月7日

动态库(.so)链接静态库(.a)的情况总结

摘要: 动态库(.so)链接静态库(.a)的情况总结一般来说在链接时想要使用静态库有三种方法:1、link时加上 -static 选项;当加上 -static选项后,gcc会把所有用到的库都做静态连接。2、link时直接指定想要静态连接的.a文件的绝对路径。优点是除非.a文件不存在,否则肯定有效;缺点也是很明显,拿到其他机器上编译时,.a文件也必须在相同的路径下存放。3、在要静态连接的库前指定-Bstat... 阅读全文

posted @ 2012-11-07 13:21 绝知此事要躬行 阅读(15637) 评论(1) 推荐(0) 编辑

2010年1月7日

COM接口聚合实现解惑(C++虚表)

摘要: 最近看潘爱民的《COM原理与应用》,看到接口的聚合实现时,产生一个疑惑。COM的这个特性的背后隐藏着一个关于C++虚表的知识点。如果对C++的虚表没有一定的认识就会被绕进去,被搞得稀里糊涂。经过和朋友的一番探讨总算搞清楚。特整理成此文我们知道支持被聚合使用的CA接口要实现一组和IUnknown接口一致的非委托Unknown接口,这一组接口完成实际的QueryInterface, AddRef 和 ... 阅读全文

posted @ 2010-01-07 16:16 绝知此事要躬行 阅读(935) 评论(1) 推荐(1) 编辑

导航