我记得上小学的时候玩过这个游戏。当时是一张代表地图的塑料纸,上面写着游戏规则,什么图案代表什么关卡。下面有许多网格,最常见的网格,后面是一些代表级别的网格。两个或两个以上的人通过互相投掷骰子的数量让他们的棋子在地图上行走,每到达一个代表一个等级的图案,他们就通过上述游戏规则或向前多走几步或暂停一次或后退一步等。
通过编写程序,我们可以实现一个与上述游戏功能相似的小游戏。通过这个小游戏,可以把之前学过的知识串联起来,主要是学习整理逻辑。只要理清逻辑,用其他编程语言实现这个游戏是非常容易的。本文通过下图简单介绍一下这款游戏的一些信息。
为了实现飞行棋地图,使用一个数组来表示地图的级别。这个地图有100个方块,所以声明一个容量为100的整数数组。如上图所示,数组下标0的位置就是玩家AB的起始位置。第一个水平行是从左到右,第二个水平行是从右到左,第三个水平行是从左到右,两个垂直行都是从上到下。在图中已经标记了每一水平行的开始和结束下标。
这个游戏暂时只设置了三类关卡,不需要更多,因为当你遇到这些关卡的时候,你只需要让棋子前进或者后退几步。等你打完这个游戏,有兴趣可以再加几个。
飞行棋规则:
1)当棋子到达这些关卡时,棋子后退6步,棋子暂停一次,棋子前进10步。
2)除了起始位置,如果玩家在一起,那么如果玩家AB,看谁踩谁,比如A踩了B,B会受到惩罚,比如退几步,更用力的退回到起始位置。
3)在一个检查点最好不要有相同的前进或后退步数,以免出现死循环。比如踩地雷,后退六步,后退后的新位置就是检查点时间隧道,而时间隧道的规则是前进六步,类似于无限循环。不过这个游戏只做一个判断,就是当你到达一个关卡的时候,通过这个关卡的规则去下一个关卡,所以暂时不会做第二个判断。
根据骰子的数量和等级,首先走过地图上100个方格的玩家AB获胜。
您还可以设置棋子达到这些级别之前、之后或之后的步数的值。飞行棋的其余部分将在后面的编程中讨论。