网站大量收购独家精品文档,联系QQ:2885784924

嵌入式24点游戏设计.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多
嵌入式24点游戏设计   [摘要]随着手机软件技术及游戏软件的发展,手机游戏业也进入了一个新的移动游戏时代。好多大学设置了嵌入式游戏设计课程,24点游戏设计是在嵌入式系统环境下,使用标准C语言编程实现24点益智游戏。游戏中包含计算机出题模块、计算机计算模块、时间模块、难度和得分模块、表达式计算模块等。该类课程设计对培养适应社会需求的嵌入式技术人才有着重要意义。   [关键词]嵌入式技术 24点 游戏设计   [中图分类号]G434 [文献标识码]A   一、引言   24点游戏设计是通过C语言在基于ARM微处理器上实现计算24点的游戏。该游戏属于益智小品,操作简单、短小精悍、易于上手,对技术指标和显示屏要求都不高[1]。24点的游戏规则是:给定4个一定范围内的整数,任意使用+、-、*、/、( ),构造出一个表达式,使表达式最终结果为24,其中每个数字只能使用一次。本游戏要求机器与玩家进行模拟比赛,例如先由机器给玩家出4个数,玩家通过自己的计算得出结果并将结果输入给机器,如果答案是无解,也输入给机器。机器进行验证,如果答案正确进入下一环节,如果不正确,机器给玩家以提示。然后玩家出4个规定范围内的数,由机器计算并将结果显示给玩家。最后比较机器与玩家解题时所用的时间,时间短的为胜。胜者可进行加分等相应处理。出题时4个整数的范围鉴于普通玩家的水平初定于13以内,因为我们经常用扑克牌作24点游戏的工具,在扑克牌中最大的数值是K也就是13。可以通过机器计算时所用的时间长短进行调整,用来增加或者降低难度。根据实际情况也可以将出题的4个数最大值增加,但是对于玩家,过大的数较难计算,所以还需要在实践中检验效果[2]。   二、嵌入式24点游戏概述   1.计算机出题模块   功能要求:计算机随机出4个数并显示,玩家通过计算,将包含4个数和加减乘除四则运算的表达式输入计算机,计算机对表达式进行运算,判断是否等于24,然后给予响应提示[3]。   2.计算机计算模块   功能要求:计算机得到1~13范围内的4个数,计算并判断该4个数是否可以组成结果为24的表达式。   3.时间模块   功能要求:从20秒开始倒记时,并显示。对于20秒的时间,需要从系统时间那里获得。另外在时间进行的同时,玩家要进行录入等操作,所以可以将时间设置为一个任务,以免和主任务冲突。   4.难度和得分模块   难度分为4级,1级难度出题范围为1~10,2级为1~11,3级为1~12,4级为1~13。   得分设计是:玩家每成功1次成绩加10。判断得分每得到30分难度增加1。   5.主界面模块   在游戏开始时显示界面并提供玩家选择出题还是做题,图1显示了24点游戏流程图。   图1:24点游戏流程图   三、24点游戏算法部分   1.出题的实现   在标准C语言中有随机函数rand()可用,但是在这里,在嵌入式平台上却达不到要求:每次重新开机后随机函数rand()给出的4个数字是相同的。鉴于每次开机时系统时间是不同的,我们通过对系统时间的调用,得到“秒”这个值。再与随机函数rand()给出的数进行处理,并对13以内的数进行取模运算,得到需要的数字。   2.计算24点   计算24点基本原理是穷举4个整数所有可能的表达式,然后对表达式求值。   因为能使用的4种运算符+、-、*、/都是2元运算符,所以只考虑2元运算符。2元运算符接收两个参数,输出计算结果,输出的结果参与后续的计算。   由上所述,构造所有可能的表达式的算法如下:   (1) 将4个整数放入数组中。   (2)在数组中取两个数字的排列,共有P(4,2) 种排列。对每一个排列的+、-、*、/运算符:   ①根据此排列的两个数字和运算符,计算结果。   ②改表数组:将此排列的两个数字从数组中去除掉,将①计算的结果放入数组中。   ③对新的数组,重复步骤(2)。   ④恢复数组:将此排列的两个数字加入数组中,将①计算的结果从数组中去除掉。   可见这是一个递归过程。步骤(2)就是递归函数。当数组中只剩下一个数字的时候,这就是表达式的最终结果,此时递归结束。   3.中缀到后缀转换算法   计算后缀表达式算法:我们知道在表达式中经常会用到“(”或者“)”作用是优先计算括号内的数,但是计算机无法直接考虑括号问题,所以需要算法解决。其中,最传统的方法就是先把一个普通的表达式即中缀表达式转换为不需要括号的后缀表达式,在计算后缀表达式得出结果。玩家将会输出一代数表达式,代数表达式是由操作数和运算符连接起来的合法的串。操作数可以是一个变量,比如x、y、z,也可以是一个常量,比如5、4、0、9、1等。运算符是一个表示操作数间数学或逻辑操作的符号。大家

文档评论(0)

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

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

1亿VIP精品文档

相关文档