APP下载

基于C#对对碰游戏的设计与实现

2014-11-07马海珠

电脑知识与技术 2014年29期

马海珠

摘要:该文以对对碰游戏为例,采用c#.NET技术,完成游戏的主要功能和程序设计思路及游戏的控制流程;并重点分析游戏中涉及到的交换提示算法。

关键词:c#.NET;对对碰游戏的设计思路;交换提示算法

中图分类号:TP302 文献标识码:A 文章编号:1009-3044(2014)29-6865-03

Abstract: Based on the DuiDuiPeng game as an example, using C#.NET technology to complete the games main function and design idea , the game's flow chart. The focus of analysis showed that the games reminding algorithm.

Key words: C#.NET; DuiDuiPeng games design idea; the games reminding algorithm

对对碰游戏是一款经典的消除类游戏,深受大众喜受。不管是新出的迪斯尼冰雪奇缘游戏,还是宝石迷阵、小鸟爆破等,都可通过简单对对碰游戏演变而来,这些游戏的算法设计大同小异。该文结合C#.NET框架中Windows Forms图形用户界面的开发思想,分析解剖对对碰游戏的设计与实现,给设计者爱好者带来一点启发。

1 游戏概述

游戏在 10 × 10 格子的界面中进行。每个格子中有一个图案。鼠标连续选中两个相邻的图案,它们的位置会互换,互换后如果横排或竖排有3个或3个以上相同的图案,则可以消去该图案,并得分。当用户找不到可交换的方块图案时,系统可以为用户提供提示功能,但会损失相应的生命值。若系统不存在任何可消去的图案时构成死锁,系统将自动重新产生所有图案即重排。

2 游戏设计思路

通过上述游戏介绍得出整个游戏基本功能和游戏系统的设计思路。

2) 游戏设计思路

由于游戏界面是10*10组成的互不相同的图案,为存储方块和绘制方块,可利用二维数组来存储每个图案方块(可采用8张不同的图案),而每个图案方块即为定义为一个方块类Block。为实现消块,用另一个二维数组number的存储游戏界面对应的图案序号(1~8) ,而要消去的方块(即不需要重绘的方块图案),则将number数组的值标记为0。通过定时器控制下,不停地统计用户得分,并控制进程控制条,如果进程控制条为0,则游戏结束并出现结束画面,若用户的分数能排进系统的前10名,则可输入用户名保存分数。

在算法实现中,检测行或列有是否存在3块及3块以上的check()方法和消块填充fill()方法是实现游戏的重点算法。当用户鼠标连续选中两个相邻块交换后,调用check()方法,检测是否有符合规则的方块,即修改number数组的对应元素的值为0,再按列统计number数组中值为0的个数,即为每列要消去的方块数,并调用填充方法,在游戏屏幕的该列最上方重新随机产生新的方块,而其它方块图案则依次下移,并获取相应的积分。因此,整个对对碰游戏设计了3个类:

(1) 方块图案类Block类:用于获取图案,绘制图案等

(2) 游戏场景类GameField类:用于随机生成并绘制所有游戏场景中的方块图案、交换方块、检测是否存在可消去的方块、方块的消除填充及交换提示等。

(3) 游戏窗体Start类:是游戏的主界面,需要添加2个图片控件PictureBox作为游戏的开始界面和游戏面板、1个定时器及相关的菜单项及进程控制条等。

4 结束语

该文采用c#.NET语言实现了对对碰游戏的全部功能并测试通过。希望该实现思路对程序设计用户利用C#.NET开发游戏带来一点帮助和引导,了解游戏设计的秘密。

参考文献:

[1] 王小科,赵东会.C#典型模块与项目实战大全[M].北京:电子工业出版社,2012.

[2] 陈锐,李欣.Visualc#经典游戏编程开发[M].北京:科学出版社,2011.

[3] 杜少杰.C#程序设计初学者案例教程[M].天津:南开大学出版社,2010.

