程序设计之分类细化
来源:互联网 发布:淘宝v4要花多少钱 编辑:程序博客网 时间:2024/05/02 13:15
这是我第一次写类似的东西,生怕自己写不好,只是将自己的经验与想法拿出来与大家分享讨论。
所谓程序员,就是人与计算机进行交流的翻译。如何让人的思想以电脑的形式表现出来,如何让计算机以人的思想表现出直观的东西,这就是程序员的工作。长久以来,程序工作者所进行的工作都是让计算机更人性化的工作,无论你用哪种语言,无论你用什么系统,计算机的人性化就是我们最终的目标,发展到极致,无非就是完全的人工智能吧!
但是在目前,我们如何来完成我们的工作呢!要让计算机帮我们工作首先就要让计算机明白我们要做什么。
大家都知道,程序员这个行业的要求很重要的一条是逻辑思维能力强,“逻辑”是什么意思呢?一门研究思维和论证有效性的规范和准则的科学,传统上包括定义、分类和正确使用词项的原则,正确云谓的原则,以及推理和论证的原则。思维的规律。
逻辑表现在计算机科学上,就是将人的思想进行准确的定义,也就是要做到准确的需求设定。然后将人实
现这些思想的过程,不断的进行分类,细化,直到成为计算机可以理解的程度。
以前曾经做过这样一个小东西,QQ连连看的外挂程序,不是使用网络技术进行封包拦截的那种,是单纯的在客户端进行截图,判断是否能连,再控制鼠标自动点击的一个小程序。首先要考虑我的目标是什么,就是要将能消掉的方块消掉。人是怎么实现的呢,首先我们通过跟睛获取屏幕上的图像,在大脑中分析哪些是相同的,再分析这些相同的能不能再两个拐角之内连上,接着就是控制手去点那些方块!整个过程就是这样,让计算机来实现当然同样也是这样的过程,只是它是直接从屏幕上截图,再分成小方块,再每个进行比较,把相同的记下来,再每对相同的方块判断是不是能连,再控制鼠标点击能连的方块。关键在于判断相同的方块是不是能连的这一步,因为这一步人是如何实现的我们是不知道的,人眼睛一看马上就知道能不能连上,人脑真的很牛。现在的计算机要实现这一步我们就要将它分类,细化到计算机能理解的程度,根据规则两个方块能连的条件是连线中没有其它方块阻挡,且连线不超过两个拐角。我们就可以从这里入手,对其分类,两个方块的连线有哪几种,必然是没有线(相邻),一条直线,两条直线(一个拐角),三条直线(两个拐角),大家自己画个图就知道了规律是很好找的,其实就是根据两个方块的位置判断有哪几种情况,再分别判断,这时就可以写出下面的伪代码
if(是否相邻)
{
//直接点掉
}
else if(是否在同一行或同一列)
{
//判断一条线能不能连
//判断三条线能不能连(两个拐角)
}
else if(不在同一行也不在同一列)
{
//判断两条线能不能连(一个拐角)
//判断三条线能不能连(两个拐角)
}
然后我们还要再继续对每种分类进行细化,直到可以写出具体代码。这里就不详细说了,源码可以到www.lovesha.com中的work一栏中下载。另,这个外挂程序已经不能用了,在一次QQ连连看客户端升级之后,这种方法就不行了,主要是对鼠标的自动点击做了手脚,只有第一下点击是有效的,之后的点击都没有效果了,呵呵,我用这个升到了处女座,之后也没再研究过,没什么意思了!
这只是通过一个小程序的例子来说明一下程序设计的基本思路,扩展开来,最常用的三层或N层架构其实也是一个进行分类然后细化的过程。掌握了这个方法以后,对于大部分功能的实现会使你有个非常清晰的结构,先进行分类写出伪代码,再逐步细化并填充。
- 程序设计之分类细化
- 细化 TLS原理及分类
- Android Activity 之 细化
- 细化
- 细化
- 图像处理之Zhang Suen细化算法
- 图像处理之Zhang Suen细化算法
- 形态学处理算法之细化操作
- Nvidia SDK11 之 PNPatches(细化算法技术学习)
- 需求的细化方法之用例驱动
- 架构师之路工作量化与细化
- 目标细化
- 细化(thinning)
- 图像细化
- 细化算法
- 图像细化
- 细化算法
- 图像细化
- 天气
- CWindowImpl类
- 首次使用!
- SQL Server 2005与IBM DB2 v8.2之对比——Visual Studio和.NET开发人员的数据库平台(二)
- 使用Oracle9i的Flashback Query功能找回误删除的数据
- 程序设计之分类细化
- 20岁以下的参加超级女声, 20岁以上的在写博客
- 有事找我请在这留言。
- 使用開發工具出現該異常的情況總結
- java类得到汉字的首字符
- Imm.h文件
- 编程习惯
- 给自己一个成功的理由
- JAVA查询一个字符串中字符是不是有汉字