嵌入式期末大作业

发布 2022-09-14 19:18:28 阅读 7560

信息工程学院计算机科学与技术专业

《嵌入式高级编程》

基于wince的俄罗斯方块程序。

学生姓名:

学生班级: 计科。

学生学号: 10

201年6月19日。

一、系统分析与总体设计 3

1.1 选题的意义 3

1.2 需求分析 3

1.3 概要设计 4

1.3.1 系统流程 4

1.3.2 功能模块结构设计 6

1.4 总体设计 6

1.5 系统的开发环境 8

1.5.1 嵌入式与arm平台的介绍 8

1.5.2 windows ce介绍 9

1.6 模块图 9

1.6.1 绘图刷新模块 9

1.6.2 按钮处理模块 9

二、系统的详细设计 11

2.1 用户操作流程 11

2.2 算法实现 13

2.2.1 方块的数据结构 13

2.2.2 方块旋转 15

2.2.3 碰撞检测 15

2.2.4 消行 16

三、系统实现与调试 17

3.1 调试过程 17

3.1.1 错误信息 17

3.1.2 解决方法 17

3.2 系统运行 18

四、附有程序**打印 20

摘要:俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与经济价值可以说是游戏历史上的一件大事。

本文阐述了利用arm嵌入式硬件平台,wince5.操作系统设计俄罗斯方块包括系统分析与总体设计、需求分析、算法实现、平台测试。随机给出不同的性状下落填充给定的区域,若填满一条便消掉,积分,当达到一定的分数时则过关、每关方块下落的速度加快,若在游戏中个形状填满了给定区域,为输者。

方块下落时,可通过键盘方向键对该方块进行转换(变形),向下(加速)、向左、向右移动。显示:消行后,剩余上方方块向下移动并统计和显示分数。

关键词:俄罗斯方块、 arm、 wince5.0

随着嵌入式系统在消费电子领域的发展,消费者对嵌入式系统的游戏娱乐功能也越来越关注,对于嵌入式系统而言,在硬件方面,arm微处理器体系结构被认为是较成熟的32位嵌入式risc微处理器结构,市场占有率较高,而软件方面,微软公司的wince是较为完整的嵌入式操作系统,wince下的embedded visual c++更是一个极具效率的软件开发工具,因此“arm + wince”成为主流的嵌入式游戏开发组合。

随机给出不同的性状(长条形、z字形、反z字形、田字形、7字形、反7字形、t字形)下落填充给定的区域,若填满一行便消掉,记分,当大道一定的分数时,过关,升级,没关方块下落的速度不同,若在游戏中各性状填满了给定区域则为输者,游戏功能要求如下:

游戏界面需求:良好的用户界面、级别显示和分数显示。让方块在对话框的一定的区域内运动和变形,该区域用一种颜色表明,既用一种颜色作为背景,最好为蓝绿色,宽度适中,要实现美感。

游戏形状(方块)需求:良好的方块形状设计,绘制其中常见的基本图形(长条形、z字形、反z字形、田字形、7字形、反7字形、t字形),各个方块要能实现它的变形,可设顺时针或逆时针变形,一般为逆时针。

键盘处理事件:方块下落时,可通过键盘方向键(上、下、左、右键)对方块进行向上(变形)、向下(加速)、向左、向右移动。

显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定的分数时过关,设置九关,每关方块下落的速度不同。

图1-1为游戏的总体流程图。

图1-1 基于arm的俄罗斯方块总体流程图。

流程图具体步骤如下:

1)游戏开始;

2)根据isbotton()函数判断方块是否到达地步;

3)若到达底部,则进行消行及得分操作。若未到达底部,则使方块继续下降,进行重绘。

4)用方块随机生成函数生成新的方块,将新生的方块作为“下一个方块”,将旧的“下一个方块”作为当前下落的方块。

(5)判断游戏区域第一行是否有方块存在,有则结束游戏,刷新游戏区域:没有则继续进行游戏。

图3-2为游戏整体功能结构的分布,分为游戏控制设置和游戏选项设置2个模块。

图1-2 游戏功能结构图。

1)游戏控制设置就是游戏的开始、结束、暂停和退出;

2)游戏显示设置就是游戏界面、下一块方块以及游戏的难度级别。

