贪吃蛇设计报告

合集下载

贪吃蛇综合设计报告

贪吃蛇综合设计报告

《高级语言程序设计》综合实验报告第一小组:贪吃蛇游戏一、实验环境操作系统:Windows 10编程环境:codeblocks二、实验内容与完成情况(主要介绍项目总体功能分析与说明)功能1♦功能1的文字描述移动控制台光标坐标♦功能1实现的流程图♦功能1代码功能2♦功能2的文字描述改变蛇的移动方向♦功能2实现的流程图功能2代码功能3功能3的文字描述判断蛇是否吃到食物,是,则生成新食物的坐标,得分、等级、速度和蛇的长度增加;否,则保留原食物坐标。

功能3实现的流程图功能3代码功能4♦功能4的文字描述判断蛇是否存活♦功能4实现的流程图功能4代码功能5♦功能5的文字描述显示游戏图像、得分和等级。

♦功能5代码功能6♦功能6的文字描述运行调用游戏相关的函数,储存最高分、打破记录的人和分数、进入排行榜的人数(打破前一个最高分记录才能进入排行榜)。

♦功能6实现的流程图功能6的代码功能7♦功能7的文字描述调用功能6的函数,死亡后可选择重新开始或退出游戏输出排行榜。

♦功能7实现的流程图功能7的代码功能8♦功能8的文字描述读取储存了排行榜信息的文件,并赋值给姓名和得分变量char name1[10]、int score1,在控制台界面上输出排行榜♦功能8的代码三、功能测试1、游戏开始界面测试结果:用户可以输入自己喜欢的英文名字。

输入完成后按回车键可以看到游戏的操作指南。

2、蛇的移动、食物、分数记录测试结果:游戏开始,蛇头“@”和食物“*”出现,可以用“WSAD”来控制蛇上下左右移动,成功吃到食物蛇身变长并且每吃到一个食物右侧记录的等级和得分会增加一点。

3、蛇的死亡,最高纪录和排行榜显示测试结果:蛇死亡后界面自动弹出“Game over”并且显示出玩家在上一局的分数;接着玩家可以选择“y”或“n”来决定是否重玩游戏,不重玩游戏则输出排行榜并按任意键结束。

四、项目总结(其中的错误和解决方案)1闪屏。

游戏开始后界面上的所有字符都在闪烁,并且频率越来越快。

原创c语言贪吃蛇课程设计报告

原创c语言贪吃蛇课程设计报告

原创C语言贪吃蛇课程设计报告1. 引言贪吃蛇游戏是一款经典的电子游戏,它可以帮助玩家提高反应能力和思维敏捷性。

本文档旨在介绍一个基于C语言的贪吃蛇课程设计项目。

通过这个项目,我们可以学习C语言的基本语法、算法和程序设计方法。

2. 项目概述2.1 项目背景贪吃蛇游戏是一款非常受欢迎的经典游戏,现在几乎在所有平台都有相应的版本。

它的原理很简单:玩家控制一条蛇在屏幕上移动,蛇吃掉食物后身体长度增加,游戏结束条件为蛇撞到屏幕边缘或自己的身体。

通过这个项目的设计与实现,我们可以提高自己的编程能力,并加深对C语言的理解。

2.2 项目目标本项目的目标是设计并实现一个具有基本功能的贪吃蛇游戏。

主要功能包括:•蛇的移动控制:玩家可以通过键盘控制蛇的移动方向。

•食物的生成:在屏幕上随机生成食物,蛇吃掉食物后身体长度增加。

•碰撞检测:判断蛇是否撞到屏幕边缘或自己的身体,游戏在此情况下结束。

•分数统计:记录玩家的得分,并在游戏结束时显示最终得分。

3. 设计思路3.1 游戏界面设计游戏界面需要在控制台中实现,使用C语言的标准输入输出函数可以很方便地实现界面的绘制和更新。

我们可以使用二维数组来表示屏幕,每个元素代表一个方格,蛇和食物在屏幕上的位置可以通过修改二维数组的值来实现。

3.2 蛇的移动控制蛇的移动控制是游戏的核心功能之一。

我们可以使用一个链表数据结构来表示蛇的身体,每个节点代表一个蛇的身体节。

通过不断更新链表节点的位置,实现蛇的移动。

玩家可以通过键盘输入来控制蛇的移动方向。

3.3 食物的生成食物的生成是游戏的另一个重要功能。

我们可以随机生成一个二维数组的坐标,在该坐标上放置食物。

在蛇吃掉食物后,就可以在链表的末尾添加一个新的节点,使蛇的长度增加。

3.4 碰撞检测碰撞检测是判断蛇是否与屏幕边缘或自身的身体相撞的过程。

我们需要判断蛇的头节点是否与屏幕边缘或其他身体节点的位置重叠,如果重叠则游戏结束。

3.5 分数统计分数统计是记录玩家得分的功能。

c语言贪吃蛇课程设计报告

c语言贪吃蛇课程设计报告

C语言贪吃蛇课程设计报告摘要本报告介绍了一个基于C语言的贪吃蛇游戏的课程设计项目。

报告首先介绍了贪吃蛇游戏的背景和目标,然后详细说明了设计和实现过程中使用的数据结构、算法和关键技术。

最后,报告讨论了项目的测试结果和改进思路。

1. 引言贪吃蛇是一款经典的电子游戏,它的目标是控制一条蛇在有限空间内移动,吃掉食物并尽可能长大。

贪吃蛇游戏不仅有趣,而且对于初学者来说是一个很好的训练编程技巧的项目。

因此,在本课程设计中选择了贪吃蛇游戏作为项目的主题。

2. 设计目标本课程设计项目的主要目标是设计并实现一个使用C语言开发的贪吃蛇游戏。

具体目标包括: - 实现一个可用键盘控制的贪吃蛇游戏界面; - 设计合适的数据结构来表示贪吃蛇的状态; - 实现贪吃蛇的移动、吃食物、增长等基本功能; - 设计和实现合适的算法来检测和处理蛇与边界、蛇与自身以及蛇与食物的碰撞。

3. 设计与实现为了实现贪吃蛇游戏,我们使用了C语言作为开发语言,并采用了以下关键技术和数据结构:3.1 数据结构为了表示贪吃蛇的状态,我们设计了以下数据结构: - Point结构体用于表示二维坐标点,包括x和y坐标; - SnakeNode结构体用于表示贪吃蛇的每个节点,包括一个Point和指向下一个节点的指针; - Snake结构体用于表示整条贪吃蛇,包括一个指向头节点的指针和当前蛇的长度。

3.2 算法和关键技术为了实现贪吃蛇的移动、吃食物、碰撞等功能,我们采用了以下算法和关键技术: - 使用循环链表数据结构来表示贪吃蛇,使得贪吃蛇的移动和增长操作更高效;- 使用键盘输入来控制贪吃蛇的移动方向; - 使用随机数生成食物的位置; - 使用递归算法检测贪吃蛇与边界、自身以及食物之间的碰撞。

4. 测试与结果分析为了测试贪吃蛇游戏的功能和性能,我们设计了多个测试用例并进行了测试。

测试的结果表明我们的游戏实现了预期的功能,并且在性能方面表现良好。

然而,我们也发现了一些问题和改进的空间: - 贪吃蛇的移动速度过快,导致游戏难度较高; - 游戏界面设计简单,缺乏可玩性。

基于Python的贪吃蛇游戏设计开题报告

基于Python的贪吃蛇游戏设计开题报告

基于Python的贪吃蛇游戏设计开题报告1. 引言贪吃蛇游戏是一款经典的休闲游戏,其简单的玩法和上瘾的游戏体验深受玩家喜爱。

本文将介绍一种基于Python编程语言的贪吃蛇游戏设计方案,并讨论其实现方式和预期效果。

2. 设计目标本次贪吃蛇游戏的设计目标是实现一个具有良好用户体验和富有趣味性的游戏。

具体目标如下:•设计一个简单直观的用户界面,使用户能够轻松上手并快速掌握游戏规则。

•实现一个具有挑战性的游戏难度,使玩家能够有持续的游戏动力和挑战性。

•采用合适的游戏算法和逻辑,确保贪吃蛇的移动和食物的生成均符合预期规则。

•提供合理的游戏得分机制,使玩家能够根据游戏表现进行评估和改进。

3. 设计方案3.1 游戏界面本游戏将采用Python的GUI库,如Tkinter或PyQt等,来实现游戏界面的设计。

界面应包含以下元素:•游戏区域:用于显示贪吃蛇、食物和其他游戏元素的画布。

•分数计数器:用于显示玩家的得分情况。

•游戏控制按钮:包括开始、暂停和重新开始按钮,以实现游戏的控制功能。

3.2 游戏逻辑游戏的逻辑主要包括贪吃蛇的移动、食物的生成与消失、得分情况的判定等。

具体逻辑如下:•贪吃蛇移动:根据玩家的操作,贪吃蛇可以通过键盘输入上下左右方向键来改变移动方向。

每次移动后,贪吃蛇的身体会跟着头部一起移动,并且需要判断是否吃到食物或碰到边界或自身身体。

•食物生成与消失:游戏开始时,在游戏区域内随机生成一个食物,当贪吃蛇吃到食物时,贪吃蛇的身体增加一段,并且生成一个新的食物。

当贪吃蛇吃到食物后,分数计数器会增加相应的得分。

•得分情况判定:根据玩家的游戏表现,通过判断贪吃蛇吃到的食物数量来计算得分。

同时,通过判断贪吃蛇是否撞击到边界或自身身体来判断游戏胜负。

3.3 游戏算法为了实现贪吃蛇游戏的逻辑,我们将使用以下算法:•贪吃蛇移动算法:根据键盘输入的方向键判断贪吃蛇的运动方向,并根据当前的运动方向和移动速度,更新贪吃蛇的位置。

设计贪吃蛇实验报告

设计贪吃蛇实验报告

一、实验目的1. 掌握游戏设计的基本流程和原则。

2. 学会使用Unity游戏引擎进行游戏开发。

3. 提高编程能力和逻辑思维能力。

4. 实现贪吃蛇游戏,并优化游戏性能。

二、实验环境1. 操作系统:Windows 102. 开发工具:Unity 2019.4.10f13. 编程语言:C#三、实验内容1. 游戏设计2. 场景搭建3. 贪吃蛇游戏逻辑实现4. 游戏优化四、实验步骤1. 游戏设计(1)确定游戏主题:贪吃蛇(2)游戏规则:玩家控制蛇头,通过移动蛇头吃到食物,蛇的长度逐渐增加。

同时,蛇头不能撞到墙壁或自己的身体,否则游戏结束。

(3)游戏界面:包括游戏主界面、游戏场景、得分显示、游戏结束界面等。

2. 场景搭建(1)创建游戏场景:使用Unity编辑器创建一个3D场景,命名为“贪吃蛇场景”。

(2)添加墙壁:使用Unity编辑器中的Cube对象创建墙壁,设置墙壁的位置和大小,使墙壁围成一个封闭的空间。

(3)添加食物:使用Unity编辑器中的Sphere对象创建食物,设置食物的位置和大小。

3. 贪吃蛇游戏逻辑实现(1)创建蛇头和蛇身:使用Unity编辑器中的Cube对象创建蛇头和蛇身,设置蛇头和蛇身的位置和大小。

(2)控制蛇头移动:编写C#脚本,实现蛇头在四个方向上的移动。

(3)蛇头吃到食物:当蛇头与食物接触时,蛇的长度增加,食物消失。

(4)蛇头撞到墙壁或自身:当蛇头与墙壁或自身接触时,游戏结束。

4. 游戏优化(1)提高游戏帧率:通过优化代码和减少资源消耗,提高游戏帧率。

(2)优化蛇身移动:在蛇身移动时,减少不必要的计算,提高游戏性能。

五、实验结果与分析1. 实验结果通过以上步骤,成功实现了一个简单的贪吃蛇游戏。

游戏界面简洁,操作方便,符合游戏设计原则。

2. 实验分析(1)游戏设计方面:游戏规则简单易懂,游戏画面简洁,符合玩家需求。

(2)场景搭建方面:墙壁和食物的布局合理,有利于游戏进行。

(3)游戏逻辑实现方面:蛇头移动、吃到食物、撞墙等逻辑实现正确,游戏运行稳定。

《贪吃蛇游戏教学规划》报告

《贪吃蛇游戏教学规划》报告

贪吃蛇游戏程序设计一、课程设计任务贪吃蛇小游戏程序设计二、设计要求通过游戏程序设计,提高编程兴趣与编程思路,巩固C语言中所学的知识,合理的运用资料,实现理论与实际相结合。

(1).收集资料,分析课题,分解问题,形成总体设计思路;(2).对于设计中用到的关键函数,要学会通过查资料,弄懂其用法,要联系问题进行具体介绍;(3).上机调试,查错,逐步分析不能正常运行的原因,确保所设计的程序正确,并且能正常运行;(4).完成课程设计报告,并进行答辩三、需求分析3.1、程序功能贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。

3.2、设计思想程序关键在于表示蛇的图形及蛇的移动。

用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用俩节表示。

移动时必须从蛇头开始,所以蛇不能向相反的方向移动,如果不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体,所以按下有效方向键后,先确定蛇头的位置,而后蛇的身体随蛇头移动,图形的实现是从蛇头新位置开始画出蛇,这时,由于未清屏的原因,原来的蛇的位置和新蛇的位置差一个单位,所以看起来蛇多一节身体,所以将蛇的最后一节用背景色覆盖。

食物的出现与消失也是画矩形块和覆盖矩形块。

为了便于理解,定义两个结构体:食物与蛇。

3.3、流程图四、设计的具体实现(1)函数定义函数定义是对各个基础函数的定义,并且设置需要运用的信息,便于调用#define N 200#define M 200#include"graphics.h"#include<stdlib.h>#include<stdio.h>#include<string.h>#include<iostream.h>#include<dos.h>#include<conio.h>#include <windows.h>#define LEFT 97//A#define RIGHT 100//D#define DOWN 115//S#define UP 119//W#define Esc 0x011bint i,key;int score=0;int gamespeed=250;//游戏速度可根据实际情况自行调整struct Food{int x;//食物的横坐标int y;//食物的纵坐标int yes;//判断是否要出现食物的变量}food;//食物的结构体struct Snake{int x[M];int y[M];int node;//蛇的节数int direction;//蛇的移动方向int life;//蛇的生命,0表示活着,1表示死亡}snake;void Init();//图形驱动void Close();//图形结束void DrawK();//开始画面void GamePlay();//玩游戏的具体过程void GameOver();//游戏结束void PrScore();//输出成绩(2)主函数main( )主函数是程序的主流程,首先定义使用到的常数、全局变量及函数原型说明,然后初始化图形系统,调用函数DrawK()画出开始画面,调用函数GamePlay(),即玩游戏的具体过程,游戏结束后调用Close()关闭图形系统,结束程序void main()//主函数{Init();//图形驱动DrawK();//开始画面GamePlay();//玩游戏的具体过程Close();//图形结束}void Init()//图形驱动{int gd=DETECT,gm;initgraph(&gd,&gm," ");/*此处为turboc的路径,读者可以根据自己的电脑而改*/ cleardevice();}(3)画界面函数DrawK( )主界面是一个封闭的围墙,用两个循环语句分别在水平和垂直方向输出连续的宽度和高度均的矩形方块,表示围墙,为了醒目,设置为白色。

C语言课程设计报告——贪吃蛇源程序

C 语言课程设计(小游戏贪吃蛇得程序设计报告)设计人:班级:201年月号目录一:概述1:研究背景及意义2:设计得任务与需要知识点3:具体完成设计内容二:需求分析1:功能需求2:操作方法三:总体设计1:模块划分2:数据结构设计四:详细设计1:主空摸块设计2:绘制游戏界面3:游戏得具体过程4:游戏得结束处理5:显示排行榜信息模块五:程序得调试与测试1:动画与音乐同步2:蛇得运行3:终止程序六:结论七::结束语八:程序清单九:参考文献一. 概述本课程设计以软件工程方法为指导,采用了结构化,模块化得程序设计方法,以C语言技术为基础,使用TurboC++3、0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统得实现与测试。

1、1 研究得背景及意义随着社会得发展,人们生活得节奏日益加快,越来越多得人加入了全球化得世界。

人们不再拘泥与一小块天地,加班,出差成了现代人不可避免得公务。

而此时一款可以随时随地娱乐得游戏成为了人们得需要。

此次课程设计完成得贪吃蛇小游戏,正就是为了满足上述需求而设计出来得。

贪吃蛇游戏虽小,却设计诸多得知识点。

通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程得与那个发,技术与工具开发软件得过程,进一步掌握结构化,模块化得程序设计方法与步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构得使用方法,掌握图形,声音,随机数等多种库函数得使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程得学习与将来实际软件开发打下坚实得基础。

1、2设计得任务与需要得知识点1、2、1 课程设计主要完成得任务1)、通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计得思想,培养解决实际问题得能力。

2)有同步播放动画,声音效果。

3)设计好数组元素与蛇,食物得对应关系。

贪吃蛇课程设计python报告

贪吃蛇课程设计python报告一、教学目标本课程旨在通过学习Python编程语言实现一个贪吃蛇游戏,让学生掌握以下知识目标:1.理解Python的基本语法和数据类型。

2.学会使用Python进行流程控制和函数定义。

3.理解面向对象编程的基本概念。

4.能够独立编写简单的Python程序。

5.能够利用Python实现基本的贪吃蛇游戏。

情感态度价值观目标:1.培养学生对编程的兴趣,提高学生的信息素养。

2.培养学生解决问题的能力,提高学生的创新意识。

二、教学内容根据课程目标,我们选择Python作为编程语言,以贪吃蛇游戏为例,让学生在实践中掌握编程知识和技能。

具体的教学大纲如下:1.第一章:Python基础。

学习Python的基本语法、数据类型和变量。

2.第二章:流程控制。

学习条件语句、循环语句和函数定义。

3.第三章:面向对象编程。

学习类和对象的概念,以及如何定义和调用方法。

4.第四章:贪吃蛇游戏实现。

利用所学知识编写贪吃蛇游戏的代码,并进行调试和优化。

三、教学方法为了激发学生的学习兴趣和主动性,我们采用以下教学方法:1.讲授法:讲解Python的基本语法、数据类型和流程控制知识。

2.讨论法:学生讨论面向对象编程的概念和实现方法。

3.案例分析法:通过分析贪吃蛇游戏的代码,让学生理解编程思路。

4.实验法:让学生动手编写和调试贪吃蛇游戏,提高实际操作能力。

四、教学资源为了支持教学内容和教学方法的实施,我们准备以下教学资源:1.教材:《Python编程:从入门到实践》2.参考书:《Python核心编程》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络环境通过以上教学资源,学生可以更好地学习Python编程,并在实践中掌握贪吃蛇游戏的开发技能。

五、教学评估本课程的教学评估将采取多元化方式进行,以全面、客观、公正地评估学生的学习成果。

评估方式包括:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。

贪吃蛇课程设计报告

成都信息工程学院课程设计报告贪吃蛇游戏设计贪吃蛇游戏设计摘要本设计主要围绕贪吃蛇游戏展开。

众所周知,贪吃蛇游戏一直以来是比较流行的。

传统的贪吃蛇游戏功能比较少,对蛇的控制仅限于向左转和向右转,而现在的贪吃蛇游戏已经发展的相当好;具有更多的功能和友好的界面。

例如,最近流行的免费的3D版的贪吃蛇游戏,界面相当的美观,有很强的立体效果,真实感更强,食物也为立体的且颜色绚丽。

在3D版贪吃蛇游戏里面,墙壁是真实的墙壁,障碍物比较多,如树、土丘等。

此外,其功能更多更强,可以选择难度。

不过,总而言之,3D版与传统的贪吃蛇游戏有共性,即娱乐性与益智性。

这些也是贪吃蛇游戏的优点。

因我们水平有限,只能设计简单的贪吃蛇游戏。

不过,在功能上,比传统贪吃蛇游戏更丰富。

操作起来,显得更为灵活。

界面的颜色随机变换,不易使眼睛疲劳。

关键词:贪吃蛇小游戏简单灵活颜色多变目录论文总页数:12页第一章课题介绍 11.1 课题背景 11.2 关于编译软件 11.3 关于兼容性 1第二章课题分析 12.1 贪吃蛇游戏功能分析 12.2 游戏界面分析 22.3游戏思路分析 2第三章设计的具体实现 23.1 系统组成模块结构及功能 23.1.1 程序结构 33.1.2 程序流程及效果 33.2 类的定义以及变量、函数的声明 5 3.2.1 类的定义、函数的声明 53.2.2 变量声明 63.3 主要功能实现代码 73.3.1 初始化食物及随机生成食物 7 3.3.2 蛇的移动 73.3.2 判断是否撞墙或身体 8第四章问题解决及运行截图 9结论 12参考文献 12第一章课题介绍1.1 课题背景贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将我们自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我们,它的制作方法对于以前的我们而言都是很神秘的。

我们希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。

虽然我们的编程能力不是很强,但是我们有信心,在这次学习中将从实践和实际的项目中提高自己的编程能力。

MFC课程设计报告-贪吃蛇

MFC课程设计报告MFC实现贪食蛇小游戏1.需求分析,系统功能贪吃蛇游戏需求分析贪吃蛇游戏作为一款经典小游戏,版本多样,娱乐性也很高,适合在闲暇时放松心神。

并且可在多个平台上实现,程序简单易懂,非常适合MFC初学者学习制作。

贪吃蛇游戏功能介绍一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个方向键控制蛇向上接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体游戏结束。

并且可以在游戏开始前自由选择游戏难度,游戏过程中可暂停游戏,并有积分系统,且积分每满一定值,蛇的运行速度会逐步增加。

2. 分工情况为在设计过程中实现小组成员能力最大化,进行了以下分工:1、张施展:负责前期系统需求分析,系统结构设计,图标设计,界面美化调整工作,以及课程设计报告的撰写。

2、张清扬:负责主要程序的编写工作,菜单的设计及代码编写工作。

3、资料收集,程序调试共同进行。

3. 程序及系统结构设计贪吃蛇程序设计思路1、方案讨论贪吃蛇游戏作为一款经典的休闲类小游戏,深受同学喜爱,因此我们将贪吃蛇作为此次MFC课程设计题目。

在最初的方案中,我们倾向于单文档〔SDI〕的形式设计,但最初尝试都因缺少一些文件等情况而失败。

考虑到windows中自带小游戏大多采用对话框形式,为能更好的与同学们的使用习惯相一致,最终决定使用对话框〔Dialogue〕的形式。

2、数据结构在数据结构的选取,我们选择了链表,链表具有用多少空间就开多少空间的优点,使程序执行更稳定,高效。

游戏控制模块框函数成员贪吃蛇程序整体间调用关系4. 软件测试报告游戏初始界面菜单栏记分牌操作说明运动区域游戏运行界面游戏结束界面出现的问题1、问题:蛇运动区域与边框不匹配,造成蛇运动出边框或未到达边框而游戏结束。

原因:相关数据不匹配。

解决:重新对程序中的矩形框绘制函数数据进行修改,并修改蛇运动边界的判断条件。

2、问题:食物出现在边框外,造成游戏无法进行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
m_wallA.m_pos[0].x=5;
}
for(int e=1;e<6;e++)
{
m_wallA.m_pos[e].y=m_wallA.m_pos[0].y;
m_wallA.m_pos[e].x=m_wallA.m_pos[0].x++;
}
}
void init_wallB()//墙A的显示
{
m_wallB.len=6;
{m_food.x=rand()%row;
m_food.y=rand()%col;
}
}
}
for(int j=0;j<MAXSIZE;j++)//防止食物出现在蛇身上
{
if((m_food.x==m_snake.m_pos[j].x)&&(m_food.y==m_snake.m_pos[j].y))
{m_food.x=rand()%row;
{
m_snake.m_pos[n].x=-1;
m_snake.m_pos[n].y=-1;
}
SetTimer(hWnd,1,speed,NULL);
}
break;
}
for (int l=1;l<m_snake.len;l++)//撞自己死
{
if ((m_snake.m_pos[l].x==m_snake.m_pos[0].x)&&(m_snake.m_pos[l].y==m_snake.m_pos[0].y))
{
KillTimer(hWnd,1);
MessageBox(hWnd,"咬到自己拉,笨蛋!","GAME OVER",MB_OK);
if(VK_F1)//撞自己后重启
{
m_snake.m_pos[0].x=0;
m_snake.m_pos[0].y=0;
m_snake.m_direction=1;
for(int n=1;n<MAXSIZE;n++)
{
KillTimer(hWnd,1);
MessageBox(hWnd,"撞墙了,笨蛋!","GAME OVER",MB_OK);
if(VK_F1)//撞墙后重启
{
m_snake.m_pos[0].x=0;
m_snake.m_pos[0].y=0;
m_snake.m_direction=1;
for(int n=1;n<MAXSIZE;n++)
}
SetTimer(hWnd,1,speed,NULL);
}
SetTimer(hWnd,1,speed,NULL);
break ;
}
}
for (int d=0;d<m_wall.len;d++)//撞墙死
{
if ((m_wall.m_pos[d].x==m_snake.m_pos[0].x)&&(m_wall.m_pos[d].y==m_snake.m_pos[0].y))
if ((m_snake.m_pos[0].x==m_snakeA.m_pos[o].x)&&(m_snake.m_pos[0].y==m_snakeA.m_pos[o].y))
{
KillTimer(hWnd,1);
MessageBox(hWnd,"碰到蛇王拉,受死吧!","GAME OVER",MB_OK);
{
m_snake.m_pos[n].x=-1;
m_snake.m_pos[n].y=-1;
}
SetTimer(hWnd,1,speed,NULL);
}
SetTimer(hWnd,1,speed,NULL);
break ;
}
}
5.设定关卡,分三关,每吃五个萝莉进入下一关
if(m_snake.m_pos[0].x==m_food.x&&m_snake.m_pos[0].y==m_food.y)
if(VK_F1)//撞自己后重启
{
m_snake.m_pos[0].x=0;
m_snake.m_pos[0].y=0;
m_snake.m_direction=1;
for(int n=1;n<MAXSIZE;n++)
{
m_snake.m_pos[n].x=-1;
m_snake.m_pos[n].y=-1;
m_food.y=rand()%col;
}
}
}
3.禁止蛇往后走
case VK_UP:
if(m_snake.m_pos[0].y==m_snake.m_pos[1].y)
{m_snake.m_direction=0;
}
break;
case VK_RIGHT:
if(m_snake.m_pos[0].x==m_snake.m_pos[1].x)
{
KillTimer(hWnd,1);
MessageBox(hWnd,"撞墙了,笨蛋!","GAME OVER",MB_OK);
if(VK_F1)//撞墙后重启
{
m_snake.m_pos[0].x=0;
m_snake.m_pos[0].y=0;
m_snake.m_direction=1;
for(int n=1;n<MAXSIZE;n++)
{m_snake.m_direction=1;
}
break;
case VK_DOWN:
if(m_snake.m_pos[0].y==m_snake.m_pos[1].y)
{m_snake.m_direction=2;}
break;
case VK_LEFT:
if(m_snake.m_pos[0].x==m_snake.m_pos[1].x){
if ((m_wallA.m_pos[f].y==m_snake.m_pos[0].y)&&(m_wallA.m_pos[f].x==m_snake.m_pos[0].x))
{
KillTimer(hWnd,1);
MessageBox(hWnd,"撞墙了,笨蛋!","GAME OVER",MB_OK);
if(VK_F1)//撞墙后重启
{
m_snake.m_pos[0].x=0;
m_snake.m_pos[0].y=0;
m_snake.m_direction=1;
for(int n=1;n<MAXSIZE;n++)
{
m_snake.m_pos[n].x=-1;
m_snake.m_pos[n].y=-1;
1.设定了几堵墙预防墙出界
2.预防萝莉出现在墙上,蛇身上
3.禁止蛇往后走
4.设定蛇咬自己死,出界死,撞墙死;以及死亡后,胜利后弹出不同的对话框
5.设定关卡,分三关,每吃五个萝莉进入下一关
6.设定速度的增加
7.第二关增加至3堵墙
8.第三关出现不死蛇王
9.碰到蛇王死,不管如何死亡,小蛇头从初始位置开始,蛇王继续
m_wallB.m_pos[0].x=rand()%row;
m_wallB.m_pos[0].y=rand()%col;
if(m_wallB.m_pos[0].x>=14)//预防墙出去
{
m_wallB.m_pos[0].x=5;
}
for(int e=1;e<6;e++)
{
m_wallB.m_pos[e].y=m_wallB.m_pos[0].y;
{
m_snake.m_pos[n].x=-1;
m_snake.m_pos[n].y=-1;
}
SetTimer(hWnd,1,speed,NULL);
}
SetTimer(hWnd,1,speed,NULL);
break ;
}
}
for (int f=0;f<m_wallA.len;f++)//撞墙A死
{
{
KillTimer(hWnd,1);
MessageBox(hWnd, "出局,笨蛋!", "GAME OVER", MB_OK);
if(VK_F1)//出界后重启
{
m_snake.m_pos[0].x=0;
m_snake.m_pos[0].y=0;
m_snake.m_direction=1;
for(int n=1;n<MAXSIZE;n++)
{
m_snake.m_pos[n].x=-1;
m_snake.m_pos[n].y=-1;
}
SetTimer(hWnd,1,speed,NULL);
}
SetTimer(hWnd,1,speed,NULL);
break ;
}
}
for (int o=0;o<m_snake.len;o++)//撞自己死
{Hale Waihona Puke }SetTimer(hWnd,1,speed,NULL);
}
SetTimer(hWnd,1,speed,NULL);
break ;
}
}
for (int h=0;h<m_wallB.len;h++)//撞墙B死
{
if ((m_wallB.m_pos[h].y==m_snake.m_pos[0].y)&&(m_wallB.m_pos[h].x==m_snake.m_pos[0].x))
相关文档
最新文档