vc++程序设计实验报告模版

上传人:第*** 文档编号:32819207 上传时间:2018-02-12 格式:DOC 页数:30 大小:242KB
返回 下载 相关 举报
vc++程序设计实验报告模版_第1页
第1页 / 共30页
vc++程序设计实验报告模版_第2页
第2页 / 共30页
vc++程序设计实验报告模版_第3页
第3页 / 共30页
vc++程序设计实验报告模版_第4页
第4页 / 共30页
vc++程序设计实验报告模版_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《vc++程序设计实验报告模版》由会员分享,可在线阅读,更多相关《vc++程序设计实验报告模版(30页珍藏版)》请在金锄头文库上搜索。

1、西安科技大学VC+程序设计实验报告题 目 双人版俄罗斯方块 院、系(部) 计算机科学与技术 专业及班级 计科 1401 班 学 号 1408030126 姓 名 黄培 日 期 2016/5/30 11 题目要求双人同时进行的俄罗斯方块2 功能需求1. 双人同时进行的俄罗斯方块2. 方块可进行左右移动,旋转变形,加速下落3. 可以进行游戏难度的选择,分别为简单,中等,高级3 总体设计3.1 系统模块1. 砖块显示模块2. 用户的控制模块,移动,旋转,加速下落3. 游戏难度模块,难度选择,分别为简单,中等,高级3.2 系统业务处理流程是开始选择游戏难度开始游戏随机产生方块响应用户操作到达底部2否4

2、 详细设计1. Tetris 游戏的矩形框类设计CBin(主要实现代码)2. Bin.h3. #ifndef BIN_H4. #define BIN_H5. class CBin 6. private:7. unsigned char* image;8. unsigned int width;9. unsigned int height;10. 11. public:12. CBin(unsigned int w, unsigned int h);13. CBin();14. 15. unsigned int getWidth() return width; ;16. unsigned int

3、 getHeight() return height; ;17. 18. void getImage(unsigned char* destImage);19. void setImage(unsigned char* srcImage);20. 21. unsigned int removeFullLines();22. ;23. #endif占满一行下降一行砖块是否到达顶端是否结束3Bin.cpp#includestdafx.h#include bin.hCBin:CBin(unsigned int w, unsigned int h)width=w;height=h;image = ne

4、w unsigned char* height;for (unsigned int i = 0; i0; m-)for (j=0; j(unsigned char* binImage)=0;virtual void putAtTop(int newOrient, int newPosX)=0;virtual void putAtMid(int newOrient, int newPosX)=0;class CIBrick : public CBrick public:int shiftLeft(CBin* bin);int shiftRight(CBin* bin);int shiftDown

5、(CBin* bin);int rotateClockwise(CBin* bin);int checkCollision(CBin* bin);void operator(unsigned char* binImage);void putAtTop(int newOrient, int newPosX);void putAtMid(int newOrient, int newPosX);class CLBrick : public CBrick public:int shiftLeft(CBin* bin);int shiftRight(CBin* bin);int shiftDown(CB

6、in* bin);int rotateClockwise(CBin* bin);6int checkCollision(CBin* bin);void operator(unsigned char* binImage);void putAtTop(int newOrient, int newPosX);void putAtMid(int newOrient, int newPosX);class CSBrick : public CBrick public:int shiftLeft(CBin* bin);int shiftRight(CBin* bin);int shiftDown(CBin

7、* bin);int rotateClockwise(CBin* bin);int checkCollision(CBin* bin);void operator(unsigned char* binImage);void putAtTop(int newOrient, int newPosX);void putAtMid(int newOrient, int newPosX);class COBrick : public CBrick public:int shiftLeft(CBin* bin);int shiftRight(CBin* bin);int shiftDown(CBin* b

8、in);int rotateClockwise(CBin* bin);int checkCollision(CBin* bin);void operator(unsigned char* binImage);void putAtTop(int newOrient, int newPosX);void putAtMid(int newOrient, int newPosX);#endifBrick.cppint CIBrick:shiftLeft(CBin* bin)int posX;posX=getPosX();setPosX(posX-1);if (checkCollision(bin)=0

9、) setPosX(posX);return 0;7return 1;int CIBrick:shiftDown(CBin* bin)int posY;posY=getPosY();setPosY(posY+1);if (checkCollision(bin)= 0) setPosY(posY);return 0;return 1;int CIBrick:shiftRight(CBin* bin)int posX;posX=getPosX();setPosX(posX+1);if (checkCollision(bin)=0) setPosX(posX);return 0;return 1;i

10、nt CIBrick:rotateClockwise(CBin* bin)int orientation,oldOrientation;orientation=getOrientation();oldOrientation=orientation;if (orientation=3)orientation=0;elseorientation=orientation+1;setOrientation(orientation);if (checkCollision(bin)=0) setOrientation(oldOrientation);return 0;return 1;int CIBric

11、k:checkCollision(CBin* bin)8int width;int height;unsigned char* image;int orientation;int posX;int posY;width=bin-getWidth();height=bin-getHeight();image = new unsigned char* height;for (int i = 0; igetImage(image);orientation=getOrientation();posX=getPosX();posY=getPosY();/I-brick状态0if (orientation

12、=0) /砖块碰到边界if( (posXwidth-1)|(posYheight-1)return 0;/砖块碰到其他固定砖块if ( (imageposY-1posX!=0)|(imageposYposX!=0)|(imageposY+1posX!=0)|(imageposY+2posX!=0)return 0;/状态1if (orientation=1) if( (posXwidth-1)|(posYheight-1)return 0;if ( (imageposYposX-2!=0)|(imageposYposX-1!=0)|(imageposYposX!=0)|(imageposYpo

13、sX+1!=0)9return 0;/状态 2if (orientation=2) if(posXwidth-1)|(posYheight-1)return 0;if ( (imageposY-2posX!=0)|(imageposY-1posX!=0)|(imageposYposX!=0)|(imageposY+1posX!=0)return 0;if (orientation=3) if( (posXwidth-1)|(posYheight-1)return 0;if ( (imageposYposX-1!=0)|(imageposYposX!=0)|(imageposYposX+1!=0

14、)|(imageposYposX+2!=0)return 0;return 1;void CIBrick:operator(unsigned char* binImage)int orientation;int posX;int posY;unsigned char colour;posX=getPosX();posY=getPosY();orientation=getOrientation();colour=getColour();/状态 0if (orientation=0) 10binImageposY-1posX=colour;binImageposYposX=colour;binImageposY+1posX=colour;binImageposY+2posX=colour;/状态 1if (orientation=1) binImageposYposX-2=colour;binImageposYposX-1=colour;binImageposYposX=colour;binImageposYposX+1=colour;/状态 2if (orientation=2) binImageposY-2posX=colour;binImageposY-1posX=colour;binImageposYpos

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号