卡牌游戏库






4.40/5 (18投票s)
一个使用Silverlight创建纸牌游戏的库,包含两个示例洗牌游戏。
引言
这是一个用于纸牌游戏的C#类库;对于任何考虑开发纸牌游戏的人来说,它都非常有用,特别是使用Silverlight时,尽管它也可以与其他.NET技术一起使用。它对于想要学习Silverlight的任何人来说,也是一个完整的示例。
我使用这个库构建了两个游戏(洗牌和蜘蛛洗牌),从源代码中可以看出,在各个游戏项目中编写的代码最少,仅代表游戏规则。
您可以在我的博客中看到游戏的实际运行效果
- http://bishoylabib.blogspot.com/2008/05/solitaire.html
- http://bishoylabib.blogspot.com/2008/08/spider-solitaire.html
实际的Silverlight应用程序托管在http://streaming.live.com上,这是微软提供的一项很棒的免费服务。
概述
该解决方案包含以下项目
- Cards.Data
这是一个用于纸牌游戏的库,仅包含纸牌数据和逻辑,不包含任何特定于Silverlight的内容。
包含以下类
Game
:表示纸牌游戏的类,包含牌堆和纸牌。可以从这个类遍历所有其他数据类。Deck
:可以初始化并用作完整牌堆(52张牌)的纸牌堆,并从中抽取到其他牌堆,例如玩家手牌或地面堆。Card
:实际的纸牌对象。
- Cards.Silverlight
这是一个包含Silverlight控件的库,这些控件代表上述每个类。每个控件都有一个指向其关联数据类的指针,并提供事件处理程序来处理其事件并以图形和动画做出响应。
包含以下控件
GameShape
:这是Game
类的图形表示。没有很多图形逻辑,但它包含一个列表,其中包含游戏中存在的其他牌堆和纸牌的图形表示。它提供实用函数来查找表示纸牌或牌堆数据对象的图形。DeckShape
:这是Deck
类的图形表示。根据一组规则处理其包含的纸牌的定位。例如,垂直绘制以及纸牌之间和整个牌堆的固定间距。CardShape
:这是Card
类的图形表示。为纸牌事件、鼠标事件和拖放行为提供动画。
- 洗牌游戏
这是洗牌游戏。它仅包含主页以及代码隐藏中的游戏逻辑。
- 蜘蛛洗牌游戏
这是蜘蛛洗牌游戏。它仅包含主页以及代码隐藏中的游戏逻辑。
未来
我正在考虑扩展这些库,以包含促进计算机AI玩家和多人网络选项的游戏逻辑。如果我有时间,我会这样做,但如果你们中的任何一个人可以实现这些功能,我会很高兴知道。