随笔分类 -  算法

摘要:《用electron制作俄罗斯方块游戏》 后续文章,智能程序玩俄罗斯方块游戏。 背景 前不久用ES6完成了基本的俄罗斯方块游戏,今天已经完成了一个初步的智能算法,可以自动玩俄罗斯方块了,让自己的想法朝实现更近了一步。 效果图 第一次运行,消除了1398行,窃喜! 程序结构 主要关注智能算法,结构简单 阅读全文
posted @ 2016-05-29 23:15 zhoutk 阅读(2739) 评论(3) 推荐(6) 编辑
摘要:设计思路设计一个类,根结点只可读取,具备构造二叉树、插入结点、删除结点、查找、 查找最大值、查找最小值、查找指定结点的前驱和后继等功能接口。二叉排序树概念它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结... 阅读全文
posted @ 2015-01-15 09:59 zhoutk 阅读(838) 评论(0) 推荐(0) 编辑
摘要:如果一个字符串可以由某个长度为K的字符串重复多次得到,我们说该串以K为周期。给定一个串,输出它的最小周期。(function (){ arr="adacdefadacdefadacdefadacdefadacdefadacdef"; var len =arr.length; for(var i=1;i0){ console.log(i); break; } }})(); 阅读全文
posted @ 2014-03-07 23:37 zhoutk 阅读(324) 评论(0) 推荐(0) 编辑
摘要:最近在看反射,突然想写一个ORM工具,要轻量级的,不要配置文档,先不管效率,就是一个小工具,在项目初期方便挂数据库。我的目标就是在数据库中建个表,在项目中写个模型,然后用上这个ORM工具,就能实现数据库的基本增删改查。有想法就动手做,翠花上代码:增public bool Insert(object entity) { Type t = entity.GetType(); PropertyInfo[] properties = t.GetProperties(); if (properties.Count<Prope... 阅读全文
posted @ 2013-01-09 00:05 zhoutk 阅读(4728) 评论(15) 推荐(7) 编辑
摘要:最近有项目要做一个高性能网络服务器,决定下功夫搞定完成端口(IOCP),最终花了一个星期终于把它弄清楚了,并用C++写了一个版本,效率很不错。但,从项目的总体需求来考虑,最终决定上.net平台,因此又花了一天一夜弄出了一个C#版,在这与大家分享。一些心得体会:1、在C#中,不用去面对完成端口的操作系统内核对象,Microsoft已经为我们提供了SocketAsyncEventArgs类,它封装了IOCP的使用。请参考:http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynceventargs.aspx?cs-s 阅读全文
posted @ 2012-12-26 10:16 zhoutk 阅读(26903) 评论(58) 推荐(26) 编辑
摘要:View Code typedef int DataType;struct Node{ DataType entry; Node * next; Node(); Node(DataType item, Node * add_on = NULL);};class DyStack{public: DyStack(); bool empty() const; ErrorCode push(const DataType &item); ErrorCode pop(); ErrorCode top(DataType &item) const; ... 阅读全文
posted @ 2012-10-26 00:34 zhoutk 阅读(336) 评论(0) 推荐(0) 编辑
摘要:C#队列的循环实现:View Code class MyQueue <T> { private const int MAXLIMIT = 10; private int count; private int rear, front; private T[] entry = new T[MAXLIMIT]; public MyQueue() { count = 0; rear = MAXLIMIT - 1; front = 0; ... 阅读全文
posted @ 2012-10-24 19:42 zhoutk 阅读(910) 评论(0) 推荐(0) 编辑
摘要:C++队列的循环实现:View Code const int MAXQUEUE = 10;template<class T>class ZtkQueue {public: ZtkQueue(); bool empty() const; ErrorCode append(const T &x); ErrorCode serve(); ErrorCode retrieve (T &x)const; bool full() const; int size() const; void clear(); ErrorCode serve_and_ret... 阅读全文
posted @ 2012-10-24 00:20 zhoutk 阅读(252) 评论(0) 推荐(0) 编辑
摘要:用顺序结构(数组)与模板技术实现Stack如下:View Code class MyStack <T> { private const int MAXSTACK = 10; private int count; private T[] entry = new T[MAXSTACK]; public MyStack() { count = 0; } public bool empty() { bool outcome = true; if (count > 0) ... 阅读全文
posted @ 2012-10-16 09:52 zhoutk 阅读(299) 评论(0) 推荐(0) 编辑
摘要:用顺序结构(数组)与模板技术实现Stack如下:View Code const int MAXSTACK = 10;template<class T>class ZtkStack{public: ZtkStack(); bool empty() const; ErrorCode pop(); ErrorCode top(T &item) const; ErrorCode push(const T &item);private: int count; T entry[MAXSTACK];};template<class T>ZtkStack<T> 阅读全文
posted @ 2012-10-16 00:49 zhoutk 阅读(328) 评论(0) 推荐(0) 编辑