嵌入式课程设计报告贪吃蛇游戏

上传人:汽*** 文档编号:431736153 上传时间:2022-09-30 格式:DOC 页数:11 大小:66KB
返回 下载 相关 举报
嵌入式课程设计报告贪吃蛇游戏_第1页
第1页 / 共11页
嵌入式课程设计报告贪吃蛇游戏_第2页
第2页 / 共11页
嵌入式课程设计报告贪吃蛇游戏_第3页
第3页 / 共11页
嵌入式课程设计报告贪吃蛇游戏_第4页
第4页 / 共11页
嵌入式课程设计报告贪吃蛇游戏_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《嵌入式课程设计报告贪吃蛇游戏》由会员分享,可在线阅读,更多相关《嵌入式课程设计报告贪吃蛇游戏(11页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统课程设计报告书 课题题目:贪吃蛇游戏 学 院:核自院班 级:测控三班学 号:200806010309姓 名: 马文铂第一章 引言- 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制作一个贪吃蛇的小游戏并将其移植到

2、嵌入式Linux平台下,要求:1. 能够记录游戏时间,游戏成绩2. 正常完成该游戏基本功能 1.1.2选题背景贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的实现对于以前的我而言都是很神秘的。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。更进一步的掌握C语言以及加深对嵌入式Linux操作系统编程的认识和了解,熟悉基本的嵌入式开发过程。1.2关于编译软件本系统采用开源社区所提供的一系列编程工具,gcc、gdb等。系统运行平台采取嵌入式uClinux操作系统。第二章 概要设计2.1软件主要功能设计2

3、.1.1程序结构根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、暂停游戏以及停止游戏,游戏帮助提示与分数的显示等等。具体的程序功能如下图所示。2.1.2程序流程根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。贪吃蛇的内容主要包括: 游戏开始,随机出现食物,游戏结束,分数的显示,游戏帮助。程序主要流程图如下:第三章 编程实现3.1变量函数及资源的声明根据程序的结构,将贪吃蛇需要实现的放在snakeBoard.h文件中,该文件创建游戏画面,显示贪吃蛇对象;另外,计分功能凡在countNumber.h文件中实现。3.1.1主函数#include snakeBoard.h#incl

4、ude 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主要源代码1、 snakeBoard.h中定义的相关变量和方法#include #include #include #include class snakeBoard:public QWidgetQ_OBJECTpubli

5、c:snakeBoard(QWidget *parent = 0);int getRandNum(void);void getRandXY(int &x,int &y);private:int isStart;/是否开始int snakeLength;/蛇身长度int directionFlag;/移动方向int directionArray42;/方向向量int interval;/屏幕刷新频率QTimer *updateTimer;int foodArray2;int paintingIsOver;int snakeArray802;/int gameField2020;protected

6、:void paintEvent(QPaintEvent *paintEvent);void keyPressEvent(QKeyEvent *keyEvent);protected slots:void snakeAutoRun(void);void resetGame(void);2、 部分方法的实现代码snakeBoard:snakeBoard(QWidget *parent):QWidget(parent)for(int i = 0; i 80; i+)for(int j = 0; j start(1000);getRandXY(foodArray0,foodArray1);conne

7、ct(updateTimer,SIGNAL(timeout(),this,SLOT(snakeAutoRun();update();void snakeBoard:paintEvent(QPaintEvent *)int side = qMin(width(),height();QPainter painter(this);painter.setRenderHint(QPainter:Antialiasing,true);painter.setViewport(width()-side)/2,(height()-side)/2,side,side);painter.setWindow(0,0,

8、900,900);QRectF borderRect(3*45-20,25,670,850);QRectF interRect(3*45,45,630,810);painter.setPen(Qt:NoPen);painter.setBrush(QBrush(Qt:darkMagenta,Qt:SolidPattern);painter.drawRect(borderRect);painter.setBrush(QBrush(Qt:gray,Qt:SolidPattern);painter.drawRect(interRect);painter.setPen(QPen(Qt:darkGray,

9、3,Qt:SolidLine,Qt:RoundCap,Qt:RoundJoin);painter.setPen(Qt:NoPen);for(int i = 0; i stop();updateTimer-setInterval(interval);updateTimer-start();isStart-;第四章 程序移植1、 线路连接将嵌入式设备与pc机通过串口线连接,嵌入式设备与主机通过网线相连。然后在pc机上终端中输入命令:minnicom -m。 接着输入连接主机命令:mount -t nfs 192.168.0.47 /uclinux /host/ 将嵌入式映射到主机下。2、移植当前嵌入式设备gcc版本为2.95,故需安装对应的tmake程序和qt程序,到host目录下,然后对源程序进行编译,尝试运行。第五章 心得体会通过本次对贪吃蛇课程设计的实现,让我对qt编程有了一定的了解,以及一些程序设计的思想。同时,也熟悉了嵌入式开发的基本流程以及对开发环境的配置的了解。尤其是程序移植过程中,我碰到许多前所未有的问题,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号