北邮程序设计实践解剖.docVIP

  • 8
  • 0
  • 约1.49万字
  • 约 24页
  • 2016-12-27 发布于湖北
  • 举报
程序设计实践 设 计 报 告 课题名称: 彩色控制台下的俄罗斯方块 学生姓名: 班 级:________ ___________ 班内序号: 学 号: 日 期: 2014年4月29日 课题概述 1.1课题目标和主要内容 本程序采用vs2005在控制台下编写了彩色俄罗斯方块游戏,能够实现消行、反转、计分、改变下落速度、分难度等级游戏等功能。 1.2系统的主要功能 1.可以灵活控制方块在图形框中运动。 2.游戏过程中方块可以自由旋转。 3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。并且当连续消行时分数会有一定奖励。 4.可以提示下一个出现的方块 5.游戏前可以选游戏的等级,不同等级对应不同速度,不同等级消行后的加分不同,等级越高分数越高 ,方便不同水平的玩家游戏。 6.游戏结束后弹出对话框提醒结束游戏还是继续游戏。 7.初始化界面和游戏中有音乐,使游戏更吸引人。 2. 系统设计 2.1 系统总体框架 2.2 系统详细设计 [1] 模块划分图及描述 [2] 类关系图及描述 [3] 程序流程图及描述 [4] 存储结构、内存分配 上述4个内容也可以按照模块划分分别设计。 2.3 关键算法分析 算法1:getblocks() [1] 算法功能 生成随机方块 [2] 算法基本思想 利用srand() rand()函数产生随机数,随机数对7取余得到0~6的随机数,对应7种随机方块。 [3] 算法空间、时间复杂度分析 空间复杂度O() 时间复杂度O(1) [4] 代码逻辑(可用伪代码描述) getblocks() //随机方块生成 int * getblocks() //随机方块生成 { int * m=NULL; srand(time(NULL)); int n=rand()%7; switch(n) { case 0: m=a1[0][0];break; case 1: m=a2[0][0];break; case 2: m=a3[0][0];break; case 3: m=a4[0][0];break; case 4: m=a5[0][0];break; case 5: m=a6[0][0];break; case 6: m=a7[0][0];break; } return m; } 算法2:move [1] 算法功能 方块的移动、下落等 [2] 算法基本思想 通过_kbhit()和_getch()函数获得键盘输入,通过键盘控制方块的加速下落、翻转及左右移动 [3] 算法空间、时间复杂度分析 空间复杂度O(1) 时间复杂度O(1) [4] 代码逻辑(可用伪代码描述) void move(int line) //方块的左右移动,加速下落,翻转等 { int mid=0,speed=100-10*level; while(midspeed) { if (_kbhit()) { switch(_getch()) { case 72: //翻转 { turn(line); break; } case 75: //左移 { row=row-2; //纵坐标减 if(isavailable(line)) //判断是否能移动 { row=row+2; clearsquare(line+1); //消除原来图案,line+1是避免line=4程序出错 row=row-2; drawb

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档