65.9K
CodeProject 正在变化。 阅读更多。
Home

卡牌游戏库

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.40/5 (18投票s)

2008年8月29日

CPOL

2分钟阅读

viewsIcon

114801

downloadIcon

9075

一个使用Silverlight创建纸牌游戏的库,包含两个示例洗牌游戏。

CardsSilverlight

引言

这是一个用于纸牌游戏的C#类库;对于任何考虑开发纸牌游戏的人来说,它都非常有用,特别是使用Silverlight时,尽管它也可以与其他.NET技术一起使用。它对于想要学习Silverlight的任何人来说,也是一个完整的示例。

我使用这个库构建了两个游戏(洗牌和蜘蛛洗牌),从源代码中可以看出,在各个游戏项目中编写的代码最少,仅代表游戏规则。

您可以在我的博客中看到游戏的实际运行效果

实际的Silverlight应用程序托管在http://streaming.live.com上,这是微软提供的一项很棒的免费服务。

概述

该解决方案包含以下项目

  • Cards.Data

    这是一个用于纸牌游戏的库,仅包含纸牌数据和逻辑,不包含任何特定于Silverlight的内容。

    包含以下类

    • Game:表示纸牌游戏的类,包含牌堆和纸牌。可以从这个类遍历所有其他数据类。
    • Deck:可以初始化并用作完整牌堆(52张牌)的纸牌堆,并从中抽取到其他牌堆,例如玩家手牌或地面堆。
    • Card:实际的纸牌对象。
  • Cards.Silverlight

    这是一个包含Silverlight控件的库,这些控件代表上述每个类。每个控件都有一个指向其关联数据类的指针,并提供事件处理程序来处理其事件并以图形和动画做出响应。

    包含以下控件

    • GameShape:这是Game类的图形表示。没有很多图形逻辑,但它包含一个列表,其中包含游戏中存在的其他牌堆和纸牌的图形表示。它提供实用函数来查找表示纸牌或牌堆数据对象的图形。
    • DeckShape:这是Deck类的图形表示。根据一组规则处理其包含的纸牌的定位。例如,垂直绘制以及纸牌之间和整个牌堆的固定间距。
    • CardShape:这是Card类的图形表示。为纸牌事件、鼠标事件和拖放行为提供动画。
  • 洗牌游戏

    这是洗牌游戏。它仅包含主页以及代码隐藏中的游戏逻辑。

  • 蜘蛛洗牌游戏

    这是蜘蛛洗牌游戏。它仅包含主页以及代码隐藏中的游戏逻辑。

未来

我正在考虑扩展这些库,以包含促进计算机AI玩家和多人网络选项的游戏逻辑。如果我有时间,我会这样做,但如果你们中的任何一个人可以实现这些功能,我会很高兴知道。

© . All rights reserved.