[4] 俞亮.基于C#的扫雷游戏设计与实现[J].企业技术开发:学术版,2014(6):63-64.endprint

摘要:该文以对对碰游戏为例,采用c#.NET技术,完成游戏的主要功能和程序设计思路及游戏的控制流程;并重点分析游戏中涉及到的交换提示算法。

关键词:c#.NET;对对碰游戏的设计思路;交换提示算法

中图分类号:TP302 文献标识码:A 文章编号:1009-3044(2014)29-6865-03

Abstract: Based on the DuiDuiPeng game as an example, using C#.NET technology to complete the games main function and design idea , the game's flow chart. The focus of analysis showed that the games reminding algorithm.

Key words: C#.NET; DuiDuiPeng games design idea; the games reminding algorithm

对对碰游戏是一款经典的消除类游戏,深受大众喜受。不管是新出的迪斯尼冰雪奇缘游戏,还是宝石迷阵、小鸟爆破等,都可通过简单对对碰游戏演变而来,这些游戏的算法设计大同小异。该文结合C#.NET框架中Windows Forms图形用户界面的开发思想,分析解剖对对碰游戏的设计与实现,给设计者爱好者带来一点启发。

1 游戏概述

游戏在 10 × 10 格子的界面中进行。每个格子中有一个图案。鼠标连续选中两个相邻的图案,它们的位置会互换,互换后如果横排或竖排有3个或3个以上相同的图案,则可以消去该图案,并得分。当用户找不到可交换的方块图案时,系统可以为用户提供提示功能,但会损失相应的生命值。若系统不存在任何可消去的图案时构成死锁,系统将自动重新产生所有图案即重排。

2 游戏设计思路

通过上述游戏介绍得出整个游戏基本功能和游戏系统的设计思路。

2) 游戏设计思路

由于游戏界面是10*10组成的互不相同的图案,为存储方块和绘制方块,可利用二维数组来存储每个图案方块(可采用8张不同的图案),而每个图案方块即为定义为一个方块类Block。为实现消块,用另一个二维数组number的存储游戏界面对应的图案序号(1~8) ,而要消去的方块(即不需要重绘的方块图案),则将number数组的值标记为0。通过定时器控制下,不停地统计用户得分,并控制进程控制条,如果进程控制条为0,则游戏结束并出现结束画面,若用户的分数能排进系统的前10名,则可输入用户名保存分数。

在算法实现中,检测行或列有是否存在3块及3块以上的check()方法和消块填充fill()方法是实现游戏的重点算法。当用户鼠标连续选中两个相邻块交换后,调用check()方法,检测是否有符合规则的方块,即修改number数组的对应元素的值为0,再按列统计number数组中值为0的个数,即为每列要消去的方块数,并调用填充方法,在游戏屏幕的该列最上方重新随机产生新的方块,而其它方块图案则依次下移,并获取相应的积分。因此,整个对对碰游戏设计了3个类:

(1) 方块图案类Block类:用于获取图案,绘制图案等

(2) 游戏场景类GameField类:用于随机生成并绘制所有游戏场景中的方块图案、交换方块、检测是否存在可消去的方块、方块的消除填充及交换提示等。

(3) 游戏窗体Start类:是游戏的主界面,需要添加2个图片控件PictureBox作为游戏的开始界面和游戏面板、1个定时器及相关的菜单项及进程控制条等。

4 结束语

该文采用c#.NET语言实现了对对碰游戏的全部功能并测试通过。希望该实现思路对程序设计用户利用C#.NET开发游戏带来一点帮助和引导,了解游戏设计的秘密。

参考文献:

[1] 王小科,赵东会.C#典型模块与项目实战大全[M].北京:电子工业出版社,2012.

[2] 陈锐,李欣.Visualc#经典游戏编程开发[M].北京:科学出版社,2011.

[3] 杜少杰.C#程序设计初学者案例教程[M].天津:南开大学出版社,2010.

[4] 俞亮.基于C#的扫雷游戏设计与实现[J].企业技术开发:学术版,2014(6):63-64.endprint

