1 / 11
文档名称:

贪吃蛇游戏代码(C )样本.doc

格式:doc   大小:25KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

贪吃蛇游戏代码(C )样本.doc

上传人:非学无以广才 2020/10/31 文件大小:25 KB

下载得到文件列表

贪吃蛇游戏代码(C )样本.doc

文档介绍

文档介绍:#include<iostream>#include<>#include<>#include<>#include<>usingnamespacestd;intGameOver=0;structBody//蛇身(链表结构){ intx,y;//蛇身结点坐标 Body*next;//下一个结点};voidSetPos(inti,intj)//设定光标位置{ COORDpos={i-1,j-1};//坐标变量 HANDLEOut=GetStdHandle(STD_OUTPUT_HANDLE);//获取输出句柄SetConsoleCursorPosition(Out,pos);//设定光标位置}classSneak//贪吃蛇类{private: Body*head;//蛇头指针 intDirection;//移动方向。1,2,3,4对应上左下右 intCount;//蛇长intSpeed;//速度(等级) intFoodExist;//食物存在标识 intFood_x;//食物X坐标 intFood_y;//食物Y坐标public: Sneak(inta=3,intb=4,intc=1,intd=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;//等级1 } voidMap();//画界面函数 voidPaint();//画蛇身函数 voidFood();//生成食物 intOver();//判定游戏是否结束 voidGaming();//游戏进程函数 voidMove();//移动};voidSneak::Map()//使用{ inti; 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<<"等级:"<<Speed;}voidSneak::Food(){ Body*p; intInBody=0; //判定食物是否产生在蛇体内 srand((int)time(0));//用系统时间来做随机数种子 while(1) { Food_x=rand()%48+2;//随机出食物坐标 Food_y=rand()%23+2; p=head; while(p!=NULL)//判定食物是否产生在蛇体内 { if(p->x==Food_x&&p->y==Food_y) { InBody=1; break; } p=p->next; } if(InBody==0)//食物不在蛇身。生成成功 break; InBody=0; }}intSneak::Over(){ Body*p; p=head; if((head->x)>=50||(head->x)<=1||(head->y)<=1||(head->y)>=25)//是否撞到边缘 return1; p=head->next; while(p!=NULL)//是否撞到蛇身 { if((head->x==p->x)&&(head->y==p->y)) return1; p=p->next; } return0;}voidSneak::Paint(){ Body*p; p=head; while(p!=NULL) { SetPos(p->x,p->y); cout<<"*"; p=p->next; } SetPos(Food_x,Food_y); cout<<"*";}voidSneak::Move(){Body*New; New=new(Body);//新蛇身结点 if(Direction==1)//确定新蛇头坐标{New->x=head->x; New->y=head->y-1; New->next=head;