湘潭大学软件设计实践

上传人:z**** 文档编号:171309820 上传时间:2022-11-25 格式:DOCX 页数:38 大小:116.69KB
收藏 版权申诉 举报 下载
湘潭大学软件设计实践_第1页
第1页 / 共38页
湘潭大学软件设计实践_第2页
第2页 / 共38页
湘潭大学软件设计实践_第3页
第3页 / 共38页
资源描述:

《湘潭大学软件设计实践》由会员分享,可在线阅读,更多相关《湘潭大学软件设计实践(38页珍藏版)》请在装配图网上搜索。

1、软件设计实践报告单位:信息工程学院 班级:计算机二班 学 号姓名:韩林波 任课教I丿湘潭大学2016年9月软件设计实践项目名称:俄罗斯方块一、项目概述1、概述作为家喻户晓的游戏,俄罗斯方块可谓是大名鼎鼎。不过,尽管它看起来比 较简单,实际上对于我们新手而言确实是一个具有挑战性的项目。我们准备先简单的理解下俄罗斯游戏开发的大概算法和需要的知识,然后把 这些知识组合开发俄罗斯方块。基本上实现俄罗斯方块游戏的控制和操作。并使用 windows IDE 搭建一个完整的 windows 应用程序。通过这个项目, 提高自身的动手能力。2、目的和用途我们在实际动手过程中,将C+课程中所学的概念、理论和方法加

2、以运用, 按照C+程序设计的基本步骤,设计出了一个适当规模的程序来实现设计课程 内容中的全部功能;设计了主控模块程序对给出的程序源代码给出了各部分的 详细注释自己根据能力及需要添加相应功能模块,增强模拟系统功能。完整的 项目内容也增强了我在课堂中的理论学习,为实习工作打下了基础。3、需求说明利用Microsoft Visual stdio 2010编写一个windows窗口应用程序下的俄 罗斯方块游戏。要求:(1)利用面向对象的方法编写。(2)能够记录游戏得分。(3)俄罗斯方块的多种类和旋转操作(4)信息提示时显示颜色变化。(5)暂停和重新开始4、环境要求本程序采用Microsoft Visu

3、al stdio 2010的专业版本进行编译。Microsoft Visual stdio 2010是Microsoft公司推出的基于Windows操作系统的可视化 C+编程工具,尽管Microsoft公司推出了.NET平台的集成开发环境,但由于 其良好的界面和可操作性,加上支持标准C/C+规范,有相当多的编程人员使 用 Microsoft Visual stdio 2010 进行应用系统的开发。关于稳定性,经测试,本程序可以在 windows 操作系统中稳定运行,较为 稳定。VC+是由Microsoft公司制作,基于WINDOWS环境的一款编程软件。 由于WINDOWS操作系统比起MS-DO

4、S操作系统优越了许多。作为与之相搭 配的编程软件自然也是功能非常强大,其最大的特点也就是可视化。不过在提供 可视化的编程方式的同时,它采用了面向对象的程序设计方法,同传统的结构化 程序设计方法相比,缩短了软件开发的周期,提高了软件的开发效率,使程序员 可以更好地理解和管理庞大且复杂的程序。VC+ +中还集成了大量的最新技术,如ActiveX,COM等技术适合开发大型 工程,这是相对于VB的一个优势。它的兼容性较好,还为用户提供了极为丰富 的文档和范例。关于VC的参考资料也非常多,程序开发人员可以紧紧地把握住软件开发技术发展的方向,开发出功能强大的应用程序。二、系统分析与设计1、系统分析根据分析

5、,俄罗斯方块这个程序一共要实现如下几个功能,开始游戏、游戏 的暂停继续、游戏控制和退出游戏。其中游戏控制最为主要和重要,它控制着 整个游戏的画面和有关数据的操作,是游戏的核心部分。暂停和退出功能做成一 体,在退出的提示下不做任何操作即可实现暂停的功能。程序结构如图。2、系统设计根据分析后的程序结构图设计出相应的流程图。俄罗斯方块的内容主要包括游戏开始,画背景和边框,显示分数等级和下一个方块的预览图;根据速度没隔一定时间方块自动下落,当有按键操作时,根据相应按键执行动作,每次动作前要判断是否动作可以执行。下落方块满一行时,消去该行,根据消去行数得到相应分数。分数达到一定程度,等级提升,速度加快。

