天津大学自动化级《嵌入式系统》设计报告.docVIP

天津大学自动化级《嵌入式系统》设计报告.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
天津大学自动化级《嵌入式系统》设计报告

《嵌入式系统》设计报告 学院:电气与自动化工程学院 班级:自动化2班 年级:2010级 学号:3010203109 姓名:叶林奇 作品名称:贪吃蛇游戏 设计思路 贪吃蛇由一节一节的方块组成,初始长度为3,按下启动按钮(‘1’键),贪吃蛇前进。玩家通过方向键(‘2’上‘4’左‘5’下‘6’右)控制贪吃蛇的转弯。按下暂停键(‘1’),游戏暂停,再次按下暂停键继续游戏。游戏过程中若贪吃蛇撞到边界或自己,则游戏失败。贪吃蛇每吃一个食物,节数加1。玩家如果成功将节数增加到20,则获得胜利。胜利后播放音乐,按下重启键(‘3’)重新开始。 流程图: 主要代码: char stop=0,restart=0,win1=0; /* 标志位,stop:暂停键按下置1;restart:重启键按下1;win1:获胜置1 */ char length; /* 贪吃蛇长度 */ char snake[20][2]={0}; /* 贪吃蛇各节位置坐标;snake[0]为头部;snake[i][0]:x坐标(0~39);snake[i][1]:y坐标(0~29) */ void Refresh_Snake() /* 刷新贪吃蛇所有节 */ { unsigned char i; for(i=0;ilength;i++) MX1_LCDC_DrawSquare(snake[i][0]*8,snake[i][1]*8, 8, 29, 50, LS_SOLID, FS_SOLID ); } void Init() /* 初始化程序 */ { restart=0; /* restart标志位初始状态置0 */ win1=0; /* win1标志位初始状态置0 */ stop=1; /* stop标志位初始状态置1 */ length=3; /* 初始长度设为3 */ snake[0][0]=20;snake[0][1]=14; /* 头部初始位置 */ snake[1][0]=20;snake[1][1]=15; /* 第二节初始位置 */ snake[2][0]=20;snake[2][1]=16; /* 第三节初始位置 */ MX1_LCDC_DrawRect( 0, 0, 319, 239, 15, 15, LS_SOLID, FS_SOLID ); /* 全屏用红色盖住 */ Refresh_Snake(); /* 在屏幕上显示贪吃蛇 */ Generate_food(); /* 生成食物 */ Turn_up(); } char food[2]={0}; /* 食物坐标;food[0]:x坐标,food[1]y坐标 */ long w=0; /* 随机数种子变量 */ void Generate_food() /* 食物生成子程序 */ { char x,y,i,ok=0; srand(w); /* 随机数发生器的初始化函数 */ w++; /* 该子程序每执行一次随机数种子变量加1,保证随机数可以正常产生 */ while(ok==0) { x=rand()%40; /* 随机生成x(0~39) */ y=rand()%30; /* 随机生成y(0~29) */ for(i=0;ilength;i++) { if(x==snake[i][0]y==snake[i][1])break; /* 检验(x,y)是否与贪吃蛇的节重合 */ } if(i==length)ok=1; /* 不重合时ok置1,退出循环 */ } food[0]=x;food[1]=y; /* 用之前产生的坐标给food赋值 */ Refresh(food); /* 在屏幕上刷新食物位置 */ } void Restart() /* 游戏失败时的重启操作,执行初始化程序 */ { Init(); } void win() /* 获胜子程序 */ { win1=1; /* 胜利标志位置1 */ while( restart==0 ) { WAVE_Play( ); /* 播放声音,直到重启键按下 */ } Restart(); /* 重新开始游戏 */ } char Get_direction() /* 获取当前前进方向;返回值0123分别代表下上左右 */ { char i; if(snake[0][0]==snake[1][0]) { if(snake[0][1]snake[1][1]){i=0;} else i=1; }

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档