C环境游戏设计开发
——以一笔画奥运五环为例

2016-03-30 10:24华洪涛陈荣江
关键词:弧段五环欧拉

华洪涛,陈荣江

(河南科技学院,河南新乡453003)

C环境游戏设计开发
——以一笔画奥运五环为例

华洪涛,陈荣江

(河南科技学院,河南新乡453003)

图形一笔画是一款非常经典的益智游戏.在TC环境下,以奥运五环为例,提供了对两点之间有多条连线的欧拉路的一笔画算法.算法优于传统算法,能应用于所有的一笔画图形问题,且容易移植到其他程序设计语言环境中,为设计一笔画闯关游戏提供了更好的算法支持.

TC;一笔画;游戏编程;程序开发

目前网络上的图形一笔画游戏[1-2],在程序算法上都是通过画点的顺序来唯一确定连线的顺序[3-5],这种传统算法只能应用于任意两点之间至多只有一条连线的欧拉图,因为两点唯一确定一条直线;而对于两点之间有多条连线的欧拉图(比如奥运五环),就不能用传统算法来实现.

为了解决像奥运五环这类欧拉图的一笔画问题,我们在TC(TurboC)环境下进行新的算法设计.

1 需求描述

1.1 游戏描述

图形一笔画是一款非常古老且经典的益智游戏,能考验玩家的平面逻辑思维能力和空间想象能力.一笔画游戏规则:选择好起点沿着所给出的图形开始连线,不重复地覆盖好每一条边即可.注意:游戏过程中不能松手,每条边只能经过一次.一笔画是一款经典的小游戏,为了在TC环境下实现该游戏,在本文中对游戏界面进行了适当的简化.

1.2 游戏界面

在开始游戏时,要以不同的颜色画出奥运五环图标.在每个弧段上用环的颜色标出弧段的名称(英文字母或数字).图形下方预留一段空白用来显示游戏结果是成功还是失败.

1.3 游戏控制

玩家通过键盘来完成游戏,玩家在键盘上按下弧段标记的名称,图中就以白色画出该弧段,并且把标记名称去掉.

1.4 游戏功能

从玩家角度,一笔画游戏应该具备以下功能:①动态画图;②游戏结束时输出最终结果;③结束游戏:玩家可以在任意情况下结束游戏,退出程序;④重玩游戏:玩家可以在任意情况下重新开始该游戏.

2 程序设计

2.1 程序结构设计

从游戏需求出发,一笔画游戏的整体功能结构如下:

(1)游戏界面;

(2)动态画图:a,以其他颜色画弧;b,去除弧段标记;c,反馈游戏结果.

2.2 数据结构设计

图形中的每一段弧就是这个程序里需要处理的数据,根据游戏规则它应该具备以下特征:①弧段名称;②与弧段其中一个端点连接的所有弧;③与弧段另一个端点连接的所有弧;④该弧段是否已经画过.因此我们选择结构体类型来定义弧段如下.

2.3 程序算法设计

根据游戏规则及游戏要实现的功能,程序算法设计如下.

其中函数wuhuan():画出奥运五环徽标;函数draw(char)根据实参画出对应的弧段;函数win()返回玩家成功信息,其算法设计省略.函数int hefa1(char)与int hefa2(char)设计如下:

3 运行与调试

用本文提供的算法设计的游戏运行流畅,画面清晰,完全达到了预期的效果.图1是游戏过程中的2帧截图.如果希望游戏更吸引人,还可以添加背景、音效等,进一步优化和完善游戏.

图1 一笔画游戏中截图Fig.1 The screenshots ofone touch drawing

4 小结

本文虽然是以一笔画奥运五环为例,但其算法能解决所有的一笔画图形问题,为设计一笔画闯关游戏提供了更好的算法支持.

[1]360百科.一笔画[EB/OL].[2016-03-21].http://baike.so.com/doc/6722098-6936167.html.

[2]7k7k小游戏.一笔画[DB/OL].[2016-03-21].http://www.7k7k.com/swf/98459.htm.

[3]张建军,史银龙,刘胜厚.C语言程序设计[M].北京:海洋出版社,2010.

[4]严蔚敏李冬梅,吴伟民.数据结构:C语言版[M].2版.北京:人民邮电出版社,2015.

[5]谭浩强.C语言程序设计[M].3版.北京:清华大学出版社,2014.

(责任编辑:卢奇)

Game design&develop under C programming language——One touch drawing of the Olympic rings as an example

HUA Hongtao,CHEN Rongjiang
(Henan Institute ofScience and Technology,Xinxiang453003,China)

One touch drawing is a very classic puzzle game.One touch drawing of the Olympic rings was taking for example,an algorithm for the Euler route which would have many lines between two points was provided in this paper.This algorithm is superior to the traditional algorithm,and can be applied to all the one touch drawing graphics problem,and can be transplanted to other programming language easily.A better algorithm for designing the one touch drawing games with many outpost was provided.

Turbo C;one touch drawing;game programming;program development

O244;TP312

A

1008-7516(2016)03-0064-03

10.3969/j.issn.1008-7516.2016.03.014

2016-03-22

2015年河南科技学院大学生创新项目(2015CX077)

华洪涛(1985―),男,河南商丘人,硕士,助教.主要从事极限理论研究.

猜你喜欢
弧段五环欧拉
欧拉闪电猫
基于改进弧段切点弦的多椭圆检测
钢丝绳支撑波状挡边带式输送机物料通过支座的轨迹研究
精致背后的野性 欧拉好猫GT
再谈欧拉不等式一个三角形式的类比
交通运输网络的二叉堆索引及路径算法优化
电弧增材制造过程的外形控制优化
欧拉的疑惑
为什么奥林匹克以五环为标志?
五环数阵