程序设计之分类细化

来源:互联网 发布:淘宝v4要花多少钱 编辑:程序博客网 时间:2024/05/02 13:15

这是我第一次写类似的东西,生怕自己写不好,只是将自己的经验与想法拿出来与大家分享讨论。
所谓程序员,就是人与计算机进行交流的翻译。如何让人的思想以电脑的形式表现出来,如何让计算机以人的思想表现出直观的东西,这就是程序员的工作。长久以来,程序工作者所进行的工作都是让计算机更人性化的工作,无论你用哪种语言,无论你用什么系统,计算机的人性化就是我们最终的目标,发展到极致,无非就是完全的人工智能吧!

但是在目前,我们如何来完成我们的工作呢!要让计算机帮我们工作首先就要让计算机明白我们要做什么。
大家都知道,程序员这个行业的要求很重要的一条是逻辑思维能力强,“逻辑”是什么意思呢?一门研究思维和论证有效性的规范和准则的科学,传统上包括定义、分类和正确使用词项的原则,正确云谓的原则,以及推理和论证的原则。思维的规律。
逻辑表现在计算机科学上,就是将人的思想进行准确的定义,也就是要做到准确的需求设定。然后将人实

现这些思想的过程,不断的进行分类,细化,直到成为计算机可以理解的程度。

以前曾经做过这样一个小东西,QQ连连看的外挂程序,不是使用网络技术进行封包拦截的那种,是单纯的在客户端进行截图,判断是否能连,再控制鼠标自动点击的一个小程序。首先要考虑我的目标是什么,就是要将能消掉的方块消掉。人是怎么实现的呢,首先我们通过跟睛获取屏幕上的图像,在大脑中分析哪些是相同的,再分析这些相同的能不能再两个拐角之内连上,接着就是控制手去点那些方块!整个过程就是这样,让计算机来实现当然同样也是这样的过程,只是它是直接从屏幕上截图,再分成小方块,再每个进行比较,把相同的记下来,再每对相同的方块判断是不是能连,再控制鼠标点击能连的方块。关键在于判断相同的方块是不是能连的这一步,因为这一步人是如何实现的我们是不知道的,人眼睛一看马上就知道能不能连上,人脑真的很牛。现在的计算机要实现这一步我们就要将它分类,细化到计算机能理解的程度,根据规则两个方块能连的条件是连线中没有其它方块阻挡,且连线不超过两个拐角。我们就可以从这里入手,对其分类,两个方块的连线有哪几种,必然是没有线(相邻),一条直线,两条直线(一个拐角),三条直线(两个拐角),大家自己画个图就知道了规律是很好找的,其实就是根据两个方块的位置判断有哪几种情况,再分别判断,这时就可以写出下面的伪代码

if(是否相邻)
{
  //直接点掉
}
else if(是否在同一行或同一列)
{
  //判断一条线能不能连
  //判断三条线能不能连(两个拐角)
}
else if(不在同一行也不在同一列)
{
  //判断两条线能不能连(一个拐角)
  //判断三条线能不能连(两个拐角)
}

然后我们还要再继续对每种分类进行细化,直到可以写出具体代码。这里就不详细说了,源码可以到www.lovesha.com中的work一栏中下载。另,这个外挂程序已经不能用了,在一次QQ连连看客户端升级之后,这种方法就不行了,主要是对鼠标的自动点击做了手脚,只有第一下点击是有效的,之后的点击都没有效果了,呵呵,我用这个升到了处女座,之后也没再研究过,没什么意思了!

这只是通过一个小程序的例子来说明一下程序设计的基本思路,扩展开来,最常用的三层或N层架构其实也是一个进行分类然后细化的过程。掌握了这个方法以后,对于大部分功能的实现会使你有个非常清晰的结构,先进行分类写出伪代码,再逐步细化并填充。