| 作品名称 | 时间 | 开发环境 | 简介 |
| Go V1.0 | 1996.3~1996.7 | DOSV6.22 QbasicV1.1 |
基本上实现了规则判断。当时的目标是先做规则判断,然后做棋谱管理,最后做机器对弈。由于资料匮乏,程序设计也处于学习阶段,设计水平不高。唯一的亮点是经过思考和分析,建立了基本正确的规则判断数据结构和模型。代码规模有1KLOC左右。 |
| Go V3.0 | 1996.9~1997.7 | DOSV6.22 QuickBasicV4.5 |
在1.0的基础上,又实现了棋谱管理功能。界面也做了一些美化。采用可编译的Basic版本,编译出了可执行程序。代码规模2KLOC左右。 |
| WoodFox V1.0 | 1997.9~1998.7 | Windows95 VB3 |
开始学习Windows下编程。抛弃了Go,开始设计WoodFox。找到一些有关围棋程序的简单资料,对实现方式有了一个大致了解。这个版本实现了Windows下的界面,可提供人人对弈和人机对弈。但机器对弈算法较弱。采用了深度为1的全盘搜索,用固定的影响矩阵构造评估函数。是机器对弈的初步尝试。代码规模2KLOC左右。 |
| WoodFox V1.5 | 1998.9~1999.5 | Windows95 Delphi 4 |
这一时期编程工具开始转移到Pascal/Delphi上。这一版本重点实现机器对弈。实现了陈志行在一篇短文中所描述一些算法,例如分块、死活、局部搜索等。具有约29级左右的水平。开局较好,但完全不懂收官。与MFGO早期版本对弈,前半盘能领先。代码规模5KLOC左右。 |
| WoodFox V1.6 | 2002.11~2002.12 | Windows98 Delphi6 |
这个版本重点是改善算法,增加模式识别和一些程序跟踪调试功能。代码规模达到16K多。修改或新增的特性主要为:
- 重写了TTeam、TGroup、TGame、TPosition等底层类。原来的界面和AIPlayer代码基本上完全重写。
- 改善了串死活判断的搜索算法,采用了alpha-beta剪枝,并加入征子知识,搜索效率有较大提高,比老算法提高6到10倍。
- 增加了一些跟踪调试功能,可以观察分串、分块的结果,观察着点选择的过程,观察串和块死活判断的过程,统计各步骤的时间性能等等。
- 增加了模式识别功能。模式库采用函数形式。
- 增加了模式管理器,能够以图形方式编辑模式,保存为模式文件,并可生成模式库单元的代码。用此方法生成了约6K代码。
|
| Rex Mines V1.0 | 1997.9~1998.7 | Windows95 VB3 |
为了愚弄一个喜欢玩扫雷的同学而仿制的程序。做的比较成功,到了可以乱真的地步。 |
个人财务助理 Personal Financial Assistant V1.0 | 1999.9~1999.12 | Windows95 Delphi4 |
软件工程课程的课程设计。第一次写数据库方面的软件,BUG不少,但是功能实用,自己曾经用了较长时间。 |
| Diary V1.0 | 1999.9~1999.9 | Windows95 Delphi4 |
有简单加密功能的文本编辑工具,最初是用来记日记的。由于加密算法极简单,被同学简单破解了。 |
| PL1 Compiler V1.0 | 1999.4~1999.6 | UNIX/DOS
|
编译原理课程设计。实现了一种类Pascal的语言PL1。有整型、布尔型等数据类型,支持Pascal风格注释,支持一般的控制结构如赋值、for循环、while循环、if语句等等,有函数和过程。可以用来写简单应用程序。没有实现真编译,原代码编译成自定义的机器码后解释执行。 |
| Greedy Snake V1.0 | 2001.1~2001.1 | Windows98 Delphi5 |
贪吃蛇小游戏。蛇是自己画的,有简单动画,有一定可玩性。 |