(完整word版)流星雨的实现(word文档良心出品)

流星雨的实现1 设计要求与功能介绍:编写程序来模拟一组流星飞向地面的情景。地面用多行#来表示,流星用大写字母来表示。程序产生一组流星(比如10个),从屏幕顶部下降飞向地面。一组流星中,每个流星的字符颜

流星雨的实现 设计要求与功能介绍: 1 # 编写程序来模拟一组流星飞向地面的情景。地面用多行来表示,流星用大写字母来表 10 示。程序产生一组流星(比如个),从屏幕顶部下降飞向地面。一组流星中,每个流星 的字符颜色是随机的,下降的位置是随机的,下降的速度也是随机的。一个流星下落只能去 ## 掉一个号,当最后一行地面有被去掉时,程序终止。 设计思路 2 : screen2481 首先定义二维数组表示地面和天空,此数组是一个行列的字符数组。上面 ○1 5 的行表示天空,数组单元的值是空格;最下面的几行(如行)表示地面,数组单元的值 ’#’80*252580 是;整个屏幕的大小是,即行列,为了在输出最后一行时不换行滚屏,程 2481’\0’ 序只能利用上面的行空间。把数组定义成列的目的是,每行的最后字符赋值成, 就可以按照字符串的方式输出每行文本了。 程序在下降过程中,程序必须知道流星的字符、颜色、位置、速度,因此程序需 ○2 编写的 要定义以下几个数组变量:存放流星字符的数组,存放流星字符颜色的数组,存放流星行位 置的数组,存放流星列位置的数组,存放流星下降速度的数组。 screen21 输出时程序首先输出地面和天空,即输出定义的二维数组中的字符串,前行 ○3 3#screen[24][81] 是空行,后行是号。这样的字符矩阵就与整个屏幕对应起来。然后随时机 产生一组流星数据,包括字符、颜色、位置和速度。速度用一次下降多少行来表示,最大的 4randomrandom 速度是。由于要随机产生这些数据,因此需要调用函数。(函数的原型是 intrandom(intnum)0—num-1 ;这个函数产生一个之间的一个随机数。流星字符可以这 random(26)+’A’;random(16)+1 样产生:流星字符的颜色可以这样产生:;流星下降的位置 random(4)+11 可以这样产生:;流星的行位置一开始都是;流星的列位置可以这样产生: random(80)+1randomrandomize() ;但要保证所有流星的列位置不能相同。调用之前,用库 stdlib.h 函数进行初始化。两个库函数都在文件中。)设置后,每个流星按照自己的速度下 落,所谓的下落就是逐行移动流星字符:在下一行新的位置上显示流星字符,在原来的位 置上显示空格以便擦除流星字符,然后再延迟等待几十毫秒。这样循环往复就构成了流星下 落的动画。但要注意,流星的速度各不相同,而一次下落多行的流星也要逐行下落。如果 screen’#’ 流星的新位置所对应的的单元格的值是,则表示撞到了地面。这种情况下在流星 #screen 的新位置上输出空格,擦除号,并且对相应的单元赋值为空格,流星字符也要赋值 为空格,以表示流星消失。 screen[23] 当中任何一个单元格是空格时,程序终止。 ○4 3 程序框图

腾讯文库(完整word版)流星雨的实现(word文档良心出品)