写扫雷的一点感想(初学的朋友可以看看)

原创 2003年10月09日 21:59:00

//因为自己的水平很菜,所以写写小程序锻炼锻炼,高手就不要看/了。

 

好吧,说一些简单但是我认为重要的东西吧。

在我这个层次(很菜很菜)的人看来,写大程序应该是一种很神圣的事情了。因为一般在公司做事,就是分配一些模块,小的几百行,大的上万行,就基本搞好了。

自己完整地写一个上十万行的东西(当然,不能烂到连自己都不喜欢的程度啊),在我看来,应该还是需要一些东西的。

至少需要一些程序框架设计的思想在里面,没有面向对象设计思想在里面,以我目前的水平来看,基本上结构是很难清楚 的。

 

好了。我们开始涉入正题了。

 

就是程序的框架和设计思想,我要结合扫雷来说。(扫雷?是,扫雷,window系统自带的那么几个小游戏中的一个,很简单吗?我不觉得)。

 

注:我在分配地雷的时候不知道算法了。所以到www.google.com中搜索了一下,看了两个人的扫雷的代码,直白点说吧,一个写的代码,我只看了30秒,就被我从我的硬盘上shift+delete了。

原因是:

1 结构很混乱(这个至关重要),程序没有好的结构就表示你的思想一片混乱。

2 没有注释,格式完全没有规范。格式,这个在我看来,也是不能容忍的。

另一个的代码也是,就是一个CxxDlg就交代了。

 

 

在我目前的眼光来看,扫雷虽然小,却可以很好的体现面向对象的思想。

简单的分析一下,各位看官见笑了。

 

三个层次。(project为基于对话框的project)

                  CXXDlg 对象(对话框,管理地雷阵)

                                     |

                                     |

                 CMesh对象(地雷阵,管理一个一个的格子)

                                     |

                                     |

               CGrid对象(一个一个的格子,最基本的单位)

 

这就是我所理解的扫雷和面向对象的思想的具体体现。

在分清了对象层次后,就好着手考虑属性和方法,说起来很简单,在我看来,没有一定的代码经验,在分析属性和方法的过程上是会有一点点问题的,这个问题是需要实践的,不好说。

 

然后必须确定一个原则:由谁来处理消息,答案是:谁的消息就让谁来处理。

上面是我的处理原则(我的实践证明,很有效)。

举例来说吧,在某一个格子区域单击了鼠标左键,怎么处理?

我的处理:首先是 CXXDlg 对象得到消息,传递给CMesh对象,CMesh对象再传递给CGrid对象处理。

 

好吧,就这么多吧。

luwenguang_@hotmail.com(如果你愿意的话)

python 写的扫雷游戏

#!/usr/bin/python #coding:utf-8 #python 写的扫雷游戏 import sys import random class MineSweeping(): ...
  • liuxingyu_21
  • liuxingyu_21
  • 2014年01月09日 16:34
  • 3003

C语言编写扫雷

扫雷: 定义两个二维数组:mine用来布雷、show用来显示扫雷情况、mine初始化为’0’、show初始化为’*’; 开始扫雷输入坐标、如果有雷、提示你踩雷了,本轮游戏结束,如果没雷继续扫直到扫...
  • xiaobingRSQ
  • xiaobingRSQ
  • 2016年11月17日 23:43
  • 3686

Qt--扫雷游戏---教程+源码

好久之前写了个扫雷,趁着今天有时间,将其发布上来
  • qq_34771697
  • qq_34771697
  • 2017年09月13日 20:42
  • 455

【matlab编程】Matlab版扫雷

我发现有些人平常闲着的时候会玩window自带的游戏,其中最常见的就是扫雷和纸牌。本来想用matlab编写全自动扫雷程序用来作弊,可是后来发现扫雷问题是NP完全问题(正如:旅行商NP难问题一样不能被解...
  • tengweitw
  • tengweitw
  • 2014年03月01日 18:36
  • 4221

没事写点啥(一)——C++扫雷

整天编学校的作业实在枯燥,不如……写点别的?
  • destinyson
  • destinyson
  • 2016年02月29日 14:17
  • 1764

c++趣味入门——扫雷游戏

阵列中的地雷、数字、空白格与标记格设计 用一个二维矩阵代表阵列: 元素值统一初始化为-1; 随机产生10组坐标,每组坐标对应地雷元素,共10个地雷,并均赋值为9,即地雷的元素值为9; 元素值为n(...
  • buptlrw
  • buptlrw
  • 2014年12月16日 16:11
  • 4857

Web扫雷(js)

这两天刚看完Head First系列的JavaScript,就想先写出点什么来试探一下自己。刚合上那本书的晚上在图书馆就开始想,第二天就开始着手写代码,写了一整天,第三天早上再加了几个js功能,以及改...
  • pilipala6868
  • pilipala6868
  • 2017年06月09日 16:12
  • 295

Unity中扫雷游戏的脚本编写

扫雷 1.首先写一个雷类: 每个雷对象代表游戏界面里的一个小方格, 这个类里需要有int型x和y来表示雷的坐标, 需要有int型num来表示该雷对象周围有几个雷, 需要有bool型issho...
  • yileino
  • yileino
  • 2013年07月30日 16:46
  • 1381

简单扫雷游戏中的编程方法学 - python实现

一、说明 该题来自国外大学的一个课堂作业,需求文档中要求采用一种自底向上(bottom-up)的编程方法,先实现最基本的函数,然后编写高层一点的函数来调用这些基本函数,先细节再慢慢抽象。为了引导学生,...
  • heyabo
  • heyabo
  • 2014年04月20日 16:50
  • 3652

扫雷:我的Java之路--第一个小作品

这学期开始学Java,也许是为了工作,也许是对编程有了一点点兴趣,所以学的稍微有一点用心。而老师也只讲了一些基本的语法和操作,其他的都是自己一步步摸索来的,所以想写一点点东西来让以后的自己看看。废话不...
  • AmazingZ
  • AmazingZ
  • 2015年06月04日 15:12
  • 6345
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写扫雷的一点感想(初学的朋友可以看看)
举报原因:
原因补充:

(最多只允许输入30个字)