当前位置:文档之家› 课程设计贪吃蛇

课程设计贪吃蛇

课程设计报告课程名称:面向对象程序设计C++设计题目:贪吃蛇专业:计算机科学与技术姓名学号:20130516161指导教师:李晓虹2015 年 1 月 7 日一,系统需求分析一.引言1.编写目的:此需求分析说明书对《贪吃蛇游戏》软件做了全面细致的用户需求分析,明确所要开发的游戏软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。

本说明书的预期读者为客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。

2.背景随着科技的发展,现在电脑的功能已不仅仅是简单的聊聊天、收发短信了。

更多的电脑用户希望在工作、学习之余通过方便休闲娱乐。

因此,为了迎合众多用户的需求并适应现在电脑的规模开发出一套适合各阶层人士的具有很强的娱乐性和交互性的贪吃蛇小游戏。

虽然现在市面上存在着各种各样的游戏版本,可是贪吃蛇其市场还是相当大的。

因为它的特殊在于它能吸引人更深入,爱不释手.随着游戏速度不断加快,其刺激性也更强。

可以说该游戏的优势在于它的简单易行,不论是手机点按哦,电脑,还是小游戏机,都能很快顺利的运行。

对于在外忙碌的人,不可能花费大量时间在娱乐上,大型游戏是行不通的。

这样的小游戏刚好迎合了他们的需求。

3.定义需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有的条件或权能。

而且其很强的交互性及简单易行性,可以让人在很短时间内熟悉它的游戏规则,不论用户文化水平如何,都会很轻松的学会使用它。

5.开发人员熊青青二,总体设计1.目标在如今社会,人们的工作学习压力逐渐增大,生活节奏逐渐加快,大多数人没有足够的时间去休闲娱乐,放松自己。

这款小型的手机游戏,可以让我们随时随地都能享受游戏,。

让我们从繁重的日常生活中解脱出来。

游戏的主界面应该力求美观,爽心悦目,以提高玩家对游戏的兴趣。

游戏的控制模块应该做到易懂、易操作,以给玩家一个很好的游戏环境。

2.用户的特点由于本程序简单易操作,交互性好,对用户没什么特别要求。

一般用户经过几分钟练系都可以熟悉本游戏的规则。

3. 假定与约束开发周期14天4.游戏模块1. Java的一个贪吃蛇游戏软件,主要实现游戏的开始、暂停、退出等功能,分为:游戏主界面模块、游戏控制模块两个模块。

游戏主界面模块:主要包括游戏图形区域界面、游戏开始按钮、暂停按钮、退出按钮。

游戏控制模块:主要完成游戏的开始、暂停、退出等功能。

5.对性能的规定本游戏在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。

游戏主界面应该力求美观,赏心悦目。

游戏控制模块应做到易懂、易操作,而且准确率高,不易出错。

模块划分:5.1. 主控模块。

5.2. 动画音乐模块5.3. 画主界面模块5.4. 游戏过程模块5.5. 游戏结束处理模块5.6. 读取记录模块5.7. 成绩排序模块5.8. 写入文件模块5.9. 排行榜模块5.10. 退出6.设计的目的6.1 复习C++中学习过的基本知识6.2 将学习的C++知识得以系统化6.3 掌握C++中函数设计的方法和结构化设计的思想6.4 掌握规范的程序设计思路6.5 掌握规范的程序编码格式7.要求描述7.1设计要求(1)基本函数的实现(2)基本函数模块的实现7.2 版式的要求(1)设计面板清晰,结构明确(2)有相应的文字说明(3)有相应的注释7.3 报告要求1)模块化程序设计(2)必须上机调试和测试(3)程序设计的框图,流程图(4)原程序清单和执行结果8.贪吃蛇功能描述8.1 贪吃蛇的基本玩法:即可以用上、下、左、右键游戏区蛇的运动方向,使之向着有食物的方向运动,并吞吃食物使身体增长,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。

3.2 调节蛇的运动速度:即用户可以调节蛇的速度来选择不同的难度。

3.3 选择关卡功能:即游戏分不同的难度级别,用户可以选择不同的难度级别进行游戏。

3.4 游戏帮组:即用户可以查看游戏得分、查看英雄榜等。

