Microsoft Office Word 文档_第1页
Microsoft Office Word 文档_第2页
Microsoft Office Word 文档_第3页
Microsoft Office Word 文档_第4页
全文预览已结束

下载本文档

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

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论