荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: noid (奥运在北京), 信区: Program
标  题: 大厦是如何建起来的(初稿) *四*
发信站: 荔园晨风BBS站 (Wed Oct 30 23:13:03 2002), 站内信件

    如果是面向过程的编程方法,则主要的分割思路是把功能相近的和要经常
重复执行的运算过程划分为一个功能块(一般写为函数),步骤是先写这个问
题的粗线条然后在展开每个环节,当这些环节展开以后有重复的细节就把它们
都合写为一个细节,先把问题想得简单,这样就不会一开始编程就头都大了。
总之把这些功能块划分得越独立越好。
    比如,如果要写一个俄罗斯方块的程序可以这样进行分割:根据这个游戏
的流程,我们可以初步分割成三个模块:画游戏外框、随即生成一个方块、方
块下坠,它们的流程是先画游戏外框然后在方块停止的位置不高于某一值的情
况下不停地重复以下步骤:生产一方块然后不停地下坠方块直至接触“地面”。
画游戏外框就不必再分割了,而方块下坠就要再分割为:向下移动一格、接收
键盘输入、判断方块是否已经接触“地面”这三个功能块。前面两个模块都是
要使得画面产生变化的,如果再分别写画图的功能就显得罗嗦了,所以这两个
功能块只需操作游戏的数据(主要是记录方块位置的数据)就可以了,在改动
完数据后再调用一个画图函数就可以,这个画图函数就是根据当前游戏数据画
图的函数。而在接收键盘输入就要根据键盘键盘的输入来平移或者旋转方块,
在这过程中还得写三个功能块:平移方块、旋转方块、判断移动后方块是否会
出界或者和别的方块重叠。(源程序另附)

    两种分割方法的区别与联系。面向对象的分割方法与面向过程的分割方法
标  题: 大厦是如何建起来的(初稿) *四*
发信站: 荔园晨风BBS站 (Wed Oct 30 23:13:03 2002), 站内信件

    如果是面向过程的编程方法,则主要的分割思路是把功能相近的和要经常
重复执行的运算过程划分为一个功能块(一般写为函数),步骤是先写这个问
题的粗线条然后在展开每个环节,当这些环节展开以后有重复的细节就把它们
都合写为一个细节,先把问题想得简单,这样就不会一开始编程就头都大了。
总之把这些功能块划分得越独立越好。
    比如,如果要写一个俄罗斯方块的程序可以这样进行分割:根据这个游戏
的流程,我们可以初步分割成三个模块:画游戏外框、随即生成一个方块、方
块下坠,它们的流程是先画游戏外框然后在方块停止的位置不高于某一值的情
况下不停地重复以下步骤:生产一方块然后不停地下坠方块直至接触“地面”。
画游戏外框就不必再分割了,而方块下坠就要再分割为:向下移动一格、接收
键盘输入、判断方块是否已经接触“地面”这三个功能块。前面两个模块都是
要使得画面产生变化的,如果再分别写画图的功能就显得罗嗦了,所以这两个
功能块只需操作游戏的数据(主要是记录方块位置的数据)就可以了,在改动
完数据后再调用一个画图函数就可以,这个画图函数就是根据当前游戏数据画
图的函数。而在接收键盘输入就要根据键盘键盘的输入来平移或者旋转方块,
在这过程中还得写三个功能块:平移方块、旋转方块、判断移动后方块是否会
出界或者和别的方块重叠。(源程序另附)

    两种分割方法的区别与联系。面向对象的分割方法与面向过程的分割方法
的最大区别在于面向对象的分割方法是静态的思维,而面向过程的分割方法是
动态的思维,比如写苹果,面向对象就是要把苹果分为红苹果、青苹果,而面
向过程就是要把苹果从生涩到成熟的过程分为了几个阶段,再把这几个阶段的
每一天再分开写。当然很多时候这两种方法是结合到一起写的。比如要描述一
个社会时先用面向对象的分割方法把这个社会的人分类,在定义每一类人的行
为的时候再用面向过程的分割方法。

--
勇敢的人不一定长命
但是懦弱的人等于没有活过

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.32.243]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店