贪吃蛇游戏分析.doc

ID:52140701

大小:80.00 KB

页数:8页

时间:2020-03-23

贪吃蛇游戏分析.doc_第1页
贪吃蛇游戏分析.doc_第2页
贪吃蛇游戏分析.doc_第3页
贪吃蛇游戏分析.doc_第4页
贪吃蛇游戏分析.doc_第5页
资源描述:

《贪吃蛇游戏分析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、贪吃蛇游戏游戏简介:共有4个类:Zone,Food,Snake,Game,其中FoodSnake是游戏类的内嵌对象,Zone类中定义了一个全局对象功能简介;<1>设置游戏区域v2>随机蛇,食物v3>蛇吃食物,蛇撞墙,蛇咬到自己<4>积分并且显示按键说明:上:蛇向上移动下:蛇向下移动左:蛇向左移动右:蛇向右移动0:游戏中止1:游戏继续类图及其关系:ClassZonefriendGame;friendFood;friendSnake;+count:int+game[30][30]:char+InitZone():void+ShowZone():v

2、oidClassSnake-head:SnakeNode*■tail:SnakeNode*-p:SnakeNode*+SetSnake():void+MoveSnake(intx^inty):voidClassGame-point:dii7/枚举变量point:控制方向-food:Food・snake:Snake+InitGame():void+change_point(int):void+PlayGame():void系统实现:enumdir{up^downJeftt^rightt};classZone{friendGame;friendF

3、ood;friendSnake;public:voidInitZone();〃初始化游戏界面voidShowZone();〃显示游戏界面public:intcount;//积分chargame[30][30];//游戏区域};classSnake{public:SnakeNode*head;SnakeNode*tail;SnakeNode*p;public:voidSetSnake();〃在游戏区域内随机放一只小蛇voidMoveSnake(intx,inty);〃在无异常的情况下(没有撞到墙壁或咬到自己),蛇向指定的位置移动};classF

4、oodprivate:intfood_x;intfood_y;public:voidSetFood();intGetFood_x();intGetFood_y();};classGame{public:dirpoint;〃枚举变量point:控制方向Foodfood;Snakesnake;public:voidInitGame();〃游戏开始时,设置游戏界面,蛇,食物voidchange_point(int);〃改变方向voidPlayGame();〃玩游戏};主要函数:cout«n开始游戏,输入1,结束游戏输入On«endl;cin»a;w

5、hile(a)keydown=getch();//getch()返回键盘上读取的字符,此函数包含在头文件中change_point(keydown);snake.p=snake.head;switch(point){caseup:—(snake.p->x);break;casedown:++(snake.p->x);break;caseleftt:-(snake.p->y);break;caserightt:++(snake.p・>y);break;default:break;}if(snake.p->x==29llsnak

6、e.p->y==29llsnake.p->x==0llsnake.p->y==0)〃判断是否撞墙{system(ncls");//清屏函数f.ShowZone();cout«n你撞墙了GAMEOVER!!!n«endl;exit(O);}elseif(snake.p->x!=food.GetFood_x()&&snake.p->y!=food.GetFood_y()&&f.game[snake.p->x][snake.p->y]==,-f){systemC'cls”);//清屏函数f.ShowZone();cout«n咬到自己GAMEOVER

7、!!!n«endl;exit(O);}elseif(snake.p->x==food.GetFood_x()&&snake.p->y==food.GetFood_y())snake.MoveSnake(snake.p->x,snake.p->y);f.count=f.count+l;food.SetFood();system(”cls”);〃清屏函数f.ShowZone();elsesnake.MoveSnake(snake.p->x,snake.p->y);//JB入头结点system("cls");〃清屏函数f.ShowZone();}c

8、out«n继续游戏输入1,否则输入0H«endl;cin»a;//Sleep(500);心得体会:通过对这次的课程设计,增加了对于封装可继承的理解,如本题中的许多元

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
正文描述:

《贪吃蛇游戏分析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、贪吃蛇游戏游戏简介:共有4个类:Zone,Food,Snake,Game,其中FoodSnake是游戏类的内嵌对象,Zone类中定义了一个全局对象功能简介;<1>设置游戏区域v2>随机蛇,食物v3>蛇吃食物,蛇撞墙,蛇咬到自己<4>积分并且显示按键说明:上:蛇向上移动下:蛇向下移动左:蛇向左移动右:蛇向右移动0:游戏中止1:游戏继续类图及其关系:ClassZonefriendGame;friendFood;friendSnake;+count:int+game[30][30]:char+InitZone():void+ShowZone():v

2、oidClassSnake-head:SnakeNode*■tail:SnakeNode*-p:SnakeNode*+SetSnake():void+MoveSnake(intx^inty):voidClassGame-point:dii7/枚举变量point:控制方向-food:Food・snake:Snake+InitGame():void+change_point(int):void+PlayGame():void系统实现:enumdir{up^downJeftt^rightt};classZone{friendGame;friendF

3、ood;friendSnake;public:voidInitZone();〃初始化游戏界面voidShowZone();〃显示游戏界面public:intcount;//积分chargame[30][30];//游戏区域};classSnake{public:SnakeNode*head;SnakeNode*tail;SnakeNode*p;public:voidSetSnake();〃在游戏区域内随机放一只小蛇voidMoveSnake(intx,inty);〃在无异常的情况下(没有撞到墙壁或咬到自己),蛇向指定的位置移动};classF

4、oodprivate:intfood_x;intfood_y;public:voidSetFood();intGetFood_x();intGetFood_y();};classGame{public:dirpoint;〃枚举变量point:控制方向Foodfood;Snakesnake;public:voidInitGame();〃游戏开始时,设置游戏界面,蛇,食物voidchange_point(int);〃改变方向voidPlayGame();〃玩游戏};主要函数:cout«n开始游戏,输入1,结束游戏输入On«endl;cin»a;w

5、hile(a)keydown=getch();//getch()返回键盘上读取的字符,此函数包含在头文件中change_point(keydown);snake.p=snake.head;switch(point){caseup:—(snake.p->x);break;casedown:++(snake.p->x);break;caseleftt:-(snake.p->y);break;caserightt:++(snake.p・>y);break;default:break;}if(snake.p->x==29llsnak

6、e.p->y==29llsnake.p->x==0llsnake.p->y==0)〃判断是否撞墙{system(ncls");//清屏函数f.ShowZone();cout«n你撞墙了GAMEOVER!!!n«endl;exit(O);}elseif(snake.p->x!=food.GetFood_x()&&snake.p->y!=food.GetFood_y()&&f.game[snake.p->x][snake.p->y]==,-f){systemC'cls”);//清屏函数f.ShowZone();cout«n咬到自己GAMEOVER

7、!!!n«endl;exit(O);}elseif(snake.p->x==food.GetFood_x()&&snake.p->y==food.GetFood_y())snake.MoveSnake(snake.p->x,snake.p->y);f.count=f.count+l;food.SetFood();system(”cls”);〃清屏函数f.ShowZone();elsesnake.MoveSnake(snake.p->x,snake.p->y);//JB入头结点system("cls");〃清屏函数f.ShowZone();}c

8、out«n继续游戏输入1,否则输入0H«endl;cin»a;//Sleep(500);心得体会:通过对这次的课程设计,增加了对于封装可继承的理解,如本题中的许多元

显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