欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    DOS贪吃蛇程序设计思路及代码.docx

    • 资源ID:26430266       资源大小:14.31KB        全文页数:10页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DOS贪吃蛇程序设计思路及代码.docx

    DOS贪吃蛇程序设计思路及代码 游戏背景及设计原因 蛇引诱夏娃吃了苹果之后,就被贬为毒虫,成为阴险的象征。而蛇吃东西是整只动物吞进去的,很久以前(大概文艺复兴的时候)就有人发明了一种游戏,就是现在贪吃蛇的前身,后来慢慢的发展就变成了今天的贪吃蛇了一个很受欢迎、为人熟知、给很多人美好时光的经典小游戏。 贪吃蛇在我们曾经的岁月里留下了很多美好的记忆,也伴随我们走过了很长一段的人生路,对于贪吃蛇这个游戏有着特殊的感情,也一直很好奇这个游戏是怎么设计的,所以这次我们就选择了这个题目。一是弄清楚这个游戏的设计;二是学习程序的编辑过程和对编程的进一步深入了解。 程序结构图 程序流程图 程序设计及说明 1、边墙(Wall) 该类规定游戏的范围大小。 2、蛇类(Snake) 用该类生成一个实例蛇snake。 3、移动(Move) 该类用于实现对蛇的操作控制,即蛇头方向的上下左右的移动操作。 4、食物类(Food) 该类是游戏过程中食物随机产生的控制和显示。 5、判断死亡(Dead) 该类是对游戏过程中判断玩家操作是否导致蛇的死亡,其中包括蛇头咬食自己身体和蛇头是否触及游戏“边墙”。 6、蛇结点(SnakeNode) 该类是蛇吃下随机产生的食物从而增加长度的控制类,其中包括蛇长度增加和尾部的变化。 7、计分统计(Score) 该类由于玩家的游戏成绩记录,及游戏结束时的得分输出。 . 部分函数及说明 1.Char menu(); /*用于玩家选择的游戏速度,返回一个char值*/ 2.DELAY(char ch1); /*用于控制游戏速度*/ 3.void drawmap(); /*绘制游戏地图函数* 4、void menu() /*游戏帮助信息的输出* . 部分类细节解说 1、蛇的构建Snake class Snake public: int xn; int yn; int node; /蛇身长度 int direction;/蛇运动方向 int life;/蛇生命,判断死亡 2、随机食物Food 利用rand()函数进行随机数产生,然后就行坐标定位void Food(void) . int pos_x = 0; int pos_y = 0; pos_x = rand() % length;/x坐标的确定 pos_y = rand() % (width-1);/y坐标的确定. 3、蛇头方向确定 利用switch语句进行方向确定. switch() case VK_UP: OutChar2.Y-; y-; break; case VK_LEFT: OutChar2.Y+; y+; break; case VK_DOWN: OutChar2.X-; x-; break; case 'VK_RIGHT: OutChar2.X+; x+; break; 代码 #include #include #include #include #include using namespace std; int score=0,t=300,f=1;/得分与时间间隔/ms(控制贪吃蛇的速度)double ss=0,tt=0;/统计时间所用参数 class Node Node(): x(0), y(0), prior(0), next(0) int x; int y; Node *prior; Node *next; friend class Snake; ; class Snake public: Snake(); Snake(); void output(); void move(); void change_point(char); private: Node *head; Node *tail; enum p UP, RIGHT, DOWN, LEFT point; /方向 int food_x, food_y; /食物的坐标 static const int N = 23; int gameNN; void add_head(int, int); /添加坐标为a,b的结点 void delete_tail(); /删除最后一个结点 void greate_food(); /产生食物 void gotoxy(int, int); ; void menu(); /游戏操作菜单 int main() system("color a"); /初始cmd窗口颜色为黑(背景)淡绿(文字) coutnext; delete temp; void Snake:add_head(int a, int b) Node *temp = new Node; temp->x = a; temp->y = b; if (NULL = head) /如果头结点为空,那么就将这个点设为头结点 head = tail = temp; else /否则添加到头结点的前面,作为新的头结点 head->prior = temp; temp->next = head; head = head->prior; /这里head前移,使head一直指向头结点 gameab = 1; void Snake:delete_tail() Node *temp = tail; gametail->xtail->y = 0; /将该结点的坐标对应的值置为 tail = tail->prior; /tail尾结点前移,删除保存了原来尾结点的temp; tail->next = NULL; delete temp; int i, j; gotoxy(0, 0); coutx; int b = head->y; switch (point) case UP: -a; break; case DOWN: +a; break; case RIGHT: +b; break; case LEFT: -b; break; if (1 = gameab && a != food_x && b != food_y) /碰到点了但不是食物那么死亡 this->Snake(); gameover(); if (a = food_x && b = food_y) /吃到食物了 add_head(a, b); score+=f; if(score%5=0&&t>0) t-=100; system("cls"); if(score=15) cout<<"nnnnnnn 太棒了,已经是最高时速了"<<endl; else cout<<"nnnnnnn 很不错,要加速了,请小心!"<<endl; Sleep(3000);system("cls");menu();ss-=3; greate_food(); return; add_head(a, b); delete_tail(); void Snake:greate_food() srand(unsigned(time(0); do food_x = rand() % 21 + 1; /产生-21的随机数 food_y = rand() % 21 + 1; while (1 = gamefood_xfood_y); /对应的坐标已经有点存在就重新产生食物 gamefood_xfood_y = 1; /食物坐标对应的值赋为 void Snake:gotoxy(int x, int y) /定位光标 HANDLE hOutput; COORD loc; loc.X = x; loc.Y = y; hOutput = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOutput, loc);

    注意事项

    本文(DOS贪吃蛇程序设计思路及代码.docx)为本站会员(h****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开