欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    C语言程序设计课程设计贪吃蛇.docx

    • 资源ID:1224866       资源大小:144.44KB        全文页数:23页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计课程设计贪吃蛇.docx

    辽宁工业大学C+语言程序设计课程设计(论文)题目:贪吃蛇院(系):软件学院专业班级:软件工程Hl班学号:;学生姓名:指导教师:翟宝峰教师职称:副教授起止时间:201L12.12-2011.12.25课程设计(论文)任务及评语学号学生姓名专业班级软件工程Ill班课程设计(论文)题目贪吃蛇课程设计(论文)任务程序设计的任务与要求:(1) .掌握面向对象程序设计语言C+的基本语法(2) .掌握C+面向对象设计的思想(3) .掌握VC+6.0与DEVC+开发工具的使用(4) .运用标准C+规范设计应用程序设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。指导教师评语及成绩成绩:指导教师签字:年月日教研室:软件教研室院(系):软件学院目录第1章课程设计目的与要求11.1 设计目的11.2 实验环境11.3 预备知识1上4设的要、求.二12-F't,22.1课题描述22.2系统设计22.2.1功能分析22.2.2面向对象设计22.2.2类成员描述82.3程序实现112.3.1源码分析11*2.3.2、运行结果18第3章课程设十总结1920第1章课程设计目的与要求1.1设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。1.2 实验环境硬件要求能运行WindoWS操作系统的微机系统。C+语言应用程序开发软件使用:VC+系统,或其他C+语言应用程序开发软件。1.3 预备知识熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2 .积极上机调试源程序,增强编程技巧与调程能力。3 .认真书写课程设计预习报告,课程设计说明书。4 .遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章课程设计内容2. 1课题描述贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力。因此我选定了这个题目。2.2系统设计2.1功能分析1.贪吃蛇的基本玩法:即可以用上、下、左、右键控制游戏区蛇的运动方向,使之向着食物方向运动,并吞吃食物使身体增长;2 .调节蛇的运动速度:即用户可以调节蛇的运动速度来选择不同的难度;3 .选择关卡功能:即游戏分多个难度级别(关卡),用户可以选择不同的难度级别进行游戏;4 .背景颜色变换功能:即用户可以选择一种自己喜欢的颜色作为游戏区的背景色,避免对一种颜色产生视觉疲劳。2.2.2面向对象设计1类的设计本程序设计了IACtionHandIer类、IGraPhiCOUt类、CTraCeFn类、CSnakeGalne类、CSnakeviCW类、CSCOrCBoardDlg类、CChangeSPeedDIg类等。IActionHandler类作用:用于处理蛇的运动等操作。IGraphicOut类作用:显示面板信息。CTraceFn类作用:描绘踪迹。CSnakeGame类作用:控制游戏。CSnakeVieW类作用:游戏界面控制。CScoreBoardDlg类作用:得分信息控制QCChangeSpeedDlg类作用:移动速率控制。CMainFrame类作用:主窗口设置。基类为IActionHandler类、IGraPhiCOUt类、CTraceFn类。派生类CSnakeGame类由IActionHandler类继承,CSnakeView类由IGraPhiCOUt类继承。2. UML类图CSnakeGame-m_yFood:int-m_xFood:int-m_speed:int-m-mousepen:bool-m_timerCount:int-m_score:int-m_curDir:Direction- m_ySize:int- m_xSize:int- m_yPos:int- m_xPos:int- m_yPosBody:int- mxPosBody:int+gelSpeed():int+changeSpeed(speed:int):void+leftMove():void+rightMove():void+upMove():void+downMove():void+timeUp():void+exit():void+draw():void<<create>>-CSnakeGame(pGO:IGraphicOut)<<destroy>>-CSnakeGame()图2.1CSnakeGame类IAcrtionHandle#mpG0:IGraphicOu<<create>>-IActionHandler(pGO:IGraphicOut)<<destroy>>-IActionHandler()+getSpeed():int+changeSpeed(speed:int):void+leftMove():void+rightMove():void+downMove():void+upMove():void+timeUp():void+exit():void+draw():void图2.2IAcrtionHandle类IGraphicOut#mpDC:void+scoreBoard(scoreMessages:char):void+redraw():void+drawHead(type:int,x:int,y:int):void+drawBody(x:int,y:int):void+drawFood(type:int,x:int,y:int):void+drawHorzWall(x1:int,x2:int,y:int):void+drawVertWalI(x:int,yl:int,y2:int):void+drawScore(score:+setDisplaySize(width:int,height:int):void+close():void<<create>>-IGraphicOut()<<destroy>>-IGraphicOut()图2.3IGraPhiCOUt类CSnakeVieW-m_wTimerRes:UINT-m_timerID:int-m_pActionHandler:IActionHandler-m_sizeDB:CSize-m_pBmpDB:CBitmap-m_pDCMemDB:CDC-m_numCellsY:int-mnumCellsX:int<<create>>-CSnakeView()«CppMacro»-DECLARE_DYNCREATE(CSnakeView)<<CppFriend>>-myTimerCallback(wTimerID:UINT,msg:UINT,dwUser:DWORD,dwl:DWORD,dw2:DWORD):void<<destroy>>-CSnakeView()+OnDraw(pDC:CDC):void+GetDocument():CSnakeDoc+PreCreateWindow(cs:CREATESTRUCT):BOOL+OnlnitialUpdateO:void+scoreBoard(scoreMessages:char):void+close():void+redraw():void+SetActionHandler(pHandler:IActionHandler):void+setDisplaySize(width:int,height:int):void-drawSprite(pDC:CDC,resID:int,ix:int,iy:int):void+drawScore(score:int):void+drawHorzWall(x1:int,x2:int,y:int):void+drawVertWall(x:int,yl:int,y2:int):void+drawFood(type:int,x:int,y:int):void+drawBody(x:int,y:int):void+drawHead(type:int,x:int,y:int):void+AssertValidO:void+Dump(dc:CDumpContext):void-closeWindow():void#OnSize(nType:UINT,ex:int,cy:int):void#OnPaint():void#OnDestroy():void#OnChangeLevel():void#OnPreparePrinting(pInfo:CPrintInfo):BOOL#OnBeginPrinting(pDC:CDC,plnfo:CPrintInfo):void#OnEndPrinling(pDC:CDC,plnfo:CPrintInfo):void#OnKeyDown(nChar:UINT,nRepCnt:UINT,nFlags:UINT):void#0nTimer(nIDEvent:UINT):void#OnCreate(lpCreateStnicl:LPCREATESTRUCT):ini图2.4CSnakeView类CTraceFn-nlndent:ini-AfxTrace(lpszFormat:LPCTSTR,.):AFX_CDECL<<CppFriend>>-OutputDebugStringW95(lpOutputString:1.PCTSTR,.):void<<create>>-CTraceFn()<<destroy>>-CTraceFn()图2.5CTraceFn类CMainFrame#m_WndStalUSBar:CStatusBar#mwndToolBar:CToolBar<<create>>-CMainFrame()«CppMacro»-DECLARE_DYNCREATE(CMainFrame)+PreCreateWindow(cs:CREATESTRUCT):BOOL+adjustDisplaySize(width:int,height:int):void<<destroy>>-CMainFrame()+AssertValid():void+Dump(dc:CDumpContext):void#OnCreate(lpCreateStruct:LPCREATESTRUCT):int#OnSysCommand(nID:UINT,IParam:LPARAM):void#OnAppExit():void#OnAppAbout():void#OnClose():void<<CppMacro»DECLAREMESSAGEMAP()图2.6CMainFrame类CChangeSpeedDlg+m-speed:int<<create>>-CChangeSpeedDlg(pParent:CWnd)#DoDataExchange(pDX:CDataExchange):void#OnInitDialog():BOOLVVCPPMaClo>>-DECLAREMESSAGEMAP()图2.7CChangeSPeedDlg类CScoreBoardDlg+m-scoreBoardMessages:CString<<create>>-CScoreBoardDlg(pParent:CWnd)«CppMacro»-DECLARE_MESSAGE_MAP()#DoDataExchange(pDX:CDataExchange):void图2.8CScoreBoardDIg类整体UML类图如下:图2.6整体UML图3.总体流程图图2.7总体流程图2. 2.2类成员描述1. CSnakeGame类:描述控制游戏。数据成员:myFood的类型为Int,表示食物的横坐标。m_xFood的类型为int,表示食物的纵坐标。m_speed的类型为int,表示食物出现与消失的速度。mmouse0pen的类型为bool,表示管理音乐是否开启。m_timerCount的类型为int,表示计时。m_score的类型为int,表示计分。mySize的类型为int,表示单元格在背景中的相对横坐标。m_xSize的类型为int,表示单元格在背景中的相对纵坐标m_yPos的类型为int,表示蛇头位置的横坐标。mXPOS的类型为int,表示蛇头位置的纵坐标。m_yPosBody的类型为int,表示蛇身的横坐标。m_xPosBody的类型为int,表示蛇身的纵坐标。成员函数:函数getSpeed():蛇运动的函数,返回值类型为int函数ChangeSPeed(intspeed):改变蛇的运动速度,返回值类型为VOid函数IeftMove():蛇向左移动的函数,判断来移动蛇头,返回值类型void函数rightMove():蛇向右移动的函数,判断移动蛇头,返回值类型void函数UPMOVe():蛇向上移动的函数,判断移动蛇头,返回值类型Void函数downMove():蛇向下移动的函数,判断移动蛇头,返回值类型void函数timeUp():计算时间的函数,返回值类型void函数exit。:判断停止的函数,返回值类型void函数draw。:画围墙,返回值类型Void函数CSnakeGame(IGraPhiCoUt*constpGO):构造函数函数VirtUaICSnakeGame():析构函数2. CSnakeVieW类:游戏界面控制。数据成员:mWTinIerReS的类型为UINT,表示随机数发生器。m_timerID的类型为int,表示显示时间。m_pActionHand1er的类型为void,表示蛇移动的控制。m_sizeDB的类型为void,表示显示大小m_pDCMemDB的类型为void,表示计分板信息m_numCellsY的类型为int,表示计分板的横坐标m_numCellsX的类型为int,表示计分板的纵坐标成员函数:函数OnDraW(CDC*pDC):绘制游戏背景、游戏文字以及控制蛇的样式,返回值类型为VOid函数PreCreateWindoW(CREATESTRUCT&cs):重新创建窗口并复制构造函数,返回值类型为BOOL函数OnInitiaIUPdate():初始化贪吃蛇游戏参数,返回值类型为Void函数OnPreParePrinting():暂停游戏,返回值类型为BOOL函数OnBeginPrinting():开始游戏,返回值类型为VOid函数OnEndPrinting():退出游戏,返回值类型为Void函数ScoreBoard():显示分数面板,返回值类型为void函数ClOSe():图形结束,返回值类型为Void函数redraw。:重绘游戏窗口,返回值类型为VOid函数SetActionHandIerO:初始化贪吃蛇游戏参数,返回值类型为void函数SetDiSPIaySiZe():设置显示大小,返回值类型为VOid函数CIraWSCOre(intscore):绘制分数,返回值类型为VOid函数drawVertWa11():绘制垂直墙,返回值类型为Void函数drawHorzWa11():绘制水平墙,返回值类型为Void函数drawFood():初始化贪吃蛇的食物使其随机生成,返回值类型VOid函数drawBody(intx,inty):绘制蛇身,返回值类型为Void函数drawHead():绘制蛇头位置,返回值类型为VOid函数CSnakeView():析构函数函数OnSiZe():设置大小,返回值类型为Void函数OnCOnteXtMenU():设置菜单,返回值类型为VOid函数OnCreate():创建菜单函数,返回值类型为VOid函数OnDCStrOy():删除菜单函数,void函数OnTinIer(UINTnIDEvent):判断蛇是否死亡,void函数OnKeyDOWn():用函数来实现键盘消息的传递,返回值类型为VOid函数OnChangeLeVeI():等级设置,返回值类型为Void3. CMainFrame类:主窗口设置。数据成员:mWndStatusBar:表示状态栏m_wndToolBar:表示工具栏成员函数:函数CMainFrame():设置主窗口的函数函数PreCreateWindOW():重新创建窗口,返回值类型为BOoL函数adjustDisplaySizc():调整显示尺寸,返回值类型为VOid函数AssertValidO:判断是否有效,返回值类型为void函数OnSysCommand():程序命令的控制,返回值类型为void函数OnAPPEXit():游戏退出,返回值类型为Void函数OnCloSe():图形结束,返回值类型为VOid4. CChangeSPeedDlg类:移动速率控制。数据成员:m_spced的类型为int,表示改变蛇的速度。成员函数:函数CChangeSPeedDIg():改变蛇的运动方向,返回值类型为Void函数DoDataEXChange():记录改变的信息,返回值类型为Void,访问控制属性为保护类型函数OnlnitDialOg():初始化对话框,返回值类型为BoOL,访问控制属性为保护类型5. CSCOreBOardDIg类:得分信息控制。数据成员:m.ScoreBoardMessages:表示计分板分数成员函数:函数CSCoreBoardDIg(PParent:CWnd):得分管理,返回值类型为VOid函数DODataEXChange():记录分数改变,返回值类型为VOid,访问控制属性为保护类型2.3程序实现2.3.1源码分析/CSnakeGame类的成员函数的实现CSnakeGame:CSnakeGame(IGraPhiCe)UI*constpGO):IActionHandlerCpGO),m_xSize(15),m_ySize(15),m_xPos(m_xSize/2),m_yPos(m_ySize/2),m_xPosBody(m_xPos+1),m_yPosBody(m_yPos),m_curDir(left),m_score(12345),m_timerCount(0),m_mouseOpen(false),m_speed(5),m_xFood(-l),m_yFood(-1)srand(time(OL);pGO->setDisplaySize(m_xSize,m_ySize);m_xFood=rand()%m_xSize;m_yFood=rand()%m_ySize;析构法数CSnakeGame:-CSnakeGameO)蛇向左移动的函数,判断移动蛇头voidCSnakeGame:JeftMoveOif(m_curDir!=right)if(m_xPos>0)m_curDir=left;)蛇向右移动的法数,判断移动蛇头voidCSnakeGame:rightMove()if(m_curDir!=left)if(m_xPos<m_xSize-l)m_curDir=right;)蛇向上移动的法数,判断来移动蛇头voidCSnakeGame:upMove()if(m_curDir!=down)if(m_yPos<m_ySize-l)m_curDir=up;/蛇向下移动的函数,判断来移动蛇voidCSnakeGame:downMove()if(m_curDir!=up)if(m_yPos>0)m_curDir=down;/用键盘来控制晶的移动,并计算时间voidCSnakeGame:timeUp()if(+m_timerCount>=10*m_speed)/10*m_speed*5ms金头当前要移动的方向,根据移动方向改变蛇头坐标值switch(m_curDir)caseleft:if(m_xPos>0)m_xPos"m_xPosBody=m_xPos+1;m_yPosBody=m_yPos;break;caseup:if(m_yPos<m_ySize-l)m_yPos+;m_yPosBody=m_yPos-1;m_xPosBody=m_xPos;break;caseright:if(m_xPos<m_xSize-1)m_xPos+;m_xPosBody=m_xPos-1;m_yPosBody=m_yPos;break;casedown:if(m_yPos>0)m_yPos;m_yPosBody=m_yPos+1;m_xPosBody=m_xPosJbreak;/判断是否吃到食物,并计算分数if(m_xPos=m_xFood)&&(m_yPos=m_yFood)m_score+=100;m_xFood=rand()%m_xSize;m_yFood=rand()%m_ySize;m_museOpen=false;m-pGO->redraw();m_timerCount=0;elseif(m_timerCount=10/2*m_speed)m_mousepen=true;m-pGO->redraw();判断停止后函数voidCSnakeGame:exit()m_pGO->scoreBoard("ttHighestScoresn"1.JohnSnakettl2345678n"2.RobEpsontt98765n""nttGoodbye!");/画围墙voidCSnakeGame:draw()if(m_xFood>=0)&&(m_yFood>=0)m_pGO->drawFood(IGraphicOut:flower,m_xFood,m_yFood);if(m_mouseOpen)m_pGO->drawHead(m_curDir+10,m_xPos,m_yPos);elsem_pGO->drawHead(m_curDir,m_xPos,m_yPos);m_pGO->drawBody(m_xPosBody,m_yPosBody);m_pGO->drawScore(m_score);/只有演示,没有碰撞测试m-pGO->drawHorzWalI(3,5,2);m-pG0->drawVertWall(8,O,5);/改变品的运动速度voidCSnakeGame:xhangeSpeed(intspeed)m_speed=speed;/蛇质运动函数intCSnakeGame:getSpeed()returnm_speed;CSnakeVieW类的实现CSnakeView:CSnakeView():m_pDCMemDB(O),m_pBmpDB(0),IB-PActionHandler(O),m_numCellsX(lO),m_numCellsY(10),m_timerID(O)析构函反CSnakeView:-CSnakeView()if(m-pDCMemDB)deletem_pDCMemDB;if(m_pBmpDB)deletem_pBmpDB;if(m_pActionHandler)deletem_pActionHandler;/重新创建窗口BOOLCSnakeView:PreCreateWindow(CREATESTRUCT&cs)/通过这里修改窗口类returnCView:PreCreateWindow(Cs);voidCSnakeView:OnDraw(CDC*pDC)CSnakeDoc*pDoc=GetDocumentO;ASSERT_VALID(pDoc);m_pDC=pDC;CRectrect;GetClientRect(&rect);/绘制边界CBitmapbmpBrick;bmpBrick.LoadBitmap(IDB-BRICK);CBrushbrBrick;brBrick.CreatePatternBrush(<fcbmpBrick);CBrush*pBr01d=pDC->SelectObject(&brBrick);pDC->PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);pDC->SelectObject(pBrOld);/绘制面板内部CBitmapbmpCell;bmpCell.LoadBitmap(IDB_CELL);CBrushbrCell;brCel1.CreatePatternBrush(&bmpCel1);pBrOld=pDC->SelectObject(&brCell);pDC->PatBlt(rect.left+32,rect.top+32+32,rect.Width()-64,rect.Height()-64-32,PATCOPY);pDC->SelectObject(pBrOld);/绘制计分牌drawSprite(pDC,IDB_SC0REB0ARD,(int)(m_numCellsX-9)/2.0+1)*32,5);pDC->SetBkMode(TRANSPARENT);pDC->TextOut(int)(m_numCellsX-9)/2.0+2)*32,16,"Scores:");/绘制所有游戏组件if(m_pActionHandler)m_pActionHandler->draw();m_pDC=O;暂停游戏BOOLCSnakeView:OnPreparePrinting(CPrintInfo*plnfo)returnDoPreparePrinting(pInfb);开始游戏voidCSnakeView:OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*plnfo*/)为开始游戏做好准备,所以在开始进行游戏之前,游戏界面就已经显示完整。/退出游戏voidCSnakeViewOnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*plnfo*/)/结束后的清理)#ifdef_DEBUG判断是否有效voidCSnakeView:AssertValidOconstCView:AssertValidO;)初始化贪吃蛇游戏参数voidCSnakeView:OnInitialUpdate()CView:OnInitialUpdate();CClientDCdcClient(this);OnPrepareDC(&dcClient);m_pDCMemDB=newCDC;m_pDCMemDB->CreateCompatibleDC(&dcClient);m_pDCMemDB->SetMapMode(dcClient.GetMapMode();设置关小voidCSnakeView:OnSize(UINTnType,intex,intcy)CView:OnSize(nType,ex,cy);CRectrect;GetClientRect(&rect);/设计坐标/初始化设计坐标if(rect.right<=m_sizeDB.cx)&&(rect.bottom<=m_sizeDB.cy)return;if(rect.right>m_sizeDB.cx)m_sizeDB.cx=rect.right;if(rect.bottom>m_sizeDB.cy)m_sizeDB.cy=rect.bottom;CClientDCdcClient(this);OnPrepareDC(&dcClient);/依赖adjustScrollSizes()if(m_pBmpDB)deletem_pBmpDB;m_pBmpDB=newCBitmap;m_pBmpDB->CreateCompatibleBitmap(&dcClient,m_sizeDB.cx,m_sizeDB.cy);绘制金身voidCSnakeView:drawBody(intx,inty)if(m-pDC)drawSprite(m_pDC,IDB_BODY,(x+1)*32,(m-numCellsY-y+1)*32);初始化fruit=O,flower=1voidCSnakeView:drawFood(inttype,intx,inty)if(m-pDC)switch(type)casefruit:drawSprite(m_pDC,IDB_FRUIT,(x+1)*32,(m-numCellsY-y+1)*32);break;caseflower:drawSprite(m_pDC,IDB-FLOWER,(x+1)*32,(m-numCellsY-y+1)*32);break;/绘制水平墙voidCSnakeView:drawHorzWall(intxl,intx2,inty)intxlCoord=(x1+1)*32;intx2Coord=(x2+1)*32;intyCoord=(m_numCellsY-y+l)*32;CRectrect(x1Coord,yCoord,x2Coord+32,yCoord+32);if(m_pDC)CBitmapbmpBrick;bmpBrick.LoadBitmap(IDB_BRICK);CBrushbrBrick;brBrick.CreatePatternBrush(&bmpBrick);CBrush*pBrOld=m_pDC->SelectObject(&brBrick);m-pDC->PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);m-pDC->SelectObject(pBrOld);/绘制垂直皤voidCSnakeViewIidrawVertWall(intx,intyl,inty2)intxCoord=(x+1)*32;intylCoord=(mIUmCenSY-y1+1)*32;inty2Coord=(m_numCellsY-y2+l)*32;CRectrect(xCoord,y2Coord,xCoord+32,ylCoord+32);if(m_pDC)CBitmapbmpBrick;bmpBrick.LoadBitmap(IDB_BRICK);CBrushbrBrick;brBrick.CreatePatternBrush(&bmpBrick);CBrush*pBr01d=m_pDC->SelectObject(&brBrick);m-pDC->PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);m-pDC->SelectObject(pBrOld);绘制分数voidCSnakeView:drawScore(intscore)charScoreBuff100;if(m_pDC)wsprintf(scoreBuf,"%d,score);m_pDC->TextOut(int)(m_numCellsX-9)/2.0+2)*32+70,16,scoreBuf);/设置显示大小voidCSnakeView:setDisplaySize(intwidth,intheight)m_numCellsX-width;m_numCellsY-height;(CMainFrame*)AfxGetMainWnd()->adjustDisplaySize(width,height);voidCSnakeView:SetActionHandler(IActionHandler*pHandler)m_pActionHandler=pHandler;/施置菜单voidCSnakeView:OnContextMenu(CWnd*pWnd,CPointpoint)CMenumenu;menu.LoadMenu(IDR_MAINFRAME);

    注意事项

    本文(C语言程序设计课程设计贪吃蛇.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开