三,详细设计3.1初始化为防止食物总是出现在一个位置上,要设置随机数发生器的种子数,产生真正的随机数。

由于还没有画出食物,并设置需要食物,并设置蛇活着。

初始时,蛇只有蛇头和1节蛇尾,设置这2节坐标。

设定蛇开始的爬行方向左右。

3.2 随机确定食物位置由于蛇吃到食物的判断是蛇头的坐标和食物的坐标相等,所以要确保食物出现的位置在10的倍数位置上。

先用两个带随机函数的表达式产生一个位于围墙内的x、y坐标,然后用两个while循环将两个坐标值调整到10的倍数上,这样就可以让蛇吃到。

3.3 循环确定蛇身的新坐标吃到物key=ESC 蛇死蛇撞墙蛇死按键判蛇的位置接受按键key 除蛇尾,增节延迟10秒吃后处理置蛇死标志窗蛇身,蛇死循环画蛇结束这里的难点是表示蛇的新位置并消除前一次的图形。

采用的方法是每次移动的时候从最后一节开始到第二节,将前一节的坐标值赋给后一节的坐标,移动后只要把最后一节用背景色擦出即可,因为新位置0到n-1节还是要出现在画面上的。

这里用一个for循环来确定蛇身的新坐标。

3.4吃到食物后的处理蛇吃到食物后,首先将食物擦除,即用背景色画出该食物,然后给蛇的节数加1,设置需要食物标志,是游戏成绩加10分,如果成绩达到50分的倍数,则给关数加1,并加快游戏速度。

3.5 有按键判断蛇的方向这是一个内嵌的嵌套的条件选择结构,根据安东上下左右键来设定蛇的移动方向。

其中1=向右,2=向左,3=向上,4=向下。

判断是还考虑相反的方向键无效,比如蛇正在向上爬行,按下一键方向是无效的。

四,系统调试调试与测试软件的目标就是发现并改正潜伏的错误。

一个程序,必须经过认真的调试和测试,才能尽量减少错误、保证程序满足功能、性能需求,达到最初的设计、使用要求,从而保证程序的开发质量。

详细设计完成后,就可以用C语言根据各个模块的算法来设计程序,每个模块都要设计成一个自定义函数。

几个模块可以放在一起构成一个原函数程序文件,也可以一个模块构成一个源程序文件。

原程序设计好后,输入到计算机中,并存储到磁盘上;然后对每个源程序文件都进行了独立编译和调试(具体代码可以参看程序清单);并针对不同的模块程序设计测试用例进行单元测试;最后,将几个分别开发的模块组装在一起,形成一个完整的程序,进行集成测试,从而发现并改正了程序程序中存在的一些潜藏的错误,并使程序的容错能力大大增强。

算法说明:蛇的活动区是由57×33个小方格组成,当这些小方格呈现深灰色时,便表示蛇身。

蛇是由n个相邻的方格组成,将这些方格的坐标依蛇头到蛇尾的次序放入到一个数组中便代表了蛇身。

当蛇在活动区中游动一格时,所对应的的数组操作为,将新的位置坐标插入到数组的头部,同时将数组中最后一个元素删除。

游戏使用四个方向键和A/W/S/D来控制蛇的前进方向,在OnKeyDown()消息处理函数中,根据不同的方向键设置了成员变量m_nDirect的值。

当在菜单中选择开始时,启动定时器,游戏开始。

在定时器消息处理函数中,根据m_nDirect的值判断出蛇的下一个位置。

如果没有超出边界或碰到自身,则蛇可以移动到一个新位置。

如果吃到了食物,则在CArray()中只插入而不删除最后一个元素,蛇身长度增加,否则弹出游戏结束对话框,框内显示所用时间和最终得分。

菜单栏的项目以实用性为主,另外每个按钮都设置有快捷键,分别为:F1-帮助;F2-开始游戏;F4-关闭窗口,退出游戏4.1蛇撞到墙预期结果:蛇运行时如果撞到墙壁,则游戏结束。

实际运效果:超出左右墙壁后程序结束,但超出上面墙壁后仍然运行,如图6-9所示。

错误分析:错误程序段在蛇运行中的条件判断语句中,其判断条件是:if(snake.x[0]<55|| snake.x[0]>595),即少了上、下两个方向的判断。

