WEB开发网
开发学院软件开发C语言 用C#编写三国杀(一):规则和需求描述 阅读

用C#编写三国杀(一):规则和需求描述

 2010-09-30 22:43:52 来源:WEB开发网   
核心提示:最近做翻译做的头疼,疼过之余,用C#编写三国杀(一):规则和需求描述,想想之前公司内组织的三国杀开发兴趣小组在三国杀开发问题上几乎又停滞了,于是又翻出来搞了搞,我的思路是这样的:一局游戏实际都在一个场景中进行,直到游戏结束,这次却搞的有点像模像样了,特地把思路和方法都共享出来

最近做翻译做的头疼,疼过之余,想想之前公司内组织的三国杀开发兴趣小组在三国杀开发问题上几乎又停滞了。于是又翻出来搞了搞,这次却搞的有点像模像样了,特地把思路和方法都共享出来,一起学习。

三国杀在上海是挺风靡的,如果你还不知道玩法和规则,请猛击这里:http://baike.baidu.com/view/1147207.htm

今天要说的是实现的第一步。为了尽量简化需求,我们最初要实现的东西也挺简单,就是能支持两个玩家自动对战。具体的描述如下:在一个场景中设置两个玩家,游戏的牌堆中只有三种基本牌:杀、闪、桃。其中,只有杀和桃是属于主动性游戏牌,即可以在自己行动回合将其打出;闪是被动性游戏牌,只有当别人对自己出杀的时候才可以出闪,否则扣除一点体力,而使用桃则为自己增加一点体力。同样,为了简化实现,只要有能使用的牌,就必须使用;而且,如果你的手牌数量大于体力值,则需要弃牌直到手牌数与体力值相等。在这种情况下,只要有一方体力为0,游戏结束!

对需求进行整理,不难发现有以下需求待实现:

1、游戏结束的条件:只要有玩家死亡即宣告结束。

2、牌堆的实现,注意牌堆中拿出的牌需要从牌堆中移除,以及洗牌的功能。

3、杀、闪、挑的逻辑实现。

4、从手牌中计算是否还有可用的牌。

5、玩家轮询行动的实现。

在设计中,我的思路是这样的:一局游戏实际都在一个场景中进行,直到游戏结束。因此首先有场景的定义:

/// <summary>
/// 表示游戏场景。
/// </summary>
public class Scene
{
    private readonly Player[] players;
}

1 2 3  下一页

Tags:编写 三国 规则

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接