课 程 实 验 报 告
课程名称: 软件工程
专业班级: 计卓1301 学 号: U201314924 姓 名: 文豪 指导教师: 袁凌老师 报告日期: 2014.10.24
计算机科学与技术学院
1
目 录
软件名称:俄罗斯方块
1. 软件定义. . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
a) 问题定义. . . . . . . . . . . . . . . . . . . . . . . . . . .3 b) 可行性研究. . . . . . . . . . . . . . . . . . . . . . . . . .3 c) 需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . .4 i. 设计棋盘 . . . . . . . . . . . . . . . . . . . . . . . . .5 ii. 设计棋子 . . . . . . . . . . . . . . . . . . . . . . . . .6 iii. 按键功能设置(上下左右). . . . . . . . . . . . . . . . . . . .7 iv. 棋子落下的动画实现以及越界检测. . . . . . . . . . . . . . . .9 v. More functions . . . . . . . . . . . . . . . . . . . . . .11 2. 俄罗斯方块的DFD图 . . . . . . . . . . . . . . . . . . . . . . .12 3. 需求分析建模 – 数据字典. . . . . . . . . . . . . . . . . . . . . .13 4. 代码. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2
俄罗斯方块
1. 编译环境
Codeblocks编译器用C语言在window8下
2. 软件定义 a) 问题定义
额,俄罗斯方块不用定义了吧。。相信大家都知道。 俄罗斯方块(Tetris, 俄文:Тетрис)是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢·帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。
2014年2月22日,英国心理学家发现,减肥者通过玩俄罗斯方块,可以降低对富含脂肪的食物和零食的心理需求;尝试戒烟者的烟瘾也能得到遏制。
b) 可行性研究
俄罗斯方块是曾经风靡全球的一款游戏。如今看来,虽然与其他手游相比,编码简单,但对于现阶段的我们,还是有一定的难度,因而做出俄罗斯方块的代码,是一个很能锻炼自我
3
的任务,因此我选择了写俄罗斯方块。
通过大一对C语言和这学期数据结构的学习,已经基本掌握了俄罗斯方块编程的需要,因此是可行的。 c) 需求分析
? 设计棋盘 ? 设计棋子
? 按键功能设置(上下左右) ? 棋子落下的动画实现以及越界检测
4
软件设计
1. 设计棋盘
设计出棋盘的高和宽: #define CHESS_WIDTH 12*2 #define CHESS_HIGHT 1
5