c语言贪吃蛇小游戏程序课程设计.docx

上传人:h**** 文档编号:25724116 上传时间:2022-07-13 格式:DOCX 页数:10 大小:14.98KB
返回 下载 相关 举报
c语言贪吃蛇小游戏程序课程设计.docx_第1页
第1页 / 共10页
c语言贪吃蛇小游戏程序课程设计.docx_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《c语言贪吃蛇小游戏程序课程设计.docx》由会员分享,可在线阅读,更多相关《c语言贪吃蛇小游戏程序课程设计.docx(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、c语言贪吃蛇小游戏程序课程设计 学生课程设计报告 一、课程设计内容 贪吃蛇小游戏程序设计 (贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中身体交叉蛇头撞倒自己身体则游戏结束。) 二、技术路线 使用VC+6.0作为开发环境, 采用控制台的形式完成整个游戏的开发,没有用到MFC。 加入了pcc32.h的头文件及库文件,用于对控制台打印效果的控制。 同时也加入了PlaySound()函数,实现了对菜单选择,游戏开始,游戏结束的音

2、效控制。游戏栏和输出栏的同时打印,数据的更新打印效果,没有采用双线程的方法实现。 接收用户键盘输入信息,实现游戏暂停,重新开始,菜单选择和进入菜单。 三、设计与实现 1.游戏基本功能: 游戏有开始菜单界面,并有开始游戏,游戏帮助,关于游戏,退出游戏四个选项 游戏初始化后,一条蛇在密闭的围墙内,在围墙内随机出现一个食物, 通过按键盘上的四个方向键控制蛇移动, 蛇在移动过程中撞到墙壁将不会死亡,而是穿过围墙继续行进, 但是如果蛇身体交叉蛇头撞到自己的身体,则游戏结束。 同时,游戏过程中可暂停游戏,并有积分系统, 且积分每满一定值,蛇的运行速度也会逐步增加。 2.函数定义和声明 (1)头文件 #in

3、clude #include #include #include #include #include mmsystem.h #pragma comment (lib,winmm.lib) #includepcc32.h #pragma comment (lib, pcc32_vc6.lib) using namespace std; #define UP 72 /定义上下左右常量 #define DOWN 80 #define LEFT 75 #define RIGHT 77 #define ESC 27 #define SPACE 32 /空格 #define ENTER 13 /回车 (2

4、)函数声明 void GamePrint(); /游戏开始画面函数 void Gameinit(); /游戏初始化函数 void Sweep_Screem(); /清屏函数 void Gotoxy(int , int); /光标移动函数 void Hid_Cursor(); /光标隐藏函数 void Snake_Move(); /蛇运动函数 int Create_Food(); /食物产生函数 void Pwall(); /画墙函数 void Key(); /键盘操作和处理函数 void Hit_Wall(); /判断是否撞墙 void Eat_Itself(); /判断是否咬到自己 void

5、 Whether_Eat(); /判断蛇是否吃到食物 void GameRun(); /游戏运行函数 void SurFace(); /开始菜单界面void GameOver(); /游戏结束判断函数 void Pause(); /游戏暂停函数 void MyCount1(); /统计边栏,用来做提示 void MyCount2(); /统计边栏,用来做一些统计 void Menu( int ); /开始界面 void Inti_Data(); /初始化数据 (3)变量声明 int X, Y; /食物坐标 int Map7924=0; /地图尺寸,其实有食物记为1 int over = 0;

6、/用来标记游戏结束 int score = 0; /记录分数 int speed = 130; /记录速度 int ColoArray15= 15,1,2,3,4,5,6,7,8,9,10,11,12,13,14 ; /自己定义的用来控制颜色的数组 int length = 3; /初始化蛇的长度为3 int Key_Menu; /开始菜单界面用的零时按键 3.主函数int main() int main() /主函数 START: Inti_Data(); fixConsoleSize(18,15); Hid_Cursor(); SurFace(); PlaySound(TEXT(m22.w

7、av), NULL, SND_FILENAME | SND_ASYNC ); fixConsoleSize(105,25); GamePrint(); Gameinit(); GameRun(); while(over) /如果游戏结束了,是否重新开始。按R键为重新开始 int t=getch(); if(t = r|t = R) system(cls); goto START; return 0; 4.界面函数Surface() SurFace()是通过接受按键信息来调用Menu(); SurFace()中给出了四个菜单选项, 上下键实现对菜单的选择, ENTER键实现对菜单的进入; tem

8、p用于存放按键信息, keytemp用于记录当前菜单的位置, 实现了在第一个菜单选项按上方向键会走到最后一个菜单选项(keytemp+=4), 在最后一个菜单选项按下方向键会走到第一个菜单选项(keytemp%4) 5.菜单函数Menu(int n) 调节输出的颜色给人以选择光效移动的效果,事实上只是先清屏然后重新打印了而已,通过SurFace()传参来控制菜单输出结果 6. 四、 测试结果 1. 开始界面 2.游戏界面 五、感想和体会 刚开始决定做这个游戏的时候,还是有点迷茫不知道从何做起,于是在网络上寻找了大量的资料,了解到具体有控制台的贪吃蛇,MFC写的贪吃蛇,还有其他更高级的贪吃蛇。最

9、终开始有初步的规划。 首先,由于对面向对象和对类的理解不够,这里我们采用了C语言进行开发。 其次,介于对QT,WIN32SDK,GDI,OPENGL,DirectX等等没有任何基础,甚至是对C+也没有很好的理解,也难以进行更高效和更好的开发。 最后,我们没有采用MFC进行游戏开发, 而是直接采用了控制台进行开发。 开始我们先对最简单的程序进行分享,在充分理解了贪吃蛇核心的算法部分后,发现了完成这个项目的可行性,其他的部分就可以靠我们自己进行开发了。 在完全依靠控制台的情况下, 我们遇到并解决了许多问题,提高了自己,同时也收获了实践的经验。 我们采用了自己想出的很多方法来解决“界面”的问题, 开

10、始菜单界面的完成,就用了比较笨的方法,原因还是知识贫乏。 开发过程中,我们遇到了许多问题,在网络寻求帮助之后,我们意外的发现了PCC32库,并下载了这个库和头文件,在对PCC32头文件进行深入研究之后,我们在游戏的开发中大量使用了PCC32.h头文件中的函数,使我们的开发变得更加顺利。在次非常感谢PCC32库的作者,正是他的无私奉献,才使我们的能够更好得开发。 还有就是多线程的问题,在多方面询问之后,发现单线程的局限性太大,但是还是因为知识匮乏的缘故,我们对如果实现多线程没有很好的理解,最终只能使用单线程。 还有就是我们对windows API了解甚少,然而Windows API包括几千个可调用的函数,这让我们在临时运用的时候,显得力不从心,很多函数并没有完全了解其功能和各参数的用法就拿来使用,希望在以后的生活中,更加努力的去学习。 现在腹中的知识还非常非常有限,能够完成这个游戏,我们觉得挺开心的,不过高手看了我们的代码,没有发辫其他任何评论,直接给了三个字,烂代码,这让我们明白了,我们要走的路还很远。 在以后的学习中,我们小组一定会更加努力,总有一天我们也会成为真正的高手

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com