我不是编程高手,可我并不因此自卑,虽然说编程者的能力和软件作品的质量成正比,但事情总有例外:高手云集,并非个个都出精品;软件璀璨,也有一些出自下里巴人。
    编程需要有极强的逻辑思维能力,如果你在猜谜语和脑筋急转弯游戏中胜多败少,你就有可能成为一个优秀的编程者。
    编程者还需要有恒心和毅力,面对枯燥的语句源代码,有些困难似乎无法逾越,在山重水复疑无 路时你不要轻言放弃,柳暗花明就孕育在“再坚持 一下的努力之中”。
    三年前的某一段时间,我常在网上玩斗地主游戏,感觉自己记忆力不太强,想在网上下载一个记牌器,下了三、四个不同的记牌器,居然没有一个能在游戏中显示牌数变化。也许那个年代好的记牌器还没有编出来;也许我的运气极差,人家能下载到好的,我却把差的都下到手上来了。
    从那时起我就误以为网上没有可用的记牌器下载,同时我也认为编一个记牌器是很难很难的事,别人编不出来,我自己就更不是那个料了。
    去年底下岗后,闲极无聊,思路就常常在记牌器应该怎样编写上徘徊。从勉强能运行的丑小鸭到羽毛渐丰,不记得半年来修改了多少次,编软件的过程就是一个不断寻找正确思路的过程。
    现在终于知道记牌器有两大类:第一类功能强大,不仅能显示其余两家牌的汇总,还具体知道左家有什么牌,右家有什么牌。工作原理是截获用户的IP数据包,解译游戏中心的指令。第二类不损害用户安全,工作原理是扫描屏幕上的牌图形,计算出另两家牌的分布。
    编写第一类记牌器的技术难点是:一是要编写出一个钩子程序来截获用户的IP数据包;二是要辛辛苦苦破译数据包的代码。安全隐患给第一类记牌器 的发展蒙上了阴影,由于截获用户的IP数据包必须修改注册表来获得授权,所以会触发瑞星杀毒的注册表监控报警,在病毒、木马横行的今天,用户的安全意识越来越强,如果用户在报警窗口中选择了拒绝修改,这类记牌器就瘫痪了。
    编写第二类记牌器的技术难点是:一是要编写出有效率的座标区域截图来扫描牌图形,二是要整理牌的色素分布数据库来识别牌。由于从Win98到WinXP各种操作系统的游戏界面都不一样,再加上屏幕分辩率和颜色设置都会造成扫描的座标依据和牌的色素数据差异,因此这类记牌器成败的关键是能不能正确识别不同的游戏界面和数据库中是否整合了大批不同界面的完整资料。
    我编写的记牌器就发布在《编程爱好者》的《网友作品》中,下个月我就要重新上岗再就业了,不知道那时忙不忙?还有没有闲心和闲时编程序玩了?[em3]