6、同时可以响应 Esc 按键,提示是否退出程序。如图所示。毘晋消岳壬左右T7E星否龍務泣臺奔点 出/ 呈咅瓷酒游、理区_/呈生黑游戏结夫画背豊 瞳机主成方块亏垛下落改旻把狀左右移应下落加速消行计分Esc3、模块/函数设计根据程序的结构,将俄罗斯方块需要实现的功能细化为相应的类成员函数。 程序有三个类,-个 Block类,作为程序的元素块组成其他元素。-个 MyMap 类,用于整个俄罗斯方块的地图相关操作。一个 Manage 类,用于整个游戏的 相关操作。Block类设计声明class CBlockpublic:CBlock(void);CBlock(void);void initBlock();

7、void _initNextBlock(); /初始化下-个方块void SetBlockMove(bool isLeft); /方块移动void SetBlockDown();void SetBlockChange(); /方块坐标变化public:BLOCK_POS * GetBlockHead() return m_blockDate; int GetBlockType() return m_blockType; int GetNextBlockType() return m_NextblockType; int GetBlockChangeType() return m_blockCh

8、angeType;BLOCK_POS *GetNextBlockHead() return m_NextblockDate;private:BLOCK_POSm_blockDateBLOCK_NUM;intm_blockType;intm_blockChangeType;BLOCK_POSm_NextblockDateBLOCK_NUM;intm_NextblockType;intm_NextblockChangeType;MAP类设计声明(MyMap类)class CMyMappublic:CMyMap(void);CMyMap(void);void initMap(); /初始化地图voi

9、d DrawMap(HDC hdc);/绘制窗口地图void SetMapVal(int row,int col,int val);void SetMinMapVal(int row,int col,int val);int GetMapVal(int row,int col) return m_mapDaterowcol; /地图大小行列 int GetNum();bool IsOver();游戏是否结束void SetBlockColor(int type); /地图块颜色void SetNextBlockColor(int type);/ 下一个板块颜色private:int m_map

10、DateMAP_ROWMAP_COL;int m_NextMapDateBLOCK_NUMBLOCK_NUM;private:RECT m_FillRect;HBRUSH m_BlockHr;HBRUSH m_FrameHr;HBRUSH m_RunBlockHr;HBRUSH m_MapHr;HBRUSH m_NextBlockHr;Manager类设计声明(Manager类)class CManagepublic:CManage(HDC hdc);CManage(void);void initGame();/初始化游戏void UpdateGame();/更新重新绘制游戏void Draw

11、Game(HDC hdc); /绘制游戏void MyHandleMessage(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);void addGameSpeed(); /增加游戏速度int getPause();/是否暂停游戏void setPause(int n);/暂停游戏int getplayNum();/获取游戏分数void updateScoreList(int s); /更新游戏分数private:HDCm_BuffDc;HBITMAPm_BuffBitmap;private:CMyMap*m_pMap;CBlock

12、*m_pBlock;float m_GameSpeed;char m_Key;intm_PlayNum;intpause; /暂停标志;三、系统实现1、关键模块/函数的实现A 游戏界面俄罗斯方块的游戏界面包括游戏区域边框、下落方块绘制、右部计分和预览图 显示等。游戏区域边框的绘制比较简单,循环中确定光标的位置输出特定字符,即可完 成边框绘制。游戏区方块的绘制,循环从数据数组中依次读出数据,根据读到的 数据显示“”,最后组成方块的形状,完成方块的绘制。计分和预览图部分先 画出一个矩形区域,然后控制光标在其中显示分数、等级、预览图和提示信息。 具体实现:#include StdAfx.h#incl

