基于ARM9的五子棋游戏设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARM9的五子棋游戏设计与实现

目 录 摘 要 1 1 引言 2 1.1 项目背景 2 1.2 需求分析 2 2 系统总体方案 4 2.1 五子棋实现方案 4 2.2 棋盘和棋子 5 2.3 规则及解释 6 2.4 五子棋攻防 6 2.5 软硬件环境 7 2.6 开发环境配置 7 3 游戏设计与功能实现 8 3.1 算法模块 8 3.2 欢迎界面模块 9 3.3 棋盘与棋子模块 12 3.4 键盘响应模块 14 3.5 帮助文档模块 15 4 游戏测试 16 5 结束语 21 参考文献 22 Abstract 23 致 谢 24 基于ARM9的五子棋游戏设计与实现 (德州学院 信息管理学院,山东德州 ) 摘要 摘 要:本项目是基于ARM9 处理器的嵌入式五子棋游戏,目的是实现嵌入式系统小游戏的设计与开发。该游戏基于Linux操作系统,采用Linux C语言设计实现了FrameBuffer显示机制、LCD显示控制和键盘通信模块。通过LCD控制器显示五子棋游戏相关信息,利用键盘技术来操控游戏的具体实施。该游戏的设计包括五子棋设计方案论述、棋盘与棋子、规则以及五子棋的攻防等问题,具体实现过程分为算法模块、欢迎界面模块、棋盘与棋子模块、键盘响应模块、帮助文档模块。 关键词:嵌入式;五子棋;ARM9;Linux 1 引言 1.1 项目背景 五子棋是起源于中国古代的传统黑白棋种之一,现代五子棋日文称之为连珠,英译为Ren ju,英文称之为Gobang,亦有连五子、五子连、串珠、五相、无相碰、五格等多种称谓。 五子棋起源于古代中国,发展与日本,盛行于欧洲。它与围棋有两种出现的先后关系性说法,一说五子棋比围棋早,早在“尧造围棋”之前,民间就有类似于五子棋的游戏;一说产生于围棋之后,是围棋发展的一个分支。在中国的文化里,倍受人们的青睐。本世纪初五子棋传于欧洲并迅速风靡于全欧。通过一系列的变化,使五子棋这一简单的游戏复杂化、规范化。而最终成为今天的连珠五子棋,同时也成为一种国际比赛棋。 ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权[1]。目前,采用ARM知识产权的微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正逐步渗入到我们生活的各个方面。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此即使的ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争[2]。 五子棋游戏不仅是一项游戏,而且还是一个能开发人智力的的工具,随着社会快速的发展以及人们在社会生产过程中竞争的不断加强,智力型开发已经被提上日程。尤其是对孩子的智力开发,复杂的游戏会让孩子产生排斥心理,过于简单的游戏则达不到想要的效果,而基于嵌入式系统的五子棋游戏的开发则是一个更好的选择,他不仅难度适中,操作简便,而且还具有很好的开发智力的功能。在国内以及国外都得到了很好地赞誉。 1.2 需求分析 对于一个人机对弈的嵌入式五子棋游戏来说,主要应解决五子棋游戏的图形显示、智能人工算法、键盘响应处理3个问题。 (1)图形显示 图形显示问题应该包括怎样设计友好的人机交互界面;怎样将棋子和光标显示在LCD正确的位置上;怎样在棋盘移动光标时去掉以前位置上的旧光标产生的痕迹;怎样在棋子与光标叠加时去除光标痕迹;怎样进行游戏后的图像处理问题;怎样从方形图片得到游戏所需的圆形棋子;怎样进行汉字在游戏过程中的显示问题等。 由于该游戏所采用的LCD规格为640×480像素,根据该规格设计所使用的黑棋子、白棋子、背景图片、光标[3]。为了使游戏界面更加友好,我决定采用图片字体显示方式,而不是使用SDL_ttf中的字体。 棋子与棋盘采用3D效果,光标与黑、白棋子三者的图片大小完全一致,都是25×25像素,并且背景的色度空间都是选用RGB(255,0,255),也就是我们所说的粉红色。通过调用SDL函数库中的SDL_SetColorKey函数把粉红色颜色作为过滤色[3]。因此在该游戏显示这些图片过程时,看不到粉红色的颜色背景,看起来就像图片被做了切割一样。光标在新的位置重画以后,即使使用SDL_UpdateRect函数把游戏的整个屏幕都刷新后,原来的位置仍存在以前光标的图像,一直到程序的退出后才消失[4]。解决这个问题我所采用的办法是当光标想要在游戏某个位置上显示时,先把该位置上与光标图片大小完全一样的区域记录下来,再显示光标图像,当光标移动时,把记录下来的图片重新显示到原

文档评论(0)

2017meng + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档