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

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

 2010-09-30 22:47:08 来源:WEB开发网   
核心提示: 牌堆定义之后就需要定义洗牌的操作,由于我定义了从Collection<T> 继承,用C#编写三国杀(二):牌堆的设计(2),其内部有个IList<T>类型的Items属性,因此编写一个扩展方法,对IList<T>类型的数据进行类似洗牌的操作:洗牌扩展 ///&

牌堆定义之后就需要定义洗牌的操作。由于我定义了从Collection<T> 继承,其内部有个IList<T>类型的Items属性,因此编写一个扩展方法,对IList<T>类型的数据进行类似洗牌的操作:

洗牌扩展

    /// <summary>
    /// 定义对List的扩展方法。
    /// </summary>
    public static class ListExtension
    {
        /// <summary>
        /// 将IList中的元素进行洗牌操作。
        /// </summary>
        /// <typeparam name="T">类型参数。</typeparam>
        /// <param name="list">所要洗牌的List。</param>
        public static void Shuffle<T>(this IList<T> list)
        {
            Random random = new Random();
            int count = list.Count;
            for (int i = 0; i < count; i++)
            {
                int currentIndex = random.Next(0, count - i);
                T tempCard = list[currentIndex];
                list[currentIndex] = list[count - 1 - i];
                list[count - 1 - i] = tempCard;
            }
        }
    }

Tags:编写 三国 设计

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