13、ude MyMap.hCMyMap:CMyMap(void)for(int i = 0; i MAP_ROW; i+)for(int j = 0; j MAP_COL; j+)m_mapDateij = MAP_NULL;memset(m_NextMapDate,0,sizeof(int) * BLOCK_NUM * BLOCK_NUM); m_FillRect.top = 0;m_FillRect.bottom = 0; m_FillRect.left = 0;m_FillRect.right = 0; m_BlockHr = NULL; m_FrameHr = NULL; m_RunBlo

14、ckHr = NULL; m_MapHr = NULL; m_NextBlockHr = NULL;CMyMap:CMyMap(void)if(m_BlockHr) DeleteObject(m_BlockHr);if(m_FrameHr) DeleteObject(m_FrameHr);if(m_RunBlockHr) DeleteObject(m_RunBlockHr);if(m_MapHr) DeleteObject(m_MapHr);if(m_NextBlockHr) DeleteObject(m_NextBlockHr);void CMyMap:initMap()for(int i

15、= 0; i MAP_ROW; i+)for(int j = 0; j MAP_COL; j+)if(i = 0 | i = MAP_ROW - 1 | j = 0 | j = MAP_COL - 1) m_mapDateij = MAP_FRAME;elsem_mapDateij = MAP_NULL;memset(m_NextMapDate,0,sizeof(int) * BLOCK_NUM * BLOCK_NUM); m_FrameHr = CreateSolidBrush(RGB(127,127,127);m_BlockHr = CreateSolidBrush(0x373737);

16、m_MapHr = CreateSolidBrush(RGB(0,64,128); void CMyMap:DrawMap(HDC hdc)for(int i = 0; i MAP_ROW; +i)for(int j = 0; j MAP_COL; +j)switch(m_mapDateij)case MAP_RUNBLOCK:SetRect(&m_FillRect,200 + j * MAP_SIZE,15 + i * MAP_SIZE, 200 + (j + 1) * MAP_SIZE,15 + (i + 1) * MAP_SIZE);FillRect(hdc,&m_FillRect,m_

17、RunBlockHr);FrameRect(hdc,&m_FillRect,m_FrameHr);break;case MAP_BLOCK:SetRect(&m_FillRect,200 + j * MAP_SIZE,15 + i * MAP_SIZE, 200 + (j + 1) * MAP_SIZE,15 + (i + 1) * MAP_SIZE);FillRect(hdc,&m_FillRect,m_BlockHr); FrameRect(hdc,&m_FillRect,m_FrameHr);break;case MAP_FRAME:SetRect(&m_FillRect,200 + j

18、 * MAP_SIZE,15 + i * MAP_SIZE, 200 + (j + 1) * MAP_SIZE,15 + (i + 1) * MAP_SIZE);FillRect(hdc,&m_FillRect,m_MapHr);FrameRect(hdc,&m_FillRect,m_FrameHr);break;for(int i = 0; i BLOCK_NUM; +i)for(int j = 0; j 4; -i)bool isClear = true;for(int j = 1; j 4; -m)for(int n = 1; n MAP_COL - 1; +n)m_mapDatemn

19、= m_mapDatem - 1n; i+;return num;void CMyMap:SetMinMapVal( int row,int col,int val ) m_NextMapDaterowcol = val;bool CMyMap:IsOver()bool isOver = false;for(int m = 1; m MAP_COL - 1; +m) if(m_mapDate4m != MAP_NULL) return true;return isOver;void CMyMap:SetBlockColor( int type ) if(m_RunBlockHr)DeleteO

20、bject(m_RunBlockHr); switch(type)case 0:m_RunBlockHr = CreateSolidBrush(RGB(255,0,0); break;case 1:m_RunBlockHr = CreateSolidBrush(RGB(0,255,0); break;case 2:m_RunBlockHr = CreateSolidBrush(RGB(0,0,255); break;case 3:m_RunBlockHr = CreateSolidBrush(RGB(255,255,0); break;case 4:m_RunBlockHr = CreateS

21、olidBrush(RGB(255,0,255); break;case 5:m_RunBlockHr = CreateSolidBrush(RGB(0,255,255); break;case 6:m_RunBlockHr = CreateSolidBrush(RGB(255,0,128); break;void CMyMap:SetNextBlockColor( int type )if(m_NextBlockHr)DeleteObject(m_NextBlockHr);switch(type)case 0:m_NextBlockHr = CreateSolidBrush(RGB(255,

22、0,0);break;case 1:m_NextBlockHr = CreateSolidBrush(RGB(0,255,0);break;case 2:m_NextBlockHr = CreateSolidBrush(RGB(0,0,255);break;case 3:m_NextBlockHr = CreateSolidBrush(RGB(255,255,0);break;case 4:m_NextBlockHr = CreateSolidBrush(RGB(255,0,255);break;case 5:m_NextBlockHr = CreateSolidBrush(RGB(0,255

23、,255);break;case 6:m_NextBlockHr = CreateSolidBrush(RGB(255,0,128);break;B生成方块本程序中生成的方块有六种形状,每一种方块以 shapeindex 标记,在程序运 行生成方块时,调用shapeindex二rand()%5 + 1;语句,确定当前要显示的是哪 一个方块形状。而在实际运行中,第一次需要调用两次生成方块函数 make(), 将先产生的赋给游戏当前方块,第二个赋给预览图方块。以后每次产生一个方块, 把预览方块赋给当前方块,把新产生的赋给预览方块。具体如图所示。具体实现:void CBlock:_initNextB

24、lock() m_NextblockType = rand() % 7; switch(m_NextblockType) case 0: m_NextblockChangeType = rand() % 2; switch(m_NextblockChangeType) case 0:m_NextblockDate0.row = 2; m_NextblockDate0.col = 0;m_NextblockDate1.row = 2; m_NextblockDate1.col = 1;m_NextblockDate2.row = 2; m_NextblockDate2.col = 2;m_Nex

25、tblockDate3.row = 2; m_NextblockDate3.col = 3;break;case 1:m_NextblockDate0.row = 3; m_NextblockDate0.col = 1;m_NextblockDate1.row = 2; m_NextblockDate1.col = 1;m_NextblockDate2.row = 1; m_NextblockDate2.col = 1;m_NextblockDate3.row = 0; m_NextblockDate3.col = 1; break;break;case 1:m_NextblockDate0.

26、row = 1; m_NextblockDate0.col = 1;m_NextblockDate1.row = 1; m_NextblockDate1.col = 2;m_NextblockDate2.row = 2; m_NextblockDate2.col = 1;m_NextblockDate3.row = 2; m_NextblockDate3.col = 2; break;case 2:m_NextblockChangeType = rand() % 4; switch(m_NextblockChangeType) case 0:m_NextblockDate0.row = 1;

27、m_NextblockDate0.col = 1;m_NextblockDate1.row = 1; m_NextblockDate1.col = 2;m_NextblockDate2.row = 2; m_NextblockDate2.col = 2;m_NextblockDate3.row = 3; m_NextblockDate3.col = 2; break;case 1:m_NextblockDate0.row = 1; m_NextblockDate0.col = 2;m_NextblockDate1.row = 2; m_NextblockDate1.col = 2;m_Next

28、blockDate2.row = 2;m_NextblockDate2.col = 1;m_NextblockDate3.row = 2; m_NextblockDate3.col = 0; break;case 2:m_NextblockDate0.row = 2; m_NextblockDate0.col = 2;m_NextblockDate1.row = 2; m_NextblockDate1.col = 1;m_NextblockDate2.row = 1; m_NextblockDate2.col = 1;m_NextblockDate3.row = 0; m_NextblockD

29、ate3.col = 1; break;case 3:m_NextblockDate0.row = 2; m_NextblockDate0.col = 1;m_NextblockDate1.row = 1; m_NextblockDate1.col = 1;m_NextblockDate2.row = 1; m_NextblockDate2.col = 2;m_NextblockDate3.row = 1; m_NextblockDate3.col = 3; break;break;case 3:m_NextblockChangeType = rand() % 4; switch(m_Next

30、blockChangeType) case 0:m_NextblockDate0.row = 1; m_NextblockDate0.col = 1;m_NextblockDate1.row = 1; m_NextblockDate1.col = 2;m_NextblockDate2.row = 1; m_NextblockDate2.col = 3;m_NextblockDate3.row = 2; m_NextblockDate3.col = 2; break;case 1:m_NextblockDate0.row = 1; m_NextblockDate0.col = 2;m_Nextb

31、lockDate1.row = 2;m_NextblockDate1.col = 2;m_NextblockDate2.row = 3; m_NextblockDate2.col = 2; m_NextblockDate3.row = 2; m_NextblockDate3.col = 1; break;case 2:m_NextblockDate0.row = 2; m_NextblockDate0.col = 3; m_NextblockDate1.row = 2; m_NextblockDate1.col = 2;m_NextblockDate2.row = 2; m_Nextblock

32、Date2.col = 1; m_NextblockDate3.row = 1; m_NextblockDate3.col = 2; break;case 3:m_NextblockDate0.row = 3; m_NextblockDate0.col = 1; m_NextblockDate1.row = 2; m_NextblockDate1.col = 1;m_NextblockDate2.row = 1; m_NextblockDate2.col = 1;m_NextblockDate3.row = 2; m_NextblockDate3.col = 2; break;break;ca

33、se 4:m_NextblockChangeType = rand() % 4; switch(m_NextblockChangeType) case 0:m_NextblockDate0.row = 1; m_NextblockDate0.col = 2; m_NextblockDate1.row = 1; m_NextblockDate1.col = 1;m_NextblockDate2.row = 2; m_NextblockDate2.col = 1;m_NextblockDate3.row = 3; m_NextblockDate3.col = 1; break;case 1:m_N

34、extblockDate0.row = 2; m_NextblockDate0.col = 2;m_NextblockDate1.row = 1; m_NextblockDate1.col = 2; m_NextblockDate2.row = 1; m_NextblockDate2.col = 1; m_NextblockDate3.row = 1; m_NextblockDate3.col = 0; break;case 2:m_NextblockDate0.row = 2; m_NextblockDate0.col = 1; m_NextblockDate1.row = 2; m_Nex

35、tblockDate1.col = 2; m_NextblockDate2.row = 1; m_NextblockDate2.col = 2;m_NextblockDate3.row = 0; m_NextblockDate3.col = 2; break;case 3:m_NextblockDate0.row = 1; m_NextblockDate0.col = 1; m_NextblockDate1.row = 2; m_NextblockDate1.col = 1; m_NextblockDate2.row = 2; m_NextblockDate2.col = 2;m_Nextbl

36、ockDate3.row = 2; m_NextblockDate3.col = 3; break;break;case 5:m_NextblockChangeType = rand() % 2; switch(m_NextblockChangeType) case 0:m_NextblockDate0.row = 1; m_NextblockDate0.col = 2; m_NextblockDate1.row = 2; m_NextblockDate1.col = 2; m_NextblockDate2.row = 2; m_NextblockDate2.col = 3;m_Nextblo

37、ckDate3.row = 3; m_NextblockDate3.col = 3; break;case 1:m_NextblockDate0.row = 1; m_NextblockDate0.col = 3;m_NextblockDate1.row = 1; m_NextblockDate1.col = 2;m_NextblockDate2.row = 2; m_NextblockDate2.col = 2;m_NextblockDate3.row = 2; m_NextblockDate3.col = 1; break;break;case 6:m_NextblockChangeTyp

38、e = rand() % 2; switch(m_NextblockChangeType) case 0:m_NextblockDate0.row = 1; m_NextblockDate0.col = 3;m_NextblockDate1.row = 2; m_NextblockDate1.col = 3;m_NextblockDate2.row = 2; m_NextblockDate2.col = 2;m_NextblockDate3.row = 3; m_NextblockDate3.col = 2; break;case 1:m_NextblockDate0.row = 2; m_N

39、extblockDate0.col = 3;m_NextblockDate1.row = 2; m_NextblockDate1.col = 2;m_NextblockDate2.row = 1; m_NextblockDate2.col = 2;m_NextblockDate3.row = 1; m_NextblockDate3.col = 1; break;break;void CBlock:initBlock()for(int i = 0; i BLOCK_NUM; +i)for(int j = 0; j BLOCK_NUM; +j)m_blockDatei.row = m_Nextbl

40、ockDatei.row + 1;m_blockDatei.col = m_NextblockDatei.col + 4;m_blockType = m_NextblockType;m_blockChangeType = m_NextblockChangeType;_initNextBlock();C方块变形俄罗斯方块的特点就在于通过方块的变形拼满整行来消去该行方块从而使游 戏可以继续下去,很难想象不能变形的俄罗斯方块是什么样子。而变形的过程就 是根据当前方块形状改变方块的相对位置,这样就可以改变方块的形状了。在程 序中每当按下 Up 键,程序判断可以变形后,根据当前方块的形状序号 shape

41、index和变化形状序号changeindex调用相应的方块数值赋给draw ()函 数,通过刷新重画就可以显示变化后的方块。具体实现:void CBlock:SetBlockChange()switch(m_blockType)case 0:switch(m_blockChangeType)case 0:m_blockDate0.row = m_blockDate1.row + 1;m_blockDate0.col = m_blockDate1.col;m_blockDate2.row = m_blockDate1.row - 1;m_blockDate2.col = m_blockDate

42、1.col;m_blockDate3.row = m_blockDate1.row - 2;m_blockDate3.col = m_blockDate1.col;m_blockChangeType = 1;break;case 1:m_blockDate0.row = m_blockDate1.row; m_blockDate0.col = m_blockDate1.col - 1; m_blockDate2.row = m_blockDate1.row; m_blockDate2.col = m_blockDate1.col + 1;m_blockDate3.row = m_blockDa

43、te1.row;m_blockDate3.col = m_blockDate1.col + 2; m_blockChangeType = 0;break;break;case 2:switch(m_blockChangeType)case 0:m_blockDate0.row = m_blockDate1.row; m_blockDate0.col = m_blockDate1.col; m_blockDate1.row = m_blockDate0.row + 1; m_blockDate1.col = m_blockDate0.col;m_blockDate2.row = m_blockD

44、ate0.row + 1; m_blockDate2.col = m_blockDate0.col - 1;m_blockDate3.row = m_blockDate0.row + 1; m_blockDate3.col = m_blockDate0.col - 2; m_blockChangeType = 1;break;case 1:m_blockDate0.row = m_blockDate1.row; m_blockDate0.col = m_blockDate1.col; m_blockDate1.row = m_blockDate0.row; m_blockDate1.col =

45、 m_blockDate0.col - 1;m_blockDate2.row = m_blockDate0.row - 1; m_blockDate2.col = m_blockDate0.col - 1;m_blockDate3.row = m_blockDate0.row - 2; m_blockDate3.col = m_blockDate0.col - 1; m_blockChangeType = 2;break;case 2:m_blockDate0.row = m_blockDate1.row; m_blockDate0.col = m_blockDate1.col; m_bloc

46、kDate1.row = m_blockDate0.row - 1; m_blockDate1.col = m_blockDate0.col;m_blockDate2.row = m_blockDate0.row - 1; m_blockDate2.col = m_blockDate0.col + 1; m_blockDate3.row = m_blockDate0.row - 1; m_blockDate3.col = m_blockDate0.col + 2; m_blockChangeType = 3;break;case 3:m_blockDate0.row = m_blockDate

47、1.row; m_blockDate0.col = m_blockDate1.col; m_blockDate1.row = m_blockDate0.row; m_blockDate1.col = m_blockDate0.col + 1;m_blockDate2.row = m_blockDate0.row + 1; m_blockDate2.col = m_blockDate0.col + 1;m_blockDate3.row = m_blockDate0.row + 2; m_blockDate3.col = m_blockDate0.col + 1; m_blockChangeTyp

48、e = 0;break;break;case 3:switch(m_blockChangeType)case 0:m_blockDate0.row = m_blockDate1.row - 1; m_blockDate0.col = m_blockDate1.col ; m_blockDate1.row = m_blockDate1.row ; m_blockDate1.col = m_blockDate1.col ;m_blockDate2.row = m_blockDate1.row + 1; m_blockDate2.col = m_blockDate1.col ;m_blockDate

49、3.row = m_blockDate1.row ; m_blockDate3.col = m_blockDate1.col - 1; m_blockChangeType = 1;break;case 1:m_blockDate0.row = m_blockDate1.row ; m_blockDate0.col = m_blockDate1.col - 1; m_blockDate1.row = m_blockDate1.row ; m_blockDate1.col = m_blockDate1.col ; m_blockDate2.row = m_blockDate1.row ; m_bl

50、ockDate2.col = m_blockDate1.col + 1; m_blockDate3.row = m_blockDate1.row - 1; m_blockDate3.col = m_blockDate1.col ; m_blockChangeType = 2; break;case 2:m_blockDate0.row = m_blockDate1.row - 1; m_blockDate0.col = m_blockDate1.col ; m_blockDate1.row = m_blockDate1.row ; m_blockDate1.col = m_blockDate1

51、.col ; m_blockDate2.row = m_blockDate1.row + 1; m_blockDate2.col = m_blockDate1.col ; m_blockDate3.row = m_blockDate1.row ; m_blockDate3.col = m_blockDate1.col + 1; m_blockChangeType = 3;break;case 3:m_blockDate0.row = m_blockDate1.row ; m_blockDate0.col = m_blockDate1.col - 1; m_blockDate1.row = m_

52、blockDate1.row ; m_blockDate1.col = m_blockDate1.col ; m_blockDate2.row = m_blockDate1.row + 1; m_blockDate2.col = m_blockDate1.col ; m_blockDate3.row = m_blockDate1.row ; m_blockDate3.col = m_blockDate1.col + 1; m_blockChangeType = 0;break;break;case 4:switch(m_blockChangeType)case 0:m_blockDate1.r

53、ow = m_blockDate0.row; m_blockDate1.col = m_blockDate0.col;m_blockDate0.row = m_blockDate1.row + 1; m_blockDate0.col = m_blockDate1.col; m_blockDate2.row = m_blockDate1.row; m_blockDate2.col = m_blockDate1.col - 1; m_blockDate3.row = m_blockDate1.row; m_blockDate3.col = m_blockDate1.col - 2; m_block

54、ChangeType = 1;break;case 1:m_blockDate1.row = m_blockDate0.row; m_blockDate1.col = m_blockDate0.col; m_blockDate0.row = m_blockDate1.row; m_blockDate0.col = m_blockDate1.col - 1; m_blockDate2.row = m_blockDate1.row - 1; m_blockDate2.col = m_blockDate1.col;m_blockDate3.row = m_blockDate1.row - 2; m_

55、blockDate3.col = m_blockDate1.col; m_blockChangeType = 2;break;case 2:m_blockDate1.row = m_blockDate0.row; m_blockDate1.col = m_blockDate0.col;m_blockDate0.row = m_blockDate1.row - 1; m_blockDate0.col = m_blockDate1.col; m_blockDate2.row = m_blockDate1.row; m_blockDate2.col = m_blockDate1.col + 1;m_

56、blockDate3.row = m_blockDate1.row; m_blockDate3.col = m_blockDate1.col + 2; m_blockChangeType = 3;break;case 3:m_blockDate1.row = m_blockDate0.row;m_blockDate1.col = m_blockDate0.col;m_blockDate0.row = m_blockDate1.row; m_blockDate0.col = m_blockDate1.col + 1;m_blockDate2.row = m_blockDate1.row + 1;

57、 m_blockDate2.col = m_blockDate1.col;m_blockDate3.row = m_blockDate1.row + 2; m_blockDate3.col = m_blockDate1.col; m_blockChangeType = 0;break;break;case 5:switch(m_blockChangeType)case 0:m_blockDate0.row = m_blockDate2.row - 1; m_blockDate0.col = m_blockDate2.col + 1;m_blockDate1.row = m_blockDate2.row - 1; m_blockDate1.col = m_blockDate2.col;m_blockDate2.row = m_blockDate2.row; m_blockDate2.col = m_blockDate2.col;m_blockDate3.row = m_blockDate2.row ; m_blockDate3.col = m_blockDate2.col - 1; m_blockChangeType = 1;break;case

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!