摘要:该文以对对碰游戏为例,采用c#.NET技术,完成游戏的主要功能和程序设计思路及游戏的控制流程;并重点分析游戏中涉及到的交换提示算法。

关键词:c#.NET;对对碰游戏的设计思路;交换提示算法

中图分类号:TP302 文献标识码:A 文章编号:1009-3044(2014)29-6865-03

Abstract: Based on the DuiDuiPeng game as an example, using C#.NET technology to complete the games main function and design idea , the game's flow chart. The focus of analysis showed that the games reminding algorithm.

Key words: C#.NET; DuiDuiPeng games design idea; the games reminding algorithm

对对碰游戏是一款经典的消除类游戏,深受大众喜受。不管是新出的迪斯尼冰雪奇缘游戏,还是宝石迷阵、小鸟爆破等,都可通过简单对对碰游戏演变而来,这些游戏的算法设计大同小异。该文结合C#.NET框架中Windows Forms图形用户界面的开发思想,分析解剖对对碰游戏的设计与实现,给设计者爱好者带来一点启发。

1 游戏概述

游戏在 10 × 10 格子的界面中进行。每个格子中有一个图案。鼠标连续选中两个相邻的图案,它们的位置会互换,互换后如果横排或竖排有3个或3个以上相同的图案,则可以消去该图案,并得分。当用户找不到可交换的方块图案时,系统可以为用户提供提示功能,但会损失相应的生命值。若系统不存在任何可消去的图案时构成死锁,系统将自动重新产生所有图案即重排。

2 游戏设计思路

通过上述游戏介绍得出整个游戏基本功能和游戏系统的设计思路。

2) 游戏设计思路

由于游戏界面是10*10组成的互不相同的图案,为存储方块和绘制方块,可利用二维数组来存储每个图案方块(可采用8张不同的图案),而每个图案方块即为定义为一个方块类Block。为实现消块,用另一个二维数组number的存储游戏界面对应的图案序号(1~8) ,而要消去的方块(即不需要重绘的方块图案),则将number数组的值标记为0。通过定时器控制下,不停地统计用户得分,并控制进程控制条,如果进程控制条为0,则游戏结束并出现结束画面,若用户的分数能排进系统的前10名,则可输入用户名保存分数。

在算法实现中,检测行或列有是否存在3块及3块以上的check()方法和消块填充fill()方法是实现游戏的重点算法。当用户鼠标连续选中两个相邻块交换后,调用check()方法,检测是否有符合规则的方块,即修改number数组的对应元素的值为0,再按列统计number数组中值为0的个数,即为每列要消去的方块数,并调用填充方法,在游戏屏幕的该列最上方重新随机产生新的方块,而其它方块图案则依次下移,并获取相应的积分。因此,整个对对碰游戏设计了3个类:

(1) 方块图案类Block类:用于获取图案,绘制图案等

(2) 游戏场景类GameField类:用于随机生成并绘制所有游戏场景中的方块图案、交换方块、检测是否存在可消去的方块、方块的消除填充及交换提示等。

(3) 游戏窗体Start类:是游戏的主界面,需要添加2个图片控件PictureBox作为游戏的开始界面和游戏面板、1个定时器及相关的菜单项及进程控制条等。

4 结束语

该文采用c#.NET语言实现了对对碰游戏的全部功能并测试通过。希望该实现思路对程序设计用户利用C#.NET开发游戏带来一点帮助和引导,了解游戏设计的秘密。

参考文献:

[1] 王小科,赵东会.C#典型模块与项目实战大全[M].北京:电子工业出版社,2012.

[2] 陈锐,李欣.Visualc#经典游戏编程开发[M].北京:科学出版社,2011.

[3] 杜少杰.C#程序设计初学者案例教程[M].天津:南开大学出版社,2010.

[4] 俞亮.基于C#的扫雷游戏设计与实现[J].企业技术开发:学术版,2014(6):63-64.endprint