- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式课程设计报告---贪吃蛇游戏
嵌入式系统课程设计报告书 课题题目:贪吃蛇游戏 学 院:核自院 班 级:测控三班 学 号:9 姓 名: 马文铂 第一章 引言 - 2 - 1.1关于题目 - 2 - 1.1.1题目要求 - 2 - 1.1.2选题背景 - 2 - 1.2关于编译软件 - 2 - 第二章 概要设计 - 2 - 2.1软件主要功能设计 - 2 - 2.1.1程序结构 - 2 - 2.1.2程序流程 - 3 - 第三章 软件实现 - 4 - 3.1变量函数及资源的声明 - 4 - 3.1.1函数声明 - 4 - 3.1.2变量声明 - 5 - 第四章 心得体会 - 6 - 第一章 引言 1.1关于题目 1.1.1题目要求 利用QT制作一个贪吃蛇的小游戏并将其移植到嵌入式Linux平台下,要求: 能够记录游戏时间,游戏成绩 正常完成该游戏基本功能 1.1.2选题背景 贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的实现对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。更进一步的掌握C语言以及加深对嵌入式Linux操作系统编程的认识和了解,熟悉基本的嵌入式开发过程。 1.2关于编译软件 本系统采用开源社区所提供的一系列编程工具,gcc、gdb等。系统运行平台采取嵌入式uClinux操作系统。 第二章 概要设计 2.1软件主要功能设计 2.1.1程序结构 根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、暂停游戏以及停止游戏,游戏帮助提示与分数的显示等等。具体的程序功能如下图所示。 2.1.2程序流程 根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。贪吃蛇的内容主要包括: 游戏开始,随机出现食物,游戏结束,分数的显示,游戏帮助。程序主要流程图如下: 第三章 编程实现 3.1变量函数及资源的声明 根据程序的结构,将贪吃蛇需要实现的放在snakeBoard.h文件中,该文件创建游戏画面,显示贪吃蛇对象;另外,计分功能凡在countNumber.h文件中实现。。 3.1.1主函数 #include snakeBoard.h #include QApplication int main(int argc,char *argv[]) { QApplication app(argc,argv); snakeBoard *gameMainBoard = new snakeBoard; gameMainBoard-setGeometry(50,50,600,500); gameMainBoard-show(); return app.exec(); } 3.1.2主要源代码 snakeBoard.h中定义的相关变量和方法 #include QWidget #include QPaintEvent #include QKeyEvent #include QTimer class snakeBoard:public QWidget { Q_OBJECT public: snakeBoard(QWidget *parent = 0); int getRandNum(void); void getRandXY(int x,int y); private: int isStart; //是否开始 int snakeLength;//蛇身长度 int directionFlag;//移动方向 int directionArray[4][2];//方向向量 int interval; //屏幕刷新频率 QTimer *updateTimer; int foodArray[2]; int paintingIsOver; int snakeArray[80][2]; // int gameField[20][20]; protected: void paintEvent(QPaintEvent *paintEvent); void keyPressEvent(QKeyEvent *keyEvent); protected slots: void snakeAutoRun(void); void resetGame(void); }; 部分方法的实现代码 snakeBoard::snakeBoard(QWidget *parent):QWidget(parent) { for(int i = 0; i 80; i++) for(int j = 0; j 2; j++) snakeArray[i][j] = 0; paintingIsOver
您可能关注的文档
最近下载
- T_CRHA 044-2024 住院期间成人泌尿造口护理技术规范.pdf VIP
- 新核心高职英语综合教程第一册第二单元教案.pdf VIP
- 构建网络交易合规与消费者权益保护的新模式.pptx VIP
- PPT精美九年级语文上册我看.pptx VIP
- 新概念英语第二册课文原文(完形填空).pdf VIP
- 入团志愿书电子版其它工作范文实用文档-入团志愿书电子版.pdf VIP
- 2025年广西公需课人工智能时代的机遇与挑战——预训练大模型与生成式AI参考答案.docx VIP
- 3.4热力学第二定律 教案.doc VIP
- 2025年北森领导测评题目及答案.doc VIP
- 工程教育专业认证报告.doc VIP
文档评论(0)