本游戏界面简洁明了,没有什么花哨的东西,只有游戏控制按钮以及游戏状态。 游戏区域默认有10列,12行;界面右上方的蓝色区域内会显示将要落下的方块,让玩家做好迎接挑战的心里准备,右侧下方显示游戏分数和游戏级别。游戏操作者主要有鼠标和键盘来完成。

鼠标点击开始后可用键盘的“上下左右”来对方块进行操作。

游戏中所用到的类如下图所示:

图1-3 设计的类。

由框架类视图中可以看到我们要实现此游戏需要的类,其中cbrickdlg类中有众多的函数,其中主要函数的功能概括如下:

1) canreasealine()函数,作用是当一行满格时消除此行。

2) createnumber()函数,作用是创造随机数。

3) drawnextbrick()函数,作用是绘下一块方块。

4) exit()函数,作用是退出程序。

5) generateabrick()函数,作用是绘第一块方块。

6) initbricks()函数,作用是刷新所有方块区域。

7) isbottom()函数,作用是判断是否到底,并执行消行等相关工作。

8) isgameover()函数,作用是判断是否游戏结束。

9) isoutofrect(int w)函数,作用是判断是否出格。

10) mydraw()函数,作用是供其他函数调用。

11) oninitdialog()函数,作用是刷新整个对话框。

12) onkey(uint nchar) )函数,作用是供其他按键函数调用,处理方块的坐,右移,加上以及变形。

13) onpaint())函数,作用是绘制函数,供其他函数调用。

14) ontimer(unit nidevent) )函数,作用是判断是否刷新方块上一刻的痕迹。

15) pause())函数,作用是暂停游戏。

16) pretranslatemessage(msg *pmsg) )函数,作用是定义从键盘获取的值的作用,并传递到onkey()函数。

17) refreshall())函数,作用是重绘全部区域。

18) refreshbricks())函数,作用是刷新方块上一刻的很急。

19) rotatebrick())函数,作用是转动方块。

20) start())函数,作用是开始游戏。

21) stop())函数,作用是结束游戏。

嵌入式系统作为芯片和软件的集成体,在科学研究,工业控制,军事技术,医疗卫生,消费电子等方面有着普遍的应用,本软件是基于arm处理器和windows ce的研究平台。

arm公司专门从事基于risc技术芯片生产,靠转让设计许可证可由合作公司生产各具特色的芯片。世界各大半导体生产商从arm公司购买其设计的arm微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的arm微处理器芯片进入市场。另外,arm微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。

windows ce 是有优先级的多任务操作系统,它允许多重功能、进程,在相同时间系统中运行 windows ce 支持最大的32位同步进程。微软windows ce 被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统。windows ce 可以通过设计一层位于内核和硬件之间**来用设定硬件平台,不象其它的微软 windows 操作系统,它并不是代表一个标准的相同的对所有平台适用的软件。

为了达到适应广泛产品需求, windows ce 采用标准模式,它能够由一系列软件模式做出选择,从而使产品定制。另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式,通过选择,能够达到系统要求的最小模式,嵌入式工具包包括设备驱动包(ddk)和软件开发包(sdk) ,ddk提供了关于写驱动器的附加文本,sdk提供库、头文件、样本**、文本以允许,开发者对基于 windows ce 的平台进行写操作。 windows ce 提供了相同的程序界面,以用来为其它的视窗操作系统开发功能。

嵌入式大作业

黑龙江科技学院。计算机与信息工程学院。嵌入式大作业。专业班级学号。成绩。姓名教师。2010年12月24日。前导问题 1.选a,完全独立完成2.一 基础问题。1.答 嵌入式系统是指用于执行独立功能的专用计算机系统,作为装置或设备的一部分。嵌入式系统通常由嵌入式微处理器 嵌入式操作系统 应用软件和外围设...

嵌入式大作业

一。简述jtag接口在嵌入式开发中的作用?1关于jtag jtag joint test action group,联合测试行动小组 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行 测试。jtag技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路tap test access po...

嵌入式大作业

嵌入式的系统应用和发展趋势。班级 09电子信息工程2班。组员 刘奥 09700226 刘扬 09700227 何翔 09700228 指导老师 赵洁。计算机与信息工程学院 2012年11月20日。嵌入式系统 embedded system 是一种 完全嵌入受控器件内部,为特定应用而设计的专用计算机系...