下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include <iostream.h>#include <windows.h>#include <stdlib.h>#include <conio.h>#include <time.h> /使用当前时间做种子;enum dirup,down,left,right; /枚举类型enum dir;/围墙;class Fencepublic:void InitFence();void OutputF();public:char game2020;f; /定义对象;/画框框;void Fence:InitFence()for(int i=
2、0; i<20; i+)for(int j=0; j<20; j+)if(i=0|i=19|j=0|j=19)gameij= '*'else gameij= ' '/显示框框;void Fence:OutputF()for(int i=0; i<20; i+)for(int j=0; j<20; j+)cout<<gameij<<' 'cout<<endl;/蛇结点;class SnakeNodeprivate:int x,y;SnakeNode *prior,*next;public:
3、void add_head(int x,int y);int get_x();int get_y();void delete_tail();*head=NULL, *tail =NULL;/插入头结点;void SnakeNode:add_head(int x,int y)SnakeNode *q=new SnakeNode;q->x =x; q->y =y;q->next =head;q->prior =NULL;if(head) head->prior =q;head =q;if(!tail) tail =head;f.gamexy= '*'
4、/f对象可以在定义Fence类时定义; 且Fence类在SnakeNode类前定义;int SnakeNode:get_x()return x;int SnakeNode:get_y()return y;/删除尾结点;void SnakeNode:delete_tail()SnakeNode *p =tail;f.gametail->get_x()tail->get_y()= ' '/把尾结点的坐标表示的'*'置为空格;if(tail=head)tail= head= NULL;elsetail= tail->prior;tail->ne
5、xt= NULL;delete p;/move移动;class movepublic:dir point; /枚举变量point: 控制方向;int food_x;int food_y;public:void moving();void change_point(char); /改变方向;void get_food();void move:moving()int a,b;a= head->get_x(); /取得头结点横坐标b= head->get_y(); /头结点纵坐标switch(point)case up: -a; break;case down: +a; break;ca
6、se left: -b; break;case right: +b; break;if(a=19|b=19|a=0|b=0)/判断是否撞墙;cout<<"game over!"<<endl;exit(0);if(a=food_x && b=food_y)/吃food;head->add_head(a,b);get_food();elsehead->add_head(a,b); /插入头结点;head->delete_tail(); /删除尾结点;void move:change_point(char keydown)
7、switch(keydown)case 'w': point= up; break;case 's': point= down; break;case 'a': point= left; break;case 'd': point= right; break;void move:get_food()srand(unsigned int) time(NULL); /做种子(程序运行时间); food_x= rand()%18+1; food_y= rand()%18+1;f.gamefood_xfood_y= '*'
8、/main();int main()cout<<"Using 'w,s,a,d'to control direction!nnn"/画框框和小蛇;move m;f.InitFence();head->add_head(4,3);head->add_head(4,4);head->add_head(4,5);m.get_food();f.OutputF();while (true)char keydown= getch(); /getch()返回键盘上读取的字符;包含头文件<conio.h>m.change_point(keydown);while(!kbhit() /判断有没有按键落下;system("cls"); /清屏函数;m.moving();f.OutputF();Sleep(200);return 0;进程请求序列请求序列 柱面号 磁头号扇区号 115 8 9 2 20 6 3 2 20 9 6 4 40 10 5 5 15 8 4 6 6 3 10 7 8 7 9 8 15
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暖流课件图片教学课件
- s字母课件教学课件
- 自媒体写作技巧培训
- 淮阴工学院《精密机械基础》2021-2022学年第一学期期末试卷
- 铁基及铁镍基非晶合金行业相关投资计划提议范本
- 2024年信息技术产品代理销售协议
- 2024年危化品运输安全合同
- 农业资源共享平台合同
- 2024年临时展览场地租赁协议
- 小学返校复课安全方案
- 小学六年级数学上册口算题300道(全)
- 《干粉灭火器检查卡》
- 校园监控值班记录表(共2页)
- 试桩施工方案 (完整版)
- 走中国工业化道路的思想及成就
- ESTIC-AU40使用说明书(中文100版)(共138页)
- 河北省2012土建定额说明及计算规则(含定额总说明)解读
- Prolog语言(耐心看完-你就入门了)
- 保霸线外加电流深井阳极地床阴极保护工程施工方案
- 蓝色商务大气感恩同行集团公司20周年庆典PPT模板
- 恒温箱PLC控制系统毕业设计
评论
0/150
提交评论