当前位置:文档之家› C++俄罗斯方块实验报告(附实验体会)

C++俄罗斯方块实验报告(附实验体会)

C++俄罗斯方块实验报告(附实验体会)
C++俄罗斯方块实验报告(附实验体会)

程序设计综合实验

设计文档

课程名称:

程序设计综合实验

姓名: 实验名称: 俄罗斯方块 学号:

任课教师: 专业:

计算机科学与技术

班级: 计算机科学与技术1班

实验时间: 第一周至第十二周

实验成绩:

批阅教师签字:

惠州学院

HUIZHOU UNIVERSITY

综合实验项目:俄罗斯方块游戏

1、问题需求

(1)游戏等级:游戏分为1-10十个等级,等级越高,方块下落速度越快;

(2)由方向键控制游戏:上键控制方块变形、下键控制方块下移并判断是否有消行、左键控制方块左移、右键控制方块右移;

(3)游戏积分:一次性消的行数越多加的分数越多,当消行每超过30行自动提高一个游戏等级。

2、总体设计:

(1)用数组存放方块

(2)输出地图

(3)在地图里面输出方块

(4)开始游戏

(5)方块的旋转

(6)方块是否能下落

(7)判断方块是否能下落

(8)提示下一个即将下落的方块

(9)控制方块的下落速度

(10)分成10等级,等级越高方块下落得更快

(11)消行处理

(12)游戏结束

3、详细设计设计说明:本程序运行代码如下:

#include

#include

#include

#include "colorConsole.h"

#define SQUARE_COLOR FOREGROUND_RED|

FOREGROUND_GREEN|FOREGROUND_INTENSITY //方块的颜色

#define up 72

#define down 80

#define left 75

#define right 77

#define esc 27

#define MAPW 12 //地图的宽度

#define MAPH 20 //地图的高度

BOOL isavailable(int a[],int x,int y,int w,int h); //判定是否能放下

void turn(int a[][4],int w,int h,int *x,int y); //转动

int * create(); //创建方块

void init(); //初始化工作void drawblocks(int a[],int w,int h,int x,int y,WORD wColors[],int nColors); void clearcache(); //清除键盘缓冲区

void end();

void clearsquare(int *a,int w,int h,int x,int y);

void gameover();

void deletemap(int m[][MAPW],int row,int w,int h); //消除一行

int dx=30,dy=5; //屏幕上的偏移量

int score=0,level=0;

int map[MAPH][MAPW];

int a1[4][4]={{1},{1,1,1}};

int a2[4][4]={{0,1},{1,1,1}};

int a3[4][4]={{1,1},{0,1,1}};

int a4[4][4]={{0,0,1},{1,1,1}};

int a5[4][4]={{0,1,1},{1,1}};

int a6[4][4]={{1,1,1,1}};

int a7[4][4]={{1,1},{1,1}};

int a[4][4];

int main()

