WEB开发网
开发学院软件开发C语言 用C#编写三国杀(二):牌堆的设计 阅读

用C#编写三国杀(二):牌堆的设计

 2010-09-30 22:47:08 来源:WEB开发网   
核心提示:前一节说到了一些基础性的定义,这一节开始将进入流程的分析,用C#编写三国杀(二):牌堆的设计,首先,在游戏的场景建立之后,这些牌将会从牌堆中移除,///</summary>///<paramname="number">要压出的牌的数量,你就必须有一个牌堆,对于目前的需求来说

前一节说到了一些基础性的定义。这一节开始将进入流程的分析。

首先,在游戏的场景建立之后,你就必须有一个牌堆。对于目前的需求来说,只要有手牌的牌堆即可;尽管后面可能还要有身份牌堆和武将牌堆,但目前只考虑手牌,即游戏牌。于是有以下定义:

    /// <summary>
    /// 定义牌堆的基本类型。
    /// </summary>
    /// <typeparam name="T">参数类型。</typeparam>
    public abstract class CardHeap<T> : Collection<T>
    {
    }

定义为抽象的,是我希望能提供一些通用的方法以简化其他牌堆的设计。

对于牌堆来说,其一个重要的功能就是能够压出牌以供使用,因此定义如下:

压牌

        /// <summary>
        /// 从牌堆中压出指定数量的牌,这些牌将会从牌堆中移除。
        /// </summary>
        /// <param name="number">要压出的牌的数量。</param>
        /// <returns>所压出的牌的数组。</returns>
        public T[] Pop(int number)
        {
            if (number <= 0)
                return new T[0];
            if (Items.Count < number)
                number = Items.Count;
            T[] newT = new T[number];
            for (int i = 0; i < number; i++)
            {
                newT[i] = Items.First();
                Items.RemoveAt(0);
            }
            return newT;
        }

1 2 3  下一页

Tags:编写 三国 设计

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