好好学习,天天向上,一流范文网欢迎您!
当前位置:首页 >> 最新范文 内容页

俄罗斯方块实习报告

俄罗斯方块实习报告 本文关键词:俄罗斯方块,实习报告

俄罗斯方块实习报告 本文简介:2008年计算机实习报告计算机实习报告姓名:刘天班级:2010211114学号:10210417小班序号:14指导老师:丘广晖题目:俄罗斯方块俄罗斯方块实验报告一.功能说明1.1总体功能说明本程序主要是用VC6.0编程软件通过Windows控制台,实现俄罗斯方块这一游戏。本程序实现了俄罗斯方块的随机

俄罗斯方块实习报告 本文内容:

2008年计算机实习报告

计算机实习报告

姓名:刘天

班级:

2010211114

学号:

10210417

小班序号:14

指导老师:丘广晖

题目:俄罗斯方块

俄罗斯方块实验报告

一.功能说明

1.1总体功能说明

本程序主要是用VC6.0编程软件通过Windows控制台,实现俄罗斯方块这一游戏。

本程序实现了俄罗斯方块的随机产生及移动等,玩家在进入游戏界面后,可以通过键盘操作这个游戏。在游戏界面右边,写有玩家分数和一定的操作说明,同时内部也有暂停和退出的设置,在玩家疲惫时,可随时停止游戏。

1.2用户界面

(1)欢迎界面

(2)游戏界面

(3)结束界面

1.3使用方法

玩家可通过键盘的W、S、A、D键分别控制方块的上下左右,暂停键是E,之后可按任意键继续游戏,退出键则是Q。边框右侧有下一个方块的预告。

二.程序设计说明

2.1

总体设计框架

C++程序执行流程(总流程图):

定义一些变量,并将部分变量初始化

定义界面函数,旋转函数,移动函数等

进入欢迎界面

NO

按下任意键进入游戏?

YES

进入游戏界面

停留在游戏界面

按下暂停按钮?

YES

NO

按下退出按钮?

结束画面

YES

2.2

关键算法描述

bool

table[15][23]={0};

绘制操作面板;

bool

menu();

设定游戏的初始界面(欢迎界面);

void

spin();

决定方块的旋转;

TurnLeft()、TurnRight()、TurnDown()则是俄罗斯方块移动方向的判定;

typenext=rand()%7;

随机数的产生,决定了方块的形状;

while(1);

循环的开始;

if(kbhit());

上下左右控制的判定;

2.3

程序设计的难点和关键点

一、怎样设置方块的状态,变化等;

二、怎样使将要产生的方块与预示方块相同;

三、方块下落时如何判定下方已存在方块,从而使这个方块不在下落;

四、消行的实现。

2.4

调试的方法

调试中多采用断点调试单步执行的方法来查看和改正错误。

2.5

程序性能评价

优点:

1、

游戏运行流畅,整体较为稳定,不会因为玩家的误操作而出现停滞;

2、

游戏说明简单明确,上手容易;

3、

采用模块化编程,多个文件组成整个工程;

4、

编码中的变量、函数等名称合理而清楚,一目了然;

不足:

1、

某些细节上还不够精致,可能还存在bug;

2、

视觉效果一般。

3、

程序代码的格式还不够工整,有待提高。

4、

没有多种界面风格,没有等级系统,不够人性化。

三.心得体会

从一开始的手无足措到一步步的攻克困难,从一开始的茫然停滞到如今的清晰明朗,小学期在时间不知不觉的流逝中,就这样结束了。俄罗斯方块从可以随机出现,到可以自动下落,从左右移动,到可以自动旋转,消行,加分……

看着一个个下落的方块,兴奋的心情真的难以用语言描述。回忆着小学期的一幕幕,我慢慢的对编程产生了强烈的兴趣,同时,也有了把它做好的信心和决心。

我相信,我可以越做越好。

附代码:

#include“colorConsole.h“#include

#include

#include

#include

HANDLE

handle;

WORD

wColors[2];

int

x1=1,x2=1,x3=1,x4=1;//

int

y1=1,y2=1,y3=1,y4=1;//方块坐标

int

type,typenext,typetemp=0;//目前方块和下一个方块的产生

int

score=0,speed=10,times=0,level=0;//得分和速度等

int

key;//按键

char

scorech[10]={0};

bool

flag=1;//生成新方块判定

bool

start=1;

bool

table[15][23]={0};

//绘制操作面板

bool

menu()

//游戏的初始界面

(欢迎界面)

{

for(int

o=1;o0;i--)

{

for(int

j=1;j0;p--)//消行的判定

{

for(int

q=1;q0;b--)

{

for(int

g=1;g0;c--)//刷新

{

for(int

Q=1;Q<14;Q++)

{

if(table[c][Q])textout(handle,Q*2,c,wColors,1,“■“);

else

textout(handle,Q*2,c,wColors,1,““);

}

}

}

}

}

}

16

2008年8月22日

TAG标签: