贪吃蛇游戏代码(C++).doc_第1页
贪吃蛇游戏代码(C++).doc_第2页
贪吃蛇游戏代码(C++).doc_第3页
贪吃蛇游戏代码(C++).doc_第4页
贪吃蛇游戏代码(C++).doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include#include#include#include#includeusing namespace std;int GameOver=0;struct Body/蛇身(链表结构)int x,y;/蛇身结点坐标Body *next;/下一个结点;void SetPos(int i,int j)/设定光标位置COORD pos=i-1,j-1;/坐标变量HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);/获取输出句柄 SetConsoleCursorPosition(Out,pos);/设定光标位置class Sneak/贪吃蛇类 private:Body *head;/蛇头指针int Direction;/移动方向。1,2,3,4对应上左下右int Count;/蛇长 int Speed;/速度(等级)int FoodExist;/食物存在标记int Food_x;/食物X坐标int Food_y;/食物Y坐标 public:Sneak(int a=3,int b=4,int c=1,int d=0)/构造函数 FoodExist=d;/起始不存在食物 Body *temp1,*temp2; head=new(Body);/申请起始蛇身3节 head-x=4; head-y=2; temp1=new(Body); temp1-x=3; temp1-y=2; temp2=new(Body); temp2-x=2; temp2-y=2; head-next=temp1; temp1-next=temp2; temp2-next=NULL; Direction=b;/方向为右 Count=a;/长为3 Speed=c;/等级1void Map();/画界面函数void Paint();/画蛇身函数void Food();/生成食物int Over();/判断游戏是否结束void Gaming();/游戏进程函数void Move();/移动;void Sneak:Map()/使用int i;for(i=1;i=50;i+)SetPos(i,1);cout-;for(i=2;i=25;i+)SetPos(1,i);cout|;SetPos(50,i);cout|;for(i=1;i=50;i+)SetPos(i,25);cout-;SetPos(54,3);cout贪吃蛇;SetPos(54,5);cout贪吃蛇长度为:Count;SetPos(54,7);cout等级:x=Food_x&p-y=Food_y)InBody=1;break;p=p-next;if(InBody=0)/食物不在蛇身。生成成功break;InBody=0;int Sneak:Over()Body *p;p=head;if(head-x)=50|(head-x)y)y)=25)/是否撞到边缘return 1;p=head-next;while(p!=NULL)/是否撞到蛇身if(head-x=p-x)&(head-y=p-y)return 1;p=p-next;return 0;void Sneak:Paint()Body *p;p=head;while(p!=NULL)SetPos(p-x,p-y);coutnext;SetPos(Food_x,Food_y);coutx=head-x; New-y=head-y-1; New-next=head; head=New;if(Direction=2) New-x=head-x-1; New-y=head-y; New-next=head; head=New;if(Direction=3) New-x=head-x; New-y=head-y+1; New-next=head; head=New;if(Direction=4) New-x=head-x+1; New-y=head-y; New-next=head; head=New;void Sneak:Gaming()system(cls);/刷新屏幕char x;Body *p; Map();/画界面的先 Paint();/再画蛇身 while(1)if(_kbhit()/_kbhit()判断是否有键盘操作x=_getch();/重缓冲区读出一个字符赋给xif(x=W|x=w)&Direction!=3)/改变蛇的方向(不可以是反方向)Direction=1;if(x=S|x=s)&Direction!=1)Direction=3;if(x=A|x=a)&Direction!=4)Direction=2;if(x=D|x=d)&Direction!=2)Direction=4;while(_kbhit()/读掉这之后所有的键盘输入_getch();if(FoodExist=0)/如果食物被吃了或刚开始游戏,要生成新的食物 Food(); FoodExist=1;Move();/移动蛇if(head-x=Food_x&head-y=Food_y)/如果蛇吃到了食物 FoodExist=0; Count+;/蛇身+1 SetPos(54,5); cout贪吃蛇长度:Count;/改变界面信息 if(Count%10=0)/每十个蛇身升一级 Speed+; SetPos(54,7); coutLEVEL:next)-next!=NULL) p=p-next;SetPos(p-next-x,p-next-y); coutnext); p-next=NULL;if(Over()/判断是否游戏结束break;Sleep(500-Speed*50);/等待,具体时间和等级有关system(cls);if(Speed=10)/通关SetPos(25,25);cout恭喜你,你已经通关了endl;system(pause);else/失败SetPos(25,10);coutgameover,最终长度为 Countendl;system(pause);int main()system(color 6a);Sneak game;system(cls);cout*endl;cout* 极品贪吃蛇小游戏 *endl;cout*endl;cout* 说明: *endl;cout* W,A

温馨提示

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

评论

0/150

提交评论