写扫雷的一点感想(初学的朋友可以看看)
2003-10-09 21:59
741 查看
//因为自己的水平很菜,所以写写小程序锻炼锻炼,高手就不要看/了。
好吧,说一些简单但是我认为重要的东西吧。
在我这个层次(很菜很菜)的人看来,写大程序应该是一种很神圣的事情了。因为一般在公司做事,就是分配一些模块,小的几百行,大的上万行,就基本搞好了。
自己完整地写一个上十万行的东西(当然,不能烂到连自己都不喜欢的程度啊),在我看来,应该还是需要一些东西的。
至少需要一些程序框架设计的思想在里面,没有面向对象设计思想在里面,以我目前的水平来看,基本上结构是很难清楚 的。
好了。我们开始涉入正题了。
就是程序的框架和设计思想,我要结合扫雷来说。(扫雷?是,扫雷,window系统自带的那么几个小游戏中的一个,很简单吗?我不觉得)。
注:我在分配地雷的时候不知道算法了。所以到www.google.com中搜索了一下,看了两个人的扫雷的代码,直白点说吧,一个写的代码,我只看了30秒,就被我从我的硬盘上shift+delete了。
原因是:
1 结构很混乱(这个至关重要),程序没有好的结构就表示你的思想一片混乱。
2 没有注释,格式完全没有规范。格式,这个在我看来,也是不能容忍的。
另一个的代码也是,就是一个CxxDlg就交代了。
在我目前的眼光来看,扫雷虽然小,却可以很好的体现面向对象的思想。
简单的分析一下,各位看官见笑了。
三个层次。(project为基于对话框的project)
CXXDlg 对象(对话框,管理地雷阵)
|
|
CMesh对象(地雷阵,管理一个一个的格子)
|
|
CGrid对象(一个一个的格子,最基本的单位)
这就是我所理解的扫雷和面向对象的思想的具体体现。
在分清了对象层次后,就好着手考虑属性和方法,说起来很简单,在我看来,没有一定的代码经验,在分析属性和方法的过程上是会有一点点问题的,这个问题是需要实践的,不好说。
然后必须确定一个原则:由谁来处理消息,答案是:谁的消息就让谁来处理。
上面是我的处理原则(我的实践证明,很有效)。
举例来说吧,在某一个格子区域单击了鼠标左键,怎么处理?
我的处理:首先是 CXXDlg 对象得到消息,传递给CMesh对象,CMesh对象再传递给CGrid对象处理。
好吧,就这么多吧。
luwenguang_@hotmail.com(如果你愿意的话)
好吧,说一些简单但是我认为重要的东西吧。
在我这个层次(很菜很菜)的人看来,写大程序应该是一种很神圣的事情了。因为一般在公司做事,就是分配一些模块,小的几百行,大的上万行,就基本搞好了。
自己完整地写一个上十万行的东西(当然,不能烂到连自己都不喜欢的程度啊),在我看来,应该还是需要一些东西的。
至少需要一些程序框架设计的思想在里面,没有面向对象设计思想在里面,以我目前的水平来看,基本上结构是很难清楚 的。
好了。我们开始涉入正题了。
就是程序的框架和设计思想,我要结合扫雷来说。(扫雷?是,扫雷,window系统自带的那么几个小游戏中的一个,很简单吗?我不觉得)。
注:我在分配地雷的时候不知道算法了。所以到www.google.com中搜索了一下,看了两个人的扫雷的代码,直白点说吧,一个写的代码,我只看了30秒,就被我从我的硬盘上shift+delete了。
原因是:
1 结构很混乱(这个至关重要),程序没有好的结构就表示你的思想一片混乱。
2 没有注释,格式完全没有规范。格式,这个在我看来,也是不能容忍的。
另一个的代码也是,就是一个CxxDlg就交代了。
在我目前的眼光来看,扫雷虽然小,却可以很好的体现面向对象的思想。
简单的分析一下,各位看官见笑了。
三个层次。(project为基于对话框的project)
CXXDlg 对象(对话框,管理地雷阵)
|
|
CMesh对象(地雷阵,管理一个一个的格子)
|
|
CGrid对象(一个一个的格子,最基本的单位)
这就是我所理解的扫雷和面向对象的思想的具体体现。
在分清了对象层次后,就好着手考虑属性和方法,说起来很简单,在我看来,没有一定的代码经验,在分析属性和方法的过程上是会有一点点问题的,这个问题是需要实践的,不好说。
然后必须确定一个原则:由谁来处理消息,答案是:谁的消息就让谁来处理。
上面是我的处理原则(我的实践证明,很有效)。
举例来说吧,在某一个格子区域单击了鼠标左键,怎么处理?
我的处理:首先是 CXXDlg 对象得到消息,传递给CMesh对象,CMesh对象再传递给CGrid对象处理。
好吧,就这么多吧。
luwenguang_@hotmail.com(如果你愿意的话)
相关文章推荐
- 初学的朋友经常遇到的问题!可以看看这里
- 替朋友发几则招聘信息,找工作的朋友可以看看 呵呵
- 初学着可以看看(1)
- 说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
- 网上看到的排序源码, 准备面试的朋友可以看看
- 我心目中的牛程序员、我们可以对比看看(人家还是看多年朋友面子上才肯帮忙1周,至少需支付1万元辛苦费)
- 说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
- 想学习maven2 的朋友可以来看看这篇文章
- 有兴趣的朋友可以看看,两个lisi参数能否传出
- 泛型小记[平日待加]--初学泛型者可以看看[更新07-3-28]
- 提供 Watir 入门 PPT 下载--有兴趣了解 Web 测试自动化的朋友可以看看
- 计算机视觉进展二十年 (1995~2015) 转载~有兴趣的朋友可以看看哦
- 一篇很经典的文章,建议工作2年以上的朋友都可以看看
- javascript 语法基础 想学习js的朋友可以看看
- 准备加入软件开发行业的朋友可以看看
- 提供 Watir 入门 PPT 下载--有兴趣了解 Web 测试自动化的朋友可以看看
- 自动记录数据录入时间不懂得VBA的朋友可以看看
- 我心目中的牛程序员、我们可以对比看看(人家还是看多年朋友面子上才肯帮忙1周,至少需支付1万元辛苦费)
- 刚参加工作的朋友可以看看
- [导入]javascript 实现像excel样的自动求和功能。(初学的可以看看)