下午看到数独游戏都出来了,很是给力。本人大爱数独。
我也来发一个游戏。
(源代码在一楼楼底)
《蜂窝大战(Hive Battle)》,这是我命名的。准确地说,学名应该叫做「Hexomania」,可以翻译成「疯狂六边形」,个人认为蜂窝有意思些。
也许有人没有接触过这个游戏,下面介绍一下。本文最后是源代码,防止有「收藏家」不看正文直接下载。
我的这个版本基本复刻了挪威佬Bishoy Mamdouh的「Hexomania in C#」,原来的代码很蛋疼,优化了下代码,做成了「抢旗模式」。(其实现在的代码还是很蛋疼,一边听音乐一边做,压根没打算整理代码,设计架构之类)
参考下面的截图(来自我的《蜂窝大战复刻版HiveBattle》)
2个以上玩家参与游戏,按照回合制进行。每回合每个玩家可以移动一枚六边形棋子,但棋子移动后必须保证其周围6个格子内至少有一枚棋子。即不能出现新的「孤岛」(周围棋子被移走形成的孤岛不在限制之列)。
每次玩家移动棋子后,作为目标的「旗帜」会随机向周围逃跑1格距离。玩家的目标是利用地形优势或直接使用棋子将己方颜色旗帜(默认玩家1为蓝色)「限制」在1格中,使其不能移动,则抢旗成功。下面是抢旗成功的例子。
注意如果包围圈破裂,旗帜会逃出来。
这里有一张游戏时的动画演示,供参考(较大,加载较慢)
这个游戏代码较多,我不讲解代码了,只说明下绘制蜂巢的方法。
0.用一个二维数组保存蜂巢形态
1.设计一个DrawHex()方法,用于绘制单个蜂室
2.根据设计的蜂巢大小,按从上到下,从左到右的方式遍历绘制所有蜂室,跳过空洞
3.绘制棋子、旗帜
这个游戏的变种非常之多,而且变化能力非常之强,希望大家积极创造。
---------------
参考源代码:
下载
© 2012 conmajia '野比' <conmajia@gmail.com>