{

init();

int *b=NULL;

b=create(); //预创建方块

int q=0;

int sign,blank,x,y;

while(1)

{

for(int i=0;i<4;i++) //复制方块

for(int j=0;j<4;j++)

if(a[i][j]=*(b+i*4+j)) blank=i;

y=1-blank;x=4;

clearsquare(&a[0][0],4,4,13,13);

b=create();

HANDLE handle;

handle=initiate();

WORD wColors[1]={FOREGROUND_RED| FOREGROUND_GREEN|FOREGROUND_INTENSITY };

drawblocks(b,4,4,13,13,wColors,1);

wColors[0]=SQUARE_COLOR;

drawblocks(&a[0][0],4,4,x,y,wColors,1);

clearcache();

char string[5];

wColors[0]=FOREGROUND_RED|

FOREGROUND_GREEN|FOREGROUND_INTENSITY;

textout(handle,26+dx,5+dy,wColors,1,itoa(score,string,10));

textout(handle,26+dx,9+dy,wColors,1,itoa(level,string,10));

sign=1;

while(sign)

{

int delay=0,max_delay=100-10*level; //延迟量

while(delay

{

if(_kbhit()) //用if避免按住键使方块卡住

{

int draw=0;

int key=_getch();

switch (key)

{

case up:

clearsquare(&a[0][0],4,4,x,y);

turn(a,4,4,&x,y);

draw=1;

break;

case down:

delay=max_delay;

break;

case left:

if(isavailable(&a[0][0],x-1,y,4,4))

{

clearsquare(&a[0][0],4,4,x,y);

x--;

draw=1;

}

break;

case right:

if(isavailable(&a[0][0],x+1,y,4,4))

{

clearsquare(&a[0][0],4,4,x,y);

x++;

draw=1;

}

break;

case esc:

end();

break;

}

if(draw)

{

HANDLE handle;

handle=initiate();

WORD wColors[1]={SQUARE_COLOR};

drawblocks(&a[0][0],4,4,x,y,wColors,1);

draw=0;

}

}

_sleep(8);delay++;

}

if(isavailable(&a[0][0],x,y+1,4,4)) //判断是否能下移

{

clearsquare(&a[0][0],4,4,x,y);

y++;

HANDLE handle;

handle=initiate();

WORD wColors[1]={SQUARE_COLOR};

drawblocks(&a[0][0],4,4,x,y,wColors,1);

}

else

{

sign=0; //标记,使跳出while(sign) 循环,产生新方块

if(y<=1) gameover(); //是否结束

for(int i=0;i<4;i++) //放下方块

for(int j=0;j<4;j++)

if(a[i][j]&&((i+y)

map[i+y][j+x]=a[i][j];

int full,k=0;

for(i=y;i

{

full=1;

for(int j=1;j<11;j++)

if(!map[i][j]) full=0;

if(full) //消掉一行

{

deletemap(map,i,MAPW,MAPH);

k++;

q++;

score=score+k;

level=min(q/30,9);

}

}

}

}

}

return EXIT_SUCCESS;

}

BOOL isavailable(int a[],int x,int y,int w,int h)

{

for(int i=max(y,1);i

for(int j=x;j

if(map[i][j]&&a[w*(i-y)+j-x])

return 0;

return 1;

}

int * create()

{

int * a=NULL;

int c=rand()%7;

switch(c)

{

case 0:

a=&a1[0][0];break;

case 1:

a=&a2[0][0];break;

case 2:

a=&a3[0][0];break;

case 3:

a=&a4[0][0];break;

case 4:

a=&a5[0][0];break;

case 5:

a=&a6[0][0];break;

case 6:

a=&a7[0][0];break;

}

return a;

}

void init() //初始化工作{

for(int i=0;i<20;i++)

{

map[i][0]=-2;

map[i][11]=-2;

}

for(i=0;i<12;i++)

{

map[0][i]=-1;

map[19][i]=-1;

}

map[0][0]=-3;

map[0][11]=-3;

map[19][0]=-3;

map[19][11]=-3;

HANDLE handle;

handle=initiate();

WORD wColors[1]={ FOREGROUND_GREEN|FOREGROUND_INTENSITY};

textout(handle,26+dx,3+dy,wColors,1,"分数");

textout(handle,26+dx,7+dy,wColors,1,"等级");

textout(handle,26+dx,11+dy,wColors,1,"下一个方块提示");

wColors[1]=FOREGROUND_RED|FOREGROUND_INTENSITY;

drawblocks(&map[0][0],12,20,0,0,wColors,1);

textout(handle,dx,dy,wColors,1,"◇══════════◇");

wColors[0]= FOREGROUND_GREEN|FOREGROUND_INTENSITY;

textout(handle,dx-16,dy,wColors,1,"按任意键开始");

wColors[0]=FOREGROUND_RED|FOREGROUND_INTENSITY ;

textout(handle,dx-15,dy+3,wColors,1,"制作者");

wColors[0]=FOREGROUND_BLUE| FOREGROUND_GREEN|FOREGROUND_INTENSITY ;

textout(handle,dx-15,dy+5,wColors,1,"赵强");

int x=_getch();

srand(x);

textout(handle,dx-16,dy,wColors,1," ");

}

void drawblocks(int a[],int w,int h,int x,int y,WORD wColors[],int nColors)

{

HANDLE handle;

handle = initiate();

int temp;

for(int i=0;i

for(int j=0;j

if((temp=a[i*w+j])&&y+i>0)

{

if(temp==-3)

textout(handle,2*(x+j)+dx,y+i+dy,wColors,nColors,"◆");

else if(temp==-2)

textout(handle,2*(x+j)+dx,y+i+dy,wColors,nColors,"║");

else if(temp==-1)

textout(handle,2*(x+j)+dx,y+i+dy,wColors,nColors,"═");

else if(temp==1)

textout(handle,2*(x+j)+dx,y+i+dy,wColors,nColors,"■");

}

}

void clearcache()

{

while(_kbhit())

{

_getch();

}

}

void end()

{

exit(EXIT_SUCCESS);

}

void turn(int a[][4],int w,int h,int *x,int y)

{

int b[4][4]={{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};

int sign=0,line=0;

for(int i=h-1;i>=0;i--)

{

for(int j=0;j

if(a[i][j])

{

b[j][line]=a[i][j];

sign=1;

}

if(sign)

{

line++;

sign=0;

}

}

for(i=0;i<4;i++)

if(isavailable(&b[0][0],*x-i,y,w,h))

{

*x-=i;

for(int k=0;k

for(int j=0;j

a[k][j]=b[k][j];

break;

}

}

void clearsquare(int *a,int w,int h,int x,int y)

{

HANDLE handle;

handle=initiate();

WORD wColors[1]={SQUARE_COLOR};

for(int i=0;i

for(int j=0;j

if(a[i*w+j]&&i+y>0)

textout(handle,2*(x+j)+dx,y+i+dy,wColors,1," "); }

void gameover()

{

HANDLE handle;

handle=initiate();

WORD wColors[1]={FOREGROUND_RED| FOREGROUND_GREEN};

textout(handle,7+dx,10+dy,wColors,1,"游戏结束");

clearcache();

_getch();

exit(EXIT_SUCCESS);

}

void deletemap(int m[][MAPW],int row,int w,int h)

{

HANDLE handle;

handle=initiate();

WORD wColors[1]={SQUARE_COLOR};

textout(handle,2+dx,row+dy,wColors,1,"﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌");

_sleep(100);

for(int i=row;i>1;i--)

{

clearsquare(&m[i][1],MAPW-2,1,1,i);

for(int j=1;j

m[i][j]=m[i-1][j];

drawblocks(&m[i][1],MAPW-2,1,1,i,wColors,1);

}

for(i=1;i

m[1][i]=0;

}

HANDLE initiate()

{

HANDLE hOutput;

hOutput = GetStdHandle(STD_OUTPUT_HANDLE);

return hOutput;

}

BOOL textout(HANDLE hOutput,int x,int y,WORD wColors[],int nColors,LPTSTR lpszString)

{

DWORD cWritten;

BOOL fSuccess;

COORD coord;

coord.X = x; // start at first cell

coord.Y = y; // of first row

fSuccess = WriteConsoleOutputCharacter(

hOutput, // screen buffer handle

lpszString, // pointer to source string

lstrlen(lpszString), // length of string

coord, // first cell to write to

&cWritten); // actual number written

if (! fSuccess)

cout<<"error:WriteConsoleOutputCharacter"<

for (;fSuccess && coord.X < lstrlen(lpszString)+x; coord.X += nColors)

{

fSuccess = WriteConsoleOutputAttribute(

hOutput, // 屏幕缓存处理

wColors, // pointer to source string

nColors, // length of string

coord, // first cell to write to

&cWritten); // actual number written }

if (! fSuccess)

cout<<"error:WriteConsoleOutputAttribute"<

return 0;

}4、程序运行结果截图:

按任意键游戏开始

方块左移

方块右移

下一个方块开始下落

方块变形

消一行,增加1分

成功消多行

消多行后分数增加更多

消完30行后,提升一个等级

方块叠到顶端后游戏结束

5、程序使用说明:

(1)按任意键开始游戏

(2)控制方块下落位置进行消行处理

(3)成功消行后加分,当消30行之后等级升一级,最高达到10等级

(4)当产生的新方块不能再下落时,游戏结束。

(5)过程中可以按ESC直接退出游戏

6、本实验的心得体会

上个学期学习C++的时候,主要是局限于读课本,记住课本上的一些知识和概念,但很少自己亲自动手去编写代码,总是眼高手低,当真正的去编写这个俄罗斯游戏的时候就体会到编写代码真的好难,尤其是刚开始的想的时候,根本不知道如何下手。后来通过上网查询和请教一些编程比较好的同学后才有了一个基本的思路,自己又重新翻阅了一下课本,将课本上的知识又重新细致的复习了一遍,最终借助于网络和同学的帮助完成了这个实验。通过这个实验发现自己在编程方面还有很大的欠缺,编程能力很差劲,不过通过这个实验,也让我对上学期学习的C++知识有了一个很好很全面的复习,这是这个实验带给我最大的收获。必须要亲自动手多写,多看代码才能真正的学好C++。

俄罗斯方块mfc实验报告

程序设计实践 设 计 报 告 课题名称:俄罗斯方块(MFC版)学生姓名:黄嘉慧 班级:2012211113 班内序号:27 学号:2012210389 日期:2014.6.1

1. 实验概述 1.1 课题目标和主要内容。 本课题的主要内容是用MFC 实现经典游戏俄罗斯方块的编写。目标是能够正常运行,并且无过于严重的问题。使用的平台为MFC (基于对话框)。 1.2 采用计分升级制来进行游戏。当一次消去一行时,得一分,一次两行得 4分,一次3行,得9分,一次4行,得16 分。每 50分为一个等 级,得分足够则升级并重新开始游戏。 2. 程序设计 2.1 系统总体框架 用一个4维数组DiamondStruct[7][4][4][4]来表示所有的方块,用一个POINT 类型的DiamondPos 来表示方块当前的位置,然后通过一个二维数组BlockPanel[][],来表示整个游戏界面,同时进行障碍的添加。游戏过程中,通过改变DiamondPos 来进行方块的下降以及

左右移动,通过DiamondStruct[7][4][4][4]中第二个参数的改变来进行方块的变换。 2.2系统详细设计 【1】模块划分图及描述 【2】类关系图及描述 CWinApp 与CDialog 为基类。其它为添加的类。 【3】程序流程图及描述

【4】存储结构,内存分配 主要存储结构为数组。同时分配内存的有,画笔,Diamond类的指针,Panel类的指针,Block类的指针,Mill类的指针,Manager类的指

针。 2.3 关键算法分析 【1】 bool Diamond::FullLine() { bool IsFull,Full=false; pManager->SeriesLine=0; for(int iy=0;iy<=pPanel->nVGridNum;iy++) { IsFull=true; for(int ix=0;ix<=pPanel->nHGridNum;ix++) { if(!pBlock->BlockPanel[ix][iy]) IsFull=false; } if(IsFull) { Full=true; pManager->SeriesLine++; for(int jy=iy;jy>0;jy--) { Sleep(10); for(int jx=0;jx<=pPanel->nHGridNum;jx++) { pBlock->BlockPanel[jx][jy]=pBlock->BlockPanel[jx][jy-1]; } } } } pManager->LineNumber+=pManager->SeriesLine; pManager->Result+=pManager->SeriesLine*pManager->SeriesLine; if(Full) return true; else return false; } 该算法实现的功能为,判断是否已经满行,并且若是满行,进行消行,加分的操作。该算法的时间复杂度为O(n)=【(nVGridNum)^2*nHGridNum.】/2

实验报告总结报告的优秀范文

实验报告总结报告的优秀范文 总结报告是会议领导同志对会议召开的情况和会议所取得的成果进行总结的陈述性文件。写总结报告时应注意明确目的,突出重点,切不可面面俱到;要鼓舞人心,富有号召力。小编精选了一些关于总结报告的优秀范文,让我们一起来看看吧。 实验报告总结(一): 学校实验室是完成教学任务的重要场地,是根据实验教学大纲中要求培养学生初步的科学实验能力和开展科技活动的场所,并对开展实验教学,提高教学质量具有十分重要的作用。对于一个拥有各类实验室且实验仪器基本配套齐全的学校来讲,管理是关键,因为只有管理跟上去了,才能更合理、有效地使用好各类仪器设备。对此,作为一所中学的实验室人员,我们在长期的工作实践中做了如下几个方面的工作: 一、努力提高自身素质 实验人员是科学管理实验室的基本队伍,在整个实验室的管理和运作中起着决定性的作用。一个好的实验员,可以改变整个实验室的面貌,推动实验教学的发展;而一个差的实验员,可导致整个实验室变成脏、乱、差的劣境,从而使实验教学无法正常进行。因此,我们每一个实验员,一方面在平时加强政治学习,提高自身素质,使大家在平凡的点滴工作中认识到这项工作的重要性,从而更加热爱本职工作。另一方面,我们还不断去兄弟学校和单位进行学习交流,参加实验设备和成果展览。这不仅使我们开阔了视野,了解了实验仪器发展的新情况,更看到了兄弟单位的先进管理经验,有利于我们在今后的工作中加以借鉴和改进。

同时学校还鼓励我们总结自己的经验,撰写论文,或进行业余进修,以增强我们在各方面的修养。由于平时有着严格的要求和业务考核,现有的每一位理、化、生实验员都能很好地胜任自己的工作,做到实验室整洁有序,实验准备快捷无误,从而保证了各项教学实验的顺利完成。 二、健全各项规章制度 俗话说没有规矩,不成方圆。我们学校根据上级的规定和本校的具体情况,制定了比较健全的规章制度:如《实验室管理守则》、《学生实验守则》、《实验室工作人员职责》、《实验室安全防护制度》等,进而做到使每项工作都有章可循,有据可查。除此以外,我们还对危险品的使用实行了领用登记手续,从而保证了对危险品的安全管理。由于各位实验员的同心协力,齐抓共管,保证了各项制度的顺利贯彻和实验室工作的正常开展。 三、科学管理仪器设备 仪器设备的规范管理是合理使用仪器的保证,为此我们做了以下的工作: 首先,我们根据建帐要求,设立了总帐、分类明细帐、低值易耗帐,并建立了橱卡,注明仪器的编号、名称、数量。平时对购进或调拨来的仪器设备物品都按统一编号顺序进行登记入帐,且对消耗掉的物品及时记入各分类记录薄上。每学期末都进行一次帐、物、卡核实,并把报废报损的仪器遣报损单,经领导批审后销帐,ZUI后把核查的数目转入总帐、分类帐上,这样就能做到巾长物卡三统一了。

《基础护理学》教学大纲

《基础护理学》教学大纲 Teaching Syllabus for Fundamental Nursing 一、课程任务与性质 《基础护理学》是护理专业本科生必修课程,是护理专业主干学科之一,是护理患者所必须掌握的一门基本理论、基本知识和基本技能的重要专业基础课。课程主要内容包括满足患者清洁、舒适、休息活动、营养排泄等需要的基本知识与技能;用药知识与技能;常用抢救知识与技能。 通过本课程的学习,培养护生良好的职业道德,热爱护理事业的情感,掌握评估和满足患者各种基本需要所需的基本知识和技能,具有敏锐的观察、分析问题和解决问题的能力,并通过情景式模拟实验和综合性设计性实验培养学生创新能力及评判性思维能力,使学生能运用护理程序科学化管理病人,满足服务对象整体护理的需要,为后期临床各专科护理的学习和临床护理实践打下重要基础。 二、考核方式 本课程为考试课,采用单元测试、阶段测试、期末测试、操作考核及实验报告测评等方法进行教学评价。理论考试采用闭卷形式,理论考试占70%,技能考试占30%。 三、学时分配表 理论课教学内容学时数实验(见习)课教学内容学时数 绪论 1 环境 3 患者入院和出院的护理 3 铺备用床法、铺麻醉床法12 舒适与安全 3 卧位与搬运3 预防与控制医院感染9 无菌技术、隔离技术 6 患者的清洁卫生 6 口腔、皮肤、头发护理 6 休息与活动 3 协助患者活动 3 生命体征的评估与护理8 T、P、R、BP测量及绘制、鼻导管 吸氧法 9 冷、热疗法 1 冷、热疗法 3 饮食与营养 6 鼻饲法 3 排泄 6 女患者导尿术、灌肠法 6 给药9 摆发口服药法、肌内注射法、静脉 注射法、皮下注射法、皮肤过敏试 验法 15 静脉输液与输血8 周围静脉输液法 6 病情观察及危重患者的抢救 6 基础生命支持技术 6

java课程设计报告材料-俄罗斯方块

JAVA程序设计课程设计 之 俄罗斯方块 年级:13级 班级:T412 网络工程 指导老师:朱林 小组成员: 20138346021 许浩洋

时间:2015年11月11日 目录 摘要................................................................. 第一章课程设计要求.................................................. 第二章设计概要...................................................... 2.1 功能设计...................................................... 2.2 功能分析...................................................... 2.2.1 系统操作界面............................................... 2.2.2 程序主要功能说明........................................... 第三章调试分析与测试结果............................................ 3.1 游戏运行界面.................................................. 3.2 测试项目...................................................... 3.2.1 功能区按键测试............................................ 3.2.2 键盘功能测试.............................................. 3.2.3 游戏结束测试.............................................. 第四章设计总结...................................................... 4.1 改进意见...................................................... 4.2 《Java课程设计》心得体会 ......................................

实验报告-心得体会(全)

实验心得体会 在做测试技术的实验前,我以为不会难做,就像以前做物理实验一样,做完实验,然后两下子就将实验报告做完.直到做完测试实验时,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅. 在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就会听不懂,这将使你在做实验时的难度加大,浪费做实验的宝贵时间.比如做光伏的实验,你要清楚光伏的各种接法,如果你不清楚,在做实验时才去摸索,这将使你极大地浪费时间,使你事倍功半.做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做.做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛. 通过这次测试技术的实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅. 实验心得体会

这个学期我们学习了测试技术这门课程,它是一门综合应用相关课程的知识和内容来解决科研、生产、国防建设乃至人类生活所面临的测试问题的课程。测试技术是测量和实验的技术,涉及到测试方法的分类和选择,传感器的选择、标定、安装及信号获取,信号调理、变换、信号分析和特征识别、诊断等,涉及到测试系统静动态性能、测试动力学方面的考虑和自动化程度的提高,涉及到计算机技术基础和基于LabVIEW的虚拟测试技术的运用等。 课程知识的实用性很强,因此实验就显得非常重要,我们做了金属箔式应变片:单臂、半桥、全桥比较,回转机构振动测量及谱分析,悬臂梁一阶固有频率及阻尼系数测试三个实验。刚开始做实验的时候,由于自己的理论知识基础不好,在实验过程遇到了许多的难题,也使我感到理论知识的重要性。但是我并没有气垒,在实验中发现问题,自己看书,独立思考,最终解决问题,从而也就加深我对课本理论知识的理解,达到了“双赢”的效果。 实验中我学会了单臂单桥、半桥、全桥的性能的验证;用振动测试的方法,识别一小阻尼结构的(悬臂梁)一阶固有频率和阻尼系数;掌握压电加速度传感器的性能与使用方法;了解并掌握机械振动信号测量的基本方法;掌握测试信号的频率域分析方法;还有了解虚拟仪器的使用方法等等。实验过程中培养了我在实践中研究问题,分析问题和解决问

俄罗斯方块设计实验报告

——————数字电路与逻辑设计实验报告—————基于VHDL的简易俄罗斯方块 实验名称简易俄罗斯方块 姓名 班级电信工程学院04107班 学号 辅导老师高英 日期2006年11月6日

俄罗斯方块游戏是我们熟知的经典小游戏之一,本实验通过硬件编成实现了简易的俄罗斯方块游戏机。VHDL是一种标准的,规范的硬件描述语言,在电子设计领域有着广泛的应用。它具有很强的电路描述和建模能力,能从多个层次多电路进行描述和建模,从而大大简化了硬件设计任务,提高了设计效率和可靠性。 本实验基于VHDL语言,利用电路中心开发的实验板,用一个4×4点阵做为基本显示屏,一个发光点表示一个图形,完成俄罗斯方块游戏的基本功能:下落、左右移动、消行和显示得分情况,当某一列到顶时游戏结束。 关键字俄罗斯方块游戏VHDL 点阵 ◆设计任务 利用电路中心开发的实验板,用点阵做为显示屏,一个发光点表示一个方块,完成下落、左右移动、消行和显示得分情况,当某一列到顶时游戏结束,数码管显示的分数保持不变。 ◆设计思路 由于实验中只用到了16个点来完成显示功能,所以选用一个16位的向量STATUS(0 TO 15)来存储各点状态,再用两个整型数分别控制当前点的坐标,但是这样控制会涉及到乘法运算,因此改为4个4位向量STAN(0 TO 3),每个向量代表一行点阵,这样做不仅使控制简单,而且在扫描显示的时候很方便,代码也很简洁。 设计包括2个大的元件,一个是RUSSIA,其功能是存储状态,分频,完成左右下移动以及计分等功能;另一个是RUSSIA_SCAN,主要完成点阵扫描和数码管译码。具体设计是这样的:4个向量STA0,STA1,STA2,STA3记录游戏状态,点的坐标由COL 和ROW来控制。设置两个指针FLAG和ROW4,如果四列中有一列都为1,表示游戏结束了,置FLAG为1,程序进入NULL;当最后一行及STA3=”1111”时,置ROW4=1,当ROW4=1时,表示要消行,加分,并且将上一行的值赋到下一行。游戏继续,如按下左键或右键,程序更根据下一状态决定是否左移或右移。(BTN1为复位RESET,BTN2为左,BTN3为右)若无键按下,则根据情况当前点是否需要自动下移。

俄罗斯方块实验报告

《软件工程与开发实践1》 软件设计报告 题目俄罗斯方块 学院计算机学院 专业计算机科学与技术 班级 学号 10109345 学生姓名 其他成员 组长 指导教师孙志海 完成日期2012年6月

一、软件设计概述(目的、任务、开发环境、参考资料) 俄罗斯方块游戏属于经典小游戏,游戏规则简单,但又不乏趣味。而计算的一大领域也是游戏,所以,成为游戏开发者,几乎是每个编程者的梦想。经过大一和大二的学习,我们已经掌握了编程基础。为了提高我们的编程能力,我们就要不断积累编程经验。 1、目的:复习和巩固C/C++编程的基本思想;掌握数据结构的核心思想;掌握C/C++中多文件的编写;初步对了解界面的设计。 2、任务:完成一个可以运行的游戏。 3、开发环境:C/C++控制台。 4、参考资料: [1] 谭浩强.C语言程序设计[M].北京:清华大学出版社.2004.6 [2] 孙鑫\余安萍.VC++深入详解[M].北京:电子工业出版社.2006.6 二、可行性研究、需求分析及分工 这是一个游戏软件,程序与用户的交流只在游戏界面上,方块的产生是随机的。 三、软件设计的基本原理和采用的主要方法与技术 1、方块类型以下7大类 ██████████ ██████ ███ █████████ 每一种方块都能够变形,所以在游戏中如何正确打印出方块的类型是重点,也是难点。我采用的是“相对坐标法”,具体实现参照“实现的过程与步骤”部分。 2、此游戏是简单的二维游戏,而且区域恒定不变,所以在存储游戏的信息时,二维数组是首选。用数组元素值模拟当前位置有无方块。 3、流程图如下

4、采用的方法 在控制台下,光标是左到右,自上而下的,所以要要调用系统函数来控制光标。同理,为了界面的美观,也要调用系统函数进行颜色控制。 5界面设置 游戏的最大特点就是界面的美观,由此才能吸引玩家的兴趣,因此如何让界面尽最大限度美观,是每个游戏程序员努力的目标。这个程序是在VC环境下基于C/C++控制台的,由于VC下没有像TC下那样丰富的图形库,画图就要调用windows API函数。但由于我对windowsAPI理解不深,所以画起图来还是比较困难。 游戏不仅要求界面美观,而且还要音乐来衬托,所以在整个程序中,尽量让方块的每一个动作与特殊的音乐像对应,此外,最好加上背景音乐。 四、实现的过程与步骤 数据结构: 1、方块的存储 如下图所示,每一种方块都由四个小方块组成,可以按顺序编号①、②、③、④,在方块旋转、输出、擦出时,可以由第一个方块位置加上(减去)第二个与第一个的偏移量,从而找到第二个方块,如此可以方便遍历四个方块。 由于方块属于宽字符,故在占两个字节,输出的时候占两位。设①号块的坐标为(x,y),那么第二块与它的偏移量的△x=2,△y=0,相对坐标即为(2,0)。 同理,③号方块的相对坐标为(2,1),④号方块的坐标为(4,1),特别的,①号方块的相对坐标为(0,0),这样一来,只要知道每一种(7大类,19种)方块的①号方块的坐标,就可以通过②、③、④方块与①号方块的偏移量而逐个输出整个方块。 明白了方块的输出,就要用一个数据结构存储方块了。19种方块都由4个

万能实验报告心得体会【两篇】

万能实验报告心得体会【两篇】 万能实验报告心得体会(1) 经过此次实习,让我学到了很多课堂上更本学不到的东西,仿佛自我一下子成熟了,懂得了做人做事的道理,也懂得了学习的意义,时间的宝贵,人生的真谛。明白人世间一生不可能都是一帆风顺的,只要勇敢去应对人生中的每个驿站!这让我清楚地感到了自我肩上的重任,看清了自我的人生方向,也让我认识到了文秘工作应支持仔细认真的工作态度,要有一种平和的心态和不耻下问的精神,不管遇到什么事都要总代表地去思考,多听别人的提议,不要太过急燥,要对自我所做事去负责,不要轻易的去承诺,承诺了就要努力去兑现。单位也培养了我的实际动手本事,增加了实际的操作经验,对实际的文秘工作的有了一个新的开始,更好地为我们今后的工作积累经验。 我明白工作是一项热情的事业,并且要持之以恒的品质精神和吃苦耐劳的品质。我觉得重要的是在这段实习期间里,我第一次真正的融入了社会,在实践中了解社会掌握了一些与人交往的技能,并且在次期间,我注意观察了前辈是怎样与上级交往,怎样处理之间的关系。利用这次难得的机会,也打开了视野,增长了见识,为我们以后进一步走向社会打下坚实的基础。 实习期间,我从末出现无故缺勤。我勤奋好学.谦虚谨慎,认真听取老同志的指导,对于别人提出的工作提议虚心听取。并能够仔细

观察、切身体验、独立思考、综合分析,并努力学到把学样学到的明白应用到实际工作中,尽力做到理论和实际相结合的状态,培养了我执着的敬业精神和勤奋踏实的工作作风。也培养了我的耐心和素质。能够做到服从指挥,与同事友好相处,尊重领导,工作认真负责,职责心强,能保质保量完成工作任务。并始终坚持一条原则:要么不做,要做就要做。 为期2个月的实习结束了,我在2个月的实习中学到了很多在课堂上根本就学不到的知识,收益非浅.此刻我对这2个月的实习做一个工作小结。 回想自我在这期间的工作情景,不尽如意。对此我思考过,学习经验自然是一个因素,然而更重要的是心态的转变没有做到位。此刻发现了这个不足之处,应当还算是及时吧,因为我明白了何谓工作。在接下来的日子里,我会朝这个方向努力,我相信自我能够把那些不该再存在的“特点”抹掉。感激教师们在这段时间里对我的指导和教诲,我从中受益非浅。 本次实习使我第一次亲身感受了所学知识与实际的应用,理论与实际的相结合,让我们大开眼界,也算是对以前所学知识的一个初审吧!这次生产实习对于我们以后学习、找工作也真是受益菲浅。在短短的一个星期中,让我们初步让理性回到感性的重新认识,也让我们初步的认识了这个社会,对于以后做人所应把握的方向也有所启发。 我会把这此实习作为我人生的起点,在以后的工作学习中不断要求自我,完善自我,让自我做的更好。

护理专业护理学基础实训大纲

《护理学基础》实训教学大纲 一、课程性质和任务 《护理学基础》是中等卫生职业教育护理专业的一门重要的专业课程,它包括有护理专业的基本理论、基本知识和基本技能的一门实践性强的应用性学科。本课程的任务是使学生了解护理学的基本理论与知识,确立以护理对象为中心的整体护理观,掌握护理实践操作技能,培养和形成良好的职业素质和职业操守,使之具备初步护理工作的职业能力,为临床护理课程的学习奠定良好的基础。 二、适用专业及层次 适用于护理、英语护理、助产专业中专层次学生。 三、实训目标 通过实验,培养护生较强的实践操作能力,通过本课程的实践操作练习要求学生掌握临床所必须的常用的基础护理操作,并通过操作考核,为临床实习作好准备。 1.培养有良好的职业素养,有严谨、勤奋的工作作风。 2.培养有规范、熟练的基础护理操作技能。 3.确立以护理对象为中心的护理理念,有良好的服务意识和团队合作精神。 4.培养有良好的人际沟通能力。 四、实训内容及学时分配

实验一参观医院 一、实验目的和要求 1、通过参观医院,熟悉医院的组织结构、布局等,对门诊部、住院部的护理工作有初步的认识。 2、培养护士生懂得关心患者痛苦,有同情心、工作责任心等良好的职业素养。 二、实验内容(项目) 参观医院 三、主要实验仪器及材料 四、考核方式与成绩评定 五、说明 实验二铺床法(备用床、暂空床、麻醉床) 一、实验目的和要求 1、熟练掌握铺备用床的用物准备、操作方法。 2、熟练掌握铺暂空床的用物准备、操作方法。

4、具有认真的学习态度,动作轻稳,符合节力。 二、实验内容(项目) (一)铺备用床:移桌椅、翻床垫、扫床→铺大单(斜角法)→套被套(卷筒式、“S”形式)→套枕套→放回桌椅 (二)铺暂空床 (三)铺麻醉床 三、主要实验仪器及材料 床、床单、被套、毛毯或棉胎、枕套、枕心、床扫、床扫套。 四、考核方式与成绩评定 1、每生独立进行该操作考核,老师现场给予评分。 2、完成实验报告并进行成绩评定。 五、说明 实验三轮椅、平车运送技术 一、实验目的和要求 1、熟悉轮椅、平车运送病人的技术。 2、具有认真的态度,动作轻稳,保证病人安全。 二、实验内容(项目) (一)轮椅运送法 (二)平车运送法:1、挪动法 2、单人搬运法 3、二人或三人搬运法 4、四人搬运法 三、主要实验仪器及材料 轮椅、平车等 四、考核方式与成绩评定 五、说明 实验四安置各种卧位 一、实验目的和要求 1、学会安置临床常用的各种卧位。 2、具有认真的学习态度。 二、实验内容(项目) 安置各种卧位:1、仰卧位2、侧卧位3、俯卧位4、半坐卧位5、端坐位 6、头低足高位7、头高足低位8、膝胸位9、截石位 三、主要实验仪器及材料 床、患者(护理模型人或学生充当)、枕头3个等。 四、考核方式与成绩评定 五、说明 实验五协助病人更换卧位 一、实验目的和要求

俄罗斯方块游戏设计报告

C语言课程设计 报告 设计题目:俄罗斯方块游戏设计 院系: 班级: 学号: 姓名: 指导教师: 设计地点: 开课时间:

学生姓名成绩 评语: 指导教师(签名) 年月日

目录 1.设计目的和任务....................................................................................................................................... - 1 - 1.1目的: .............................................................................................................................................. - 1 - 1.2任务: .............................................................................................................................................. - 1 - 2.开发环境.................................................................................................................................................... - 1 - 2.1硬件环境:.................................................................................................................................... - 1 - 2.2软件环境:.................................................................................................................................... - 1 - 3.设计题目...................................................................................................................................................... - 2 - 3.1题目名称:.................................................................................................................................... - 2 - 3.2题目详细描述: ........................................................................................................................... - 2 - 3.3功能要求: ............................................................................................................................................ - 2 - 4.相关技术以及知识点.......................................................................................................................... - 3 - 4.1编写BLOCK类:............................................................................................................................... - 3 - 4.2 PATHGRADIENTBRUSH 类: ........................................................................................................ - 3 - 4.3 RANDOM类:.................................................................................................................................. - 3 - 4.4 GDI图形处理: ........................................................................................................................... - 3 - 5. 设计与实现 .............................................................................................................................................. - 4 - 5.1 设计流程图................................................................................................................................... - 4 - 5.2 游戏主体界面 .............................................................................................................................. - 4 - 5.3 游戏图形界面 ............................................................................................................................ - 11 - 5.4 图形的移动与消行 ................................................................................................................... - 13 - 5.5 得分的实现................................................................................................................................. - 15 -6.总结 ........................................................................................................................................................ - 16 -7.参考资料................................................................................................................................................ - 16 -

万能实验报告心得体会 优选5篇.doc

万能实验报告心得体会优选5篇 【导语】 万能实验报告心得体会优选5篇由***整理投稿精心推荐,我希望对你的学习工作能带来参考借鉴作用。 【目录】 篇1:万能实验报告心得体会 篇2:万能实验报告心得体会 篇3:万能实验报告心得体会 篇4:万能实验报告心得体会 篇5:万能实验报告心得体会 【正文】 篇1:万能实验报告心得体会 本次实训,是对我本事的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是十分有意义的。 经过这次实训,我收获了很多,一方面学习到了许多以前没学过的专业知识与知识的应用,另一方面还提高了自我动手做项目的本事。 在实训中我学到了许多新的知识。是一个让我把书本上的理论知识运用于实践中的好机会,原先,学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。

在这次实训中还锻炼了我其他方面的本事,提高了我的综合素质。首先,它锻炼了我做项目的本事,提高了独立思考问题、自我动手操作的本事,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等。其次,实训中的项目作业也使我更加有团队精神。 从那里,我学会了下头几点找工作的心态: 一、努力实践,自觉进行主角转化。 仅有将理论付诸于实践才能实现理论自身的价值,也仅有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是经过实践活动来实现的,也仅有经过实践才能锻炼人的品质,彰显人的意志。必须在实际的工作和生活中潜心体会,并自觉的进行这种主角的转换。 二、继续学习,不断提升理论涵养。 在信息时代,学习是不断地汲取新信息,获得事业提高的动力。作为一名青年学子更应当把学习作为坚持工作进取性的重要途径。走上工作岗位后,我会进取响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升本事,以广博的社会知识拓展视野。 三、提高工作进取性和主动性 实习,是开端也是结束。展此刻自我面前的是一片任自我驰骋的沃土,也分明感受到了沉甸甸的职责。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续创造更多的价值。 我认为大学生实习难,就业难,除非你有关系,能给你简便找到工作,否则就难逃市场选择的厄运。我在该公司实习总结了五个攻略,只能智勇

教案-基础护理学铺麻醉床

项目一一般患者入院护理 任务二为患者准备床单位 子任务2:铺暂空床法 课程名称护理技巧授课对象1703、1704、1708 任课教师刘玲 所在院系护理学院 工作任务1、明确铺暂空床的目的 2、能熟练地完成暂空床操作 课时 2 教学目标素质目标: 1.动作敏捷,不怕苦、不怕累,有较强的职业责任感。 2.能正确运用人体力学原理,省时节力。 知识目标: 1.简述铺麻醉床的目的、注意事项。 2.能详细列出铺麻醉床的用物。 3.比较三种铺床法的异同点。 能力目标: 1.能为手术、昏迷患者准备舒适安全的床单位。 学习者分析通过对铺备用床、暂空床的学习,同学们都已熟练掌握铺床各种用物的铺法和流程,但对麻醉床的适用对象--手术、昏迷患者的疾病和护理知识缺乏认 知。因此首先要给学生拓展手术、昏迷患者的相关知识来加深学生对设置麻 醉床目的的理解,从而引发思考铺麻醉床的方法。 教学重点 1.中单的叠法和铺法 2.枕头、防污垫、盖被铺法, 床旁椅放置位置解决措施讲解、演示、讨论、模拟演 练、强化训练 教学难点 1.麻醉盘和其他用物的准备 2.省时节力原则解决措施讲解、演示、讨论、模拟演 练强化训练 教学过程 教学环节教学内容教师活动学生活动教学资源时间 课前布置任务任务工单、教学视 频、习题作业 提前将相关资料传 至学习平台,让学 生课前自主学习 在相关通讯工 具上提前学习 相关知识 网络资源 教材 云课堂 案例导入工作任务展示案例导入学 习任务 讲解、分析案例、 导入工作任务 学生分析案例, 发表自己的意 见,教师协助分 析讲解 PPT 2min 完成子任务一:认识麻醉床、其目 的和评估内容 拓展手术、昏迷患 者的相关知识,对 课前预习进行检测 提问并补充解释 听讲、思考并回 答麻醉床与备 用床、暂空床的 不同、该如何设 置? PPT 10min 完成子任务二:用物准备引导学生回顾大 单、被套、毛毯的 听、思考,学生 讨论、回答 PPT 8min

俄罗斯方块设计思想

南京邮电大学 通达学院 算法与数据结构设计报告( 2016/ 2017学年第二学期) 专业软件工程嵌入式 学号姓名 学号姓名 学号姓名 学号姓名 指导教师陈兴国 指导单位计算机学院计算机科学与技术系 日期2017-5-26

俄罗斯方块 一、课题内容 实现俄罗斯方块游戏。主要功能为游戏界面显示、上下左右键响应以及当前得分统计。通过该课题全面熟悉数组、字符串等的使用。掌握设计的基本方法及友好界面的设计。 课题要求: 1、游戏界面显示:下落方块和方块堆、左右移动、旋转、删除行等特效以及得分。 2、动作选择:上下左右键对应于旋转、加速、左右移动的功能。 3、得分统计判断:判定能否消除行、并统计得分总数等。 扩展要求: 1、用户数据管理。 二、算法设计与分析 I、俄罗斯方块游戏需要解决的问题包括 (1)、随机产生方块并自动下移 (2)键变体 (3)Q退出,按space暂停 II (1)、声明俄罗斯方块的结构体 (2)、函数原型声明 (3)、制作游戏窗口 (4)、制作俄罗斯方块 (5)、判断是否可动 (6)、随机产生俄罗斯方块类型序号 (7)、判断是否满行并删除满行的俄罗斯方块 (8)暂停,继续功能 (9)新游戏创建 (10)用户的创建,分数用户名的保存,查看分数

Tetris类(主要类) 该类包含m a i n方法,应为应用程序的主类。该类用来创建游戏的用户界面,事件处理功能和menu餐单,用户信息的存储。整个程序从该类的m a i n方法开始执行。 成员变量:String userName; 构造方法:Tetris 内部类:Members,Tetrisblock Tetrisblok类: 用来设计游戏界面。游戏界面显示在由Tetrisblok类创建的整个用户界面的中(Center)区,游戏的即时分数、方块的效果图及方的预览功能都在整个类里面实现。用来封装俄罗斯小方块。一个方块的属性是由方块1位置即x和y的坐标、颜色决定的。 成员变量 private int blockType; Timer timer=null; private int turnState; private int x; private int y; private int i = 0; int j = 0; static int score = 0; int flag = 0; int delay=1000; // 定义已经放下的方块x=0-12,y=0-22; int[][] map = new int[14][24]; // 方块的形状第一组代表方块类型有S、Z、L、J、I、O、T 7种第二组代表旋转几次第三四组为方块矩阵 private final int shapes[][][] 成员方法:public void newblock() public void drawwall() public void newmap() public void newgame()

操作系统实验报告心得体会

操作系统实验报告心得体会 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。所以在这两周的课设中,熬了2个通宵,生物钟也严重错乱了。但是每完成一个任务我都兴奋不已。一开始任务是任务,到后面任务就成了自己的作品了。总体而言我的课设算是达到了老师的基本要求。总结一下有以下体会。 1、网络真的很强大,用在学习上将是一个非常高效的助手。几乎所有的资料都能够在网上找到。从linux虚拟机的安装,到linux的各种基本命令操作,再到gtk的图形函数,最后到文件系统的详细解析。这些都能在网上找到。也因为这样,整个课程设计下来,我浏览的相关网页已经超过了100个(不完全统计)。当然网上的东西很乱很杂,自己要能够学会筛选。 不能决定对或错的,有个很简单的方法就是去尝试。就拿第二个实验来说,编译内核有很多项小操作,这些小操作错了一项就可能会导致编译的失败,而这又是非常要花时间的,我用的虚拟机,编译一次接近3小时。所以要非常的谨慎,尽量少出差错,节省时间。多找个几个参照资料,相互比较,

慢慢研究,最后才能事半功倍。 2、同学间的讨论,这是很重要的。老师毕竟比较忙。对于课程设计最大的讨论伴侣应该是同学了。能和学长学姐讨论当然再好不过了,没有这个机会的话,和自己班上同学讨论也是能够受益匪浅的。大家都在研究同样的问题,讨论起来,更能够把思路理清楚,相互帮助,可以大大提高效率。 3、敢于攻坚,越是难的问题,越是要有挑战的心理。这样就能够达到废寝忘食的境界。当然这也是不提倡熬夜的,毕竟有了精力才能够打持久战。但是做课设一定要有状态,能够在吃饭,睡觉,上厕所都想着要解决的问题,这样你不成功都难。 4、最好在做课设的过程中能够有记录的习惯,这样在写实验报告时能够比较完整的回忆起中间遇到的各种问题。比如当时我遇到我以前从未遇到的段错误的问题,让我都不知道从何下手。在经过大量的资料查阅之后,我对段错误有了一定的了解,并且能够用相应的办法来解决。 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往系统保护的内存地址写数据,最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域

基坑支护工程实验报告

基坑支护工程实验报告 姓名**** 学号2011******** 专业土木工程 班级20**级 土木工程与建筑学院

基坑围护结构设计 第1区 ---------------------------------------------------------------------- [ 支护方案 ] ---------------------------------------------------------------------- 连续墙支护 ---------------------------------------------------------------------- [ 基本信息 ] ----------------------------------------------------------------------

---------------------------------------------------------------------- [ 超载信息 ] ---------------------------------------------------------------------- [ 附加水平力信息 ] ---------------------------------------------------------------------- ---------------------------------------------------------------------- [ 土层信息 ] ---------------------------------------------------------------------- [ 土层参数 ] ----------------------------------------------------------------------

相关主题
文本预览
相关文档 最新文档