修改:在蛇的运行过程中添加两个逻辑表达式,判断蛇是否闯到上下的围墙。

代码:if(snake.x[0]<55|| snake.x[0]>595|| snake.y[0]<55|| snake.y[0]>45 5)修改后的程序运行结果与预期的结果一致。

4.2蛇头闯到蛇身预期的结果:当蛇得头部与蛇身相撞时,游戏应当结束。

实际运行效果:蛇头撞到蛇身时,程序并不终止。

错误分析:在蛇的运行判断的程序出错,其代码如下Fori=3;i<snake.node;i++) { if(snake.x[i]=snake.x[0]&&snake.y [i]=snake.y[0]) {snake.life=0;break;}}修改:将循环体中的snake.life=0改为snake.life=1;五,结果分析5.1游戏方面:(1)点击开始:程序运行后,会出来只有六节的蛇和一个灰色的食物。

主界面游戏结束七.结束语贪吃蛇游戏的编程练习思考数据结构:定义食物的坐标来控制它出现的位置,用一系列的函数时进行表示,比如用函数rectangle来画出矩形,用life变量的值表示蛇的生命,用direction变量的值表示蛇移动的方向等,还有用数组来存放蛇身各节的坐标,这些都让我们熟悉了对数组的操作,此外还熟悉了各种函数的应用。

贪吃蛇的设计有很多帮助,学习编写贪吃蛇的游戏对掌握C语言的知识有很大的帮助。

通过编程实践,还能拓展思路,让我们去寻找需要调用那些函数,怎样提高程序的质量等。

要写出好的程序,需要我们有扎实的基础,这样遇到一些基本算法的时候就会游刃有余了。

在编程时我们要有丰富的想象力,不要拘泥与固定的思维方式,遇到问题的时侯要多想几种解决问题的方案。

丰富的想象力是建立在丰富的知识基础上,所以我们要通过多个途径来帮助自己建立较丰富的知识结构。

在编程是我碰倒了很多的困难,这就需要我们要多与别人交流。

在编程的过程中,我也发现有良好的编程风格是十分重要的,至少在时间效率上就体现了这一点。

养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致,这些都是提高我们编程能力的要点。

在进行课程设计的过程中我们也学到了许多别的东西。

首先,我们学会了合作,要以别人的眼光看看问题,也许这样得到的会比各自得到的都要多;其次,我学会了请教,请教才能提高合作的效率;最后,我学会了奋斗,我相信,通过四年的学习,我们一定能写出更精彩的程序,将来会描绘出更精彩的人生。

附件:游戏截图及源代码#include "stdafx.h"#include "Snake.h"#include "MainFrm.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifIMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)//{{AFX_MSG_MAP(CMainFrame)// NOTE - the ClassWizard will add and remove mapping macros here.// DO NOT EDIT what you see in these blocks of generated code !//}}AFX_MSG_MAPEND_MESSAGE_MAP()//CMainFrame构造/析构函数CMainFrame::CMainFrame()//构造函数{// TODO: add member initialization code here}CMainFrame::~CMainFrame()//析构函数{}BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){if( !CFrameWnd::PreCreateWindow(cs) )return FALSE;// TODO: Modify the Window class or styles here by modifying// the CREATESTRUCT csreturn TRUE;}// CMainFrame 诊断#ifdef _DEBUGvoid CMainFrame::AssertValid() const{CFrameWnd::AssertValid();}void CMainFrame::Dump(CDumpContext& dc) const{CFrameWnd::Dump(dc);}#endif //_DEBUG// CMainFrame message handlers#if !defined(AFX_MAINFRM_H__1DBDFCE9_E146_4E5B_94B2_601CD8ACDE3F__INCLUDED_) #define AFX_MAINFRM_H__1DBDFCE9_E146_4E5B_94B2_601CD8ACDE3F__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000class CMainFrame : public CFrameWnd{protected: //serialization类CMainFrame();DECLARE_DYNCREATE(CMainFrame)// Attributespublic:// Operationspublic:// Overrides// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CMainFrame)virtual BOOL PreCreateWindow(CREATESTRUCT& cs);//}}AFX_VIRTUAL// Implementationpublic:virtual ~CMainFrame();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endif// Generated message map functionsprotected://{{AFX_MSG(CMainFrame)// NOTE - the ClassWizard will add and remove member functions here.// DO NOT EDIT what you see in these blocks of generated code!//}}AFX_MSGDECLARE_MESSAGE_MAP()};/////////////////////////////////////////////////////////////////////////// ////{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif// !defined(AFX_MAINFRM_H__1DBDFCE9_E146_4E5B_94B2_601CD8ACDE3F__INCLUDED_)//{{NO_DEPENDENCIES}}// Microsoft Developer Studio generated include file.// Used by Snake.rc//#define IDD_ABOUTBOX 100#define IDR_MAINFRAME 128#define IDR_SNAKETYPE 129#define IDD_highscore 130#define ID_GAME_START 32771#define ID_highscore 32773// Next default values for new objects//#ifdef APSTUDIO_INVOKED#ifndef APSTUDIO_READONLY_SYMBOLS#define _APS_3D_CONTROLS 1#define _APS_NEXT_RESOURCE_VALUE 131#define _APS_NEXT_COMMAND_VALUE 32774#define _APS_NEXT_CONTROL_VALUE 1004#define _APS_NEXT_SYMED_VALUE 101#endif#endif#include "stdafx.h"#include "Snake.h"#include "MainFrm.h"#include "SnakeDoc.h"#include "SnakeView.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifBEGIN_MESSAGE_MAP(CSnakeApp, CWinApp)//{{AFX_MSG_MAP(CSnakeApp)ON_COMMAND(ID_APP_ABOUT, OnAppAbout)// NOTE - the ClassWizard will add and remove mapping macros here.// DO NOT EDIT what you see in these blocks of generated code!//}}AFX_MSG_MAP// Standard file based document commandsON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)END_MESSAGE_MAP()CSnakeApp::CSnakeApp()//构造函数(空函数){// TODO: add construction code here,// Place all significant initialization in InitInstance}// The one and only CSnakeApp objectCSnakeApp theApp;// CSnakeApp initializationBOOL CSnakeApp::InitInstance(){AfxEnableControlContainer();// Standard initialization// If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need.#ifdef _AFXDLLEnable3dControls(); // 3D控制#elseEnable3dControlsStatic(); // 3D静态控制#endif// Change the registry key under which our settings are stored.// TODO: You should modify this string to be something appropriate // such as the name of your company or organization.SetRegistryKey(_T("Local AppWizard-Generated Applications"));LoadStdProfileSettings(); // Load standard INI file options (including MRU)// Register the application's document templates. Document templates// serve as the connection between documents, frame windows and views.CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CSnakeDoc),RUNTIME_CLASS(CMainFrame), // main SDI frame windowRUNTIME_CLASS(CSnakeView));AddDocTemplate(pDocTemplate);// Parse command line for standard shell commands, DDE, file openCCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);// Dispatch commands specified on the command lineif (!ProcessShellCommand(cmdInfo))return FALSE;// The one and only window has been initialized, so show and update it.m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();return TRUE;}/////////////////////////////////////////////////////////////////////////// //// CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog{public:CAboutDlg();// Dialog Data//{{AFX_DATA(CAboutDlg)enum { IDD = IDD_ABOUTBOX };//}}AFX_DATA// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support//}}AFX_VIRTUAL// Implementationprotected://{{AFX_MSG(CAboutDlg)// No message handlers//}}AFX_MSGDECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA_INIT}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CAboutDlg)//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)//{{AFX_MSG_MAP(CAboutDlg)// No message handlers//}}AFX_MSG_MAPEND_MESSAGE_MAP()// App command to run the dialogvoid CSnakeApp::OnAppAbout(){CAboutDlg aboutDlg;aboutDlg.DoModal();}// CSnakeApp message handlers# Microsoft Developer Studio Project File - Name="Snake" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00# ** DO NOT EDIT **# TARGTYPE "Win32 (x86) Application" 0x0101CFG=Snake - Win32 Debug!MESSAGE This is not a valid makefile. To build this project using NMAKE,!MESSAGE use the Export Makefile command and run!MESSAGE!MESSAGE NMAKE /f "Snake.mak".!MESSAGE!MESSAGE You can specify a configuration when running NMAKE!MESSAGE by defining the macro CFG on the command line. For example:!MESSAGE!MESSAGE NMAKE /f "Snake.mak" CFG="Snake - Win32 Debug"!MESSAGE!MESSAGE Possible choices for configuration are:!MESSAGE!MESSAGE "Snake - Win32 Release" (based on "Win32 (x86) Application")!MESSAGE "Snake - Win32 Debug" (based on "Win32 (x86) Application")!MESSAGE# Begin Project# PROP AllowPerConfigDependencies 0# PROP Scc_ProjName ""# PROP Scc_LocalPath ""CPP=cl.exeMTL=midl.exeRSC=rc.exe!IF "$(CFG)" == "Snake - Win32 Release"# PROP BASE Use_MFC 6# PROP BASE Use_Debug_Libraries 0# PROP BASE Output_Dir "Release"# PROP BASE Intermediate_Dir "Release"# PROP BASE Target_Dir ""# PROP Use_MFC 6# PROP Use_Debug_Libraries 0# PROP Output_Dir "Release"# PROP Intermediate_Dir "Release"# PROP Target_Dir ""# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32# ADD BASE RSC /l 0x804 /d "NDEBUG" /d "_AFXDLL"# ADD RSC /l 0x804 /d "NDEBUG" /d "_AFXDLL"BSC32=bscmake.exe# ADD BASE BSC32 /nologo# ADD BSC32 /nologoLINK32=link.exe# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386# ADD LINK32 /nologo /subsystem:windows /machine:I386!ELSEIF "$(CFG)" == "Snake - Win32 Debug"# PROP BASE Use_MFC 6# PROP BASE Use_Debug_Libraries 1# PROP BASE Output_Dir "Debug"# PROP BASE Intermediate_Dir "Debug"# PROP BASE Target_Dir ""# PROP Use_MFC 6# PROP Use_Debug_Libraries 1# PROP Output_Dir "Debug"# PROP Intermediate_Dir "Debug"# PROP Target_Dir ""# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D"_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32# ADD BASE RSC /l 0x804 /d "_DEBUG" /d "_AFXDLL"# ADD RSC /l 0x804 /d "_DEBUG" /d "_AFXDLL"BSC32=bscmake.exe# ADD BASE BSC32 /nologo# ADD BSC32 /nologoLINK32=link.exe# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386/pdbtype:sept# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept !ENDIF# Begin Target# Name "Snake - Win32 Release"# Name "Snake - Win32 Debug"# Begin Group "Source Files"# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"# Begin Source FileSOURCE=.\MainFrm.cpp# End Source File# Begin Source FileSOURCE=.\Snake.cpp# End Source File# Begin Source FileSOURCE=.\Snake.rc# End Source File# Begin Source FileSOURCE=.\SnakeDoc.cpp# End Source File# Begin Source FileSOURCE=.\SnakeView.cpp# End Source File# Begin Source FileSOURCE=.\StdAfx.cpp# ADD CPP /Yc"stdafx.h"# End Source File# End Group# Begin Group "Header Files"# PROP Default_Filter "h;hpp;hxx;hm;inl"# Begin Source FileSOURCE=.\MainFrm.h# End Source File# Begin Source FileSOURCE=.\Resource.h# End Source File# Begin Source FileSOURCE=.\Snake.h# End Source File# Begin Source FileSOURCE=.\SnakeDoc.h# End Source File# Begin Source FileSOURCE=.\SnakeView.h# End Source File# Begin Source FileSOURCE=.\StdAfx.h# End Source File# End Group# Begin Group "Resource Files"# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # Begin Source FileSOURCE=.\res\Snake.ico# End Source File# Begin Source FileSOURCE=.\res\Snake.rc2# End Source File# Begin Source FileSOURCE=.\res\SnakeDoc.ico# End Source File# End Group# Begin Source FileSOURCE=.\ReadMe.txt# End Source File# End Target# End ProjectMicrosoft Developer Studio Workspace File, Format Version 6.00# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!########################################################################### ####Project: "Snake"=.\Snake.dsp - Package Owner=<4>Package=<5>{{{}}}Package=<4>{{{}}}########################################################################### ####Global:Package=<5>{{{}}}Package=<3>{{{}}}#if !defined(AFX_SNAKE_H__FC722EA6_22CD_43DD_AD6C_A25ADF306F24__INCLUDED_) #define AFX_SNAKE_H__FC722EA6_22CD_43DD_AD6C_A25ADF306F24__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#ifndef __AFXWIN_H__#error include 'stdafx.h' before including this file for PCH#endif#include "resource.h" // main symbols// CSnakeApp:// See Snake.cpp for the implementation of this class//class CSnakeApp : public CWinApp{public:CSnakeApp();// Overrides// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CSnakeApp)public:virtual BOOL InitInstance();//}}AFX_VIRTUAL// Implementation//{{AFX_MSG(CSnakeApp)afx_msg void OnAppAbout();// NOTE - the ClassWizard will add and remove member functions here.// DO NOT EDIT what you see in these blocks of generated code !//}}AFX_MSGDECLARE_MESSAGE_MAP()};/////////////////////////////////////////////////////////////////////////// ////{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif// !defined(AFX_SNAKE_H__FC722EA6_22CD_43DD_AD6C_A25ADF306F24__INCLUDED_)<html><body><pre><h1>Build Log</h1><h3>--------------------Configuration: Snake - Win32 Release--------------------</h3><h3>Command Lines</h3>Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPE4.tmp" with contents[/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Release/Snake.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c"D:\Backup\我的文档\Downloads\51CTO下载-C++ MFC贪吃蛇源代码\snake\Snake\SnakeView.cpp"]Creating command line "cl.exe@C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPE4.tmp"Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPE5.tmp" with contents[/nologo /subsystem:windows /incremental:no /pdb:"Release/Snake.pdb"/machine:I386 /out:"Release/Snake.exe"".\Release\MainFrm.obj"".\Release\Snake.obj"".\Release\SnakeDoc.obj"".\Release\SnakeView.obj"".\Release\StdAfx.obj"".\Release\Snake.res"]Creating command line "link.exe@C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSPE5.tmp"<h3>Output Window</h3>Compiling...SnakeView.cppLinking...<h3>Results</h3>Snake.exe - 0 error(s), 0 warning(s)</pre></body></html>//Microsoft Developer Studio generated resource script.//#include "resource.h"#define APSTUDIO_READONLY_SYMBOLS/////////////////////////////////////////////////////////////////////////// // Generated from the TEXTINCLUDE 2 resource.//#include "afxres.h"/////////////////////////////////////////////////////////////////////////// //#undef APSTUDIO_READONLY_SYMBOLS/////////////////////////////////////////////////////////////////////////// //// Chinese (中国) resources#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)#ifdef _WIN32LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED#pragma code_page(936)#endif //_WIN32#ifdef APSTUDIO_INVOKED/////////////////////////////////////////////////////////////////////////// ////// TEXTINCLUDE//1 TEXTINCLUDE DISCARDABLEBEGIN"resource.h\0"END2 TEXTINCLUDE DISCARDABLEBEGIN"#include ""afxres.h""\r\n""\0"END3 TEXTINCLUDE DISCARDABLEBEGIN"#define _AFX_NO_SPLITTER_RESOURCES\r\n""#define _AFX_NO_OLE_RESOURCES\r\n""#define _AFX_NO_TRACKER_RESOURCES\r\n""#define _AFX_NO_PROPERTY_RESOURCES\r\n""\r\n""#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n""#ifdef _WIN32\r\n""LANGUAGE 4, 2\r\n""#pragma code_page(936)\r\n""#endif //_WIN32\r\n""#include ""res\\Snake.rc2"" // non-Microsoft Visual C++ editedresources\r\n""#include ""l.chs\\afxres.rc"" // Standard components\r\n""#endif\r\n""\0"END#endif // APSTUDIO_INVOKED/////////////////////////////////////////////////////////////////////////// ////// Icon//// Icon with lowest ID value placed first to ensure application icon// remains consistent on all systems.IDR_MAINFRAME ICON DISCARDABLE "res\\Snake.ico"IDR_SNAKETYPE ICON DISCARDABLE "res\\SnakeDoc.ico"/////////////////////////////////////////////////////////////////////////// ////// Menu//IDR_MAINFRAME MENU PRELOAD DISCARDABLEBEGINPOPUP "游戏(&G)"BEGINMENUITEM "开始 F2", ID_GAME_STARTMENUITEM SEPARATORMENUITEM "退出 F4", ID_APP_EXITENDPOPUP "帮助(&H)"BEGINMENUITEM "关于 Snake(&A)...", ID_APP_ABOUTENDEND/////////////////////////////////////////////////////////////////////////// ////// Accelerator//IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PUREBEGINVK_F1, ID_APP_ABOUT, VIRTKEY, NOINVERTVK_F2, ID_GAME_START, VIRTKEY, NOINVERTVK_F4, ID_APP_EXIT, VIRTKEY, NOINVERTEND///////////////////////////////////////////////////////////////////////////////// Dialog//IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 212, 114STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "关于 Snake"FONT 9, "宋体"BEGINDEFPUSHBUTTON "确定",IDOK,78,91,50,14,WS_GROUPLTEXT "制作:20130516161熊青青 \n指导老师:李晓虹\n联系作者:834598173@\n\n开局:F2 关闭:F4\n上下左右既可以用方向键也可以用W/S/A/D",IDC_STATIC,20,28,165,57GROUPBOX "Gary's贪吃蛇2008",IDC_STATIC,8,13,193,97,BS_CENTER END#ifndef _MAC///////////////////////////////////////////////////////////////////////////////// Version//VS_VERSION_INFO VERSIONINFOFILEVERSION 1,0,0,1PRODUCTVERSION 1,0,0,1FILEFLAGSMASK 0x3fL#ifdef _DEBUGFILEFLAGS 0x1L#elseFILEFLAGS 0x0L#endifFILEOS 0x4LFILETYPE 0x1LFILESUBTYPE 0x0LBEGINBLOCK "StringFileInfo"BEGINBLOCK "080404b0"BEGINVALUE "Comments", "\0"VALUE "CompanyName", "\0"VALUE "FileDescription", "Snake Microsoft 基础类应用程序\0"VALUE "FileVersion", "1, 0, 0, 1\0"VALUE "InternalName", "Snake\0"VALUE "LegalCopyright", "版权所有 (C) 2007\0"VALUE "LegalTrademarks", "\0"VALUE "OriginalFilename", "Snake.EXE\0"VALUE "PrivateBuild", "\0"VALUE "ProductName", "Snake 应用程序\0"VALUE "ProductVersion", "1, 0, 0, 1\0"VALUE "SpecialBuild", "\0"ENDENDBLOCK "VarFileInfo"BEGINVALUE "Translation", 0x804, 1200ENDEND#endif // !_MAC/////////////////////////////////////////////////////////////////////////// ////// DESIGNINFO//#ifdef APSTUDIO_INVOKEDGUIDELINES DESIGNINFO DISCARDABLEBEGINIDD_ABOUTBOX, DIALOGBEGINLEFTMARGIN, 7RIGHTMARGIN, 205TOPMARGIN, 7BOTTOMMARGIN, 107ENDEND#endif // APSTUDIO_INVOKED/////////////////////////////////////////////////////////////////////////// ////// String Table//STRINGTABLE PRELOAD DISCARDABLEBEGINIDR_MAINFRAME "Snake -\n Gary's贪吃蛇2008\n\nSnake.Document\nSnake Document"ENDSTRINGTABLE PRELOAD DISCARDABLEBEGINAFX_IDS_APP_TITLE "Snake"AFX_IDS_IDLEMESSAGE "就绪"ENDSTRINGTABLE DISCARDABLEBEGINID_INDICATOR_EXT "扩展名"ID_INDICATOR_CAPS "大写"ID_INDICATOR_NUM "数字"ID_INDICATOR_SCRL "滚动"ID_INDICATOR_OVR "改写"ID_INDICATOR_REC "记录"ENDSTRINGTABLE DISCARDABLEBEGINID_FILE_NEW "建立新文档\n新建"ID_FILE_OPEN "打开一个现有文档\n打开"ID_FILE_CLOSE "关闭活动文档\n关闭"ID_FILE_SAVE "保存活动文档\n保存"ID_FILE_SAVE_AS "将活动文档以一个新文件名保存\n另存为"ENDSTRINGTABLE DISCARDABLEBEGINID_APP_ABOUT "显示程序信息,版本号和版权\n关于"ID_APP_EXIT "退出应用程序;提示保存文档\n退出"ENDSTRINGTABLE DISCARDABLEBEGINID_FILE_MRU_FILE1 "打开该文档"ID_FILE_MRU_FILE2 "打开该文档"ID_FILE_MRU_FILE3 "打开该文档"ID_FILE_MRU_FILE4 "打开该文档"ID_FILE_MRU_FILE5 "打开该文档"ID_FILE_MRU_FILE6 "打开该文档"ID_FILE_MRU_FILE7 "打开该文档"ID_FILE_MRU_FILE8 "打开该文档"ID_FILE_MRU_FILE9 "打开该文档"ID_FILE_MRU_FILE10 "打开该文档"ID_FILE_MRU_FILE11 "打开该文档"ID_FILE_MRU_FILE12 "打开该文档"ID_FILE_MRU_FILE13 "打开该文档"ID_FILE_MRU_FILE14 "打开该文档"ID_FILE_MRU_FILE15 "打开该文档"ID_FILE_MRU_FILE16 "打开该文档"ENDSTRINGTABLE DISCARDABLEBEGINID_NEXT_PANE "切换到下一个窗格\n下一窗格"ID_PREV_PANE "切换回前一个窗格\n前一窗格"ENDSTRINGTABLE DISCARDABLEBEGINID_WINDOW_SPLIT "将活动的窗口分隔成窗格\n分隔"ENDSTRINGTABLE DISCARDABLEBEGINID_EDIT_CLEAR "删除被选对象\n删除"ID_EDIT_CLEAR_ALL "全部删除\n全部删除"ID_EDIT_COPY "复制被选对象并将其置于剪贴板上\n复制" ID_EDIT_CUT "剪切被选对象并将其置于剪贴板上\n剪切" ID_EDIT_FIND "查找指定的正文\n查找"ID_EDIT_PASTE "插入剪贴板内容\n粘贴"ID_EDIT_REPEAT "重复上一步操作\n重复"ID_EDIT_REPLACE "用不同的正文替换指定的正文\n替换"ID_EDIT_SELECT_ALL "选择整个文档\n选择全部"ID_EDIT_UNDO "撤消最后一步操作\n撤消"ID_EDIT_REDO "重新执行先前已撤消的操作\n重新执行" ENDSTRINGTABLE DISCARDABLEBEGINAFX_IDS_SCSIZE "改变窗口大小"AFX_IDS_SCMOVE "改变窗口位置"AFX_IDS_SCMINIMIZE "将窗口缩小成图标"AFX_IDS_SCMAXIMIZE "把窗口放大到最大尺寸"AFX_IDS_SCNEXTWINDOW "切换到下一个文档窗口"AFX_IDS_SCPREVWINDOW "切换到先前的文档窗口"AFX_IDS_SCCLOSE "关闭活动的窗口并提示保存所有文档"ENDSTRINGTABLE DISCARDABLEBEGINAFX_IDS_SCRESTORE "把窗口恢复到正常大小"AFX_IDS_SCTASKLIST "激活任务表"END#endif // Chinese (中国) resources/////////////////////////////////////////////////////////////////////////// //#ifndef APSTUDIO_INVOKED/////////////////////////////////////////////////////////////////////////// ////// Generated from the TEXTINCLUDE 3 resource.//#define _AFX_NO_SPLITTER_RESOURCES#define _AFX_NO_OLE_RESOURCES#define _AFX_NO_TRACKER_RESOURCES#define _AFX_NO_PROPERTY_RESOURCES#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)#ifdef _WIN32LANGUAGE 4, 2#pragma code_page(936)#endif //_WIN32#include "res\Snake.rc2" // non-Microsoft Visual C++ edited resources#include "l.chs\afxres.rc" // Standard components#endif#include "stdafx.h"#include "Snake.h"#include "SnakeDoc.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif// CSnakeDocIMPLEMENT_DYNCREATE(CSnakeDoc, CDocument